#include <OSGBinarySwapComposer.h>
Inheritance diagram for OSG::BinarySwapComposer:

dcast | |
| OSG_GEN_INTERNALPTR (AttachmentContainer) | |
| typedef AttachmentContainer | Self |
| typedef FieldContainerAttachment | AttachmentObj |
| typedef FieldContainerAttachmentPtr | AttachmentObjPtr |
| typedef SFFieldContainerAttachmentPtrMap | SFAttachmentObjPtrMap |
| typedef SFAttachmentObjPtrMap::StoredType | AttachmentObjPtrMap |
| typedef AttachmentObjPtrMap::iterator | AttachmentObjPtrMapIt |
Type definitions | |
| OSG_GEN_INTERNALPTR (FieldContainer) | |
| OSG_RC_FIRST_FIELD_DECL (ChangedCallbacks) | |
| OSG_RC_LAST_FIELD_DECL (ChangedCallbacks) | |
| static const bool | isNodeCore = false |
Public Types | |
| enum | { ShortFieldId = Inherited::NextFieldId, AlphaFieldId = ShortFieldId + 1, TileSizeFieldId = AlphaFieldId + 1, NextFieldId = TileSizeFieldId + 1 } |
| typedef ImageComposer | ParentContainer |
| typedef Inherited::TypeObject | TypeObject |
| typedef TypeObject::InitPhase | InitPhase |
| enum | { EnabledFieldId = Inherited::NextFieldId, StatisticsFieldId = EnabledFieldId + 1, NextFieldId = StatisticsFieldId + 1 } |
Type definitions | |
| typedef Field *(ReflexiveContainer::*) | FieldEditMethod (void) |
| typedef const Field *(ReflexiveContainer::*) | FieldGetMethod (void) const |
Public Member Functions | |
| OSG_GEN_INTERNALPTR (BinarySwapComposer) | |
| OSG_GEN_INTERNALPTR (ImageComposer) | |
Sync | |
| virtual void | changed (ConstFieldMaskArg whichField, UInt32 origin, BitVector detail) |
Output | |
| virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
features | |
| virtual bool | clientRendering (void) |
composition | |
| virtual void | open () |
| virtual void | composeViewport (ViewportPtr port) |
| virtual void | close (void) |
features | |
| virtual bool | getClientRendering (void) |
| virtual UInt32 | getUsableServers (void) |
FieldContainer Get | |
| virtual FieldContainerType & | getType (void) |
| virtual const FieldContainerType & | getType (void) const |
| virtual UInt32 | getContainerSize (void) const |
Field Get | |
| SFBool * | editSFShort (void) |
| const SFBool * | getSFShort (void) const |
| SFBool * | editSFAlpha (void) |
| const SFBool * | getSFAlpha (void) const |
| SFUInt32 * | editSFTileSize (void) |
| const SFUInt32 * | getSFTileSize (void) const |
| bool & | editShort (void) |
| Get the value of the BinarySwapComposer::_sfShort field. | |
| const bool & | getShort (void) const |
| Get the value of the BinarySwapComposer::_sfShort field. | |
| bool & | editAlpha (void) |
| Get the value of the BinarySwapComposer::_sfAlpha field. | |
| const bool & | getAlpha (void) const |
| Get the value of the BinarySwapComposer::_sfAlpha field. | |
| UInt32 & | editTileSize (void) |
| Get the value of the BinarySwapComposer::_sfTileSize field. | |
| const UInt32 & | getTileSize (void) const |
| Get the value of the BinarySwapComposer::_sfTileSize field. | |
Field Set | |
| void | setShort (const bool &value) |
| Set the value of the BinarySwapComposer::_sfShort field. | |
| void | setAlpha (const bool &value) |
| Set the value of the BinarySwapComposer::_sfAlpha field. | |
| void | setTileSize (const UInt32 &value) |
| Set the value of the BinarySwapComposer::_sfTileSize field. | |
Binary Access | |
| virtual UInt32 | getBinSize (ConstFieldMaskArg whichField) |
| virtual void | copyToBin (BinaryDataHandler &pMem, ConstFieldMaskArg whichField) |
| virtual void | copyFromBin (BinaryDataHandler &pMem, ConstFieldMaskArg whichField) |
Copy | |
| virtual FieldContainerPtr | shallowCopy (void) const |
setup | |
| void | setup (bool isClient, UInt32 clusterId, WindowPtr localWindow, ClusterWindowPtr clusterWindow) |
composition | |
| virtual void | startFrame (void) |
| virtual void | startViewport (ViewportPtr port) |
| virtual void | composeWindow (void) |
Field Get | |
| SFBool * | editSFEnabled (void) |
| const SFBool * | getSFEnabled (void) const |
| SFBool * | editSFStatistics (void) |
| const SFBool * | getSFStatistics (void) const |
| bool & | editEnabled (void) |
| Get the value of the ImageComposer::_sfEnabled field. | |
| const bool & | getEnabled (void) const |
| Get the value of the ImageComposer::_sfEnabled field. | |
| bool & | editStatistics (void) |
| Get the value of the ImageComposer::_sfStatistics field. | |
| const bool & | getStatistics (void) const |
| Get the value of the ImageComposer::_sfStatistics field. | |
Field Set | |
| void | setEnabled (const bool &value) |
| Set the value of the ImageComposer::_sfEnabled field. | |
| void | setStatistics (const bool &value) |
| Set the value of the ImageComposer::_sfStatistics field. | |
Constructors | |
| OSG_RC_FIRST_FIELD_DECL (Attachments) | |
| OSG_RC_LAST_FIELD_DECL (Attachments) | |
Set | |
| void | addAttachment (const AttachmentObjPtr attachmentP, UInt16 binding=0) |
| void | subAttachment (const AttachmentObjPtr attachmentP, UInt16 binding=0) |
| AttachmentObjPtr | findAttachment (UInt32 groupId, UInt16 binding=0) |
| AttachmentObjPtr | findAttachment (const FieldContainerType &type, UInt16 binding=0) |
your_category | |
| const SFAttachmentObjPtrMap * | getSFAttachments (void) const |
Set | |
| void | callChangedFunctors (ConstFieldMaskArg whichField) |
Container Access | |
| UInt32 | addChangedFunctor (ChangedFunctor func, std::string createSymbol) |
| template<class FunctorT> | |
| void | subChangedFunctor (FunctorT func) |
| void | subChangedFunctor (UInt32 uiId) |
| void | clearChangedFunctors (void) |
Field Flags | |
| const FieldFlags * | getFieldFlags (void) |
Helper | |
| OSG_SYSTEM_DLLMAPPING void | addReference (void) |
| OSG_SYSTEM_DLLMAPPING void | subReference (void) |
| OSG_SYSTEM_DLLMAPPING void | subReferenceLocalVar (void) |
| OSG_SYSTEM_DLLMAPPING Int32 | getRefCount (void) const |
Comparison | |
| virtual OSG_SYSTEM_DLLMAPPING void | invalidateVolume (void) |
dcast | |
| OSG_SYSTEM_DLLMAPPING UInt32 | getTypeId (void) const |
| OSG_SYSTEM_DLLMAPPING UInt16 | getGroupId (void) const |
| OSG_SYSTEM_DLLMAPPING const Char8 * | getTypeName (void) const |
Get Field | |
| OSG_SYSTEM_DLLMAPPING UInt32 | getNumFields (void) const |
| OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr | editField (UInt32 fieldId) |
| OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr | editField (const Char8 *fieldName) |
| OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr | getField (UInt32 fieldId) const |
| OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr | getField (const Char8 *fieldName) const |
Get Field Description | |
| OSG_SYSTEM_DLLMAPPING FieldDescriptionBase * | getFieldDescription (UInt32 fieldId) |
| OSG_SYSTEM_DLLMAPPING FieldDescriptionBase * | getFieldDescription (const Char8 *fieldName) |
Comparison | |
| OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr | invalidEditField (void) |
| OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr | invalidGetField (void) const |
Static Public Member Functions | |
Class Get | |
| static FieldContainerType & | getClassType (void) |
| access the type of the class | |
| static UInt32 | getClassTypeId (void) |
| access the numerical type of the class | |
| static UInt16 | getClassGroupId (void) |
| access the type of the class | |
Construction | |
| static BinarySwapComposerPtr | create (void) |
| create a new instance of the class | |
| static BinarySwapComposerPtr | createEmpty (void) |
| create an empty new instance of the class, do not copy the prototype | |
Public Attributes | |
General Fieldcontainer Declaration | |
| OSG_ABSTR_FIELD_CONTAINER_DECL | |
Static Public Attributes | |
| static const OSG::BitVector | ShortFieldMask |
| static const OSG::BitVector | AlphaFieldMask |
| static const OSG::BitVector | TileSizeFieldMask |
| static const OSG::BitVector | NextFieldMask |
| static const OSG::BitVector | EnabledFieldMask |
| static const OSG::BitVector | StatisticsFieldMask |
Protected Member Functions | |
Constructors | |
| BinarySwapComposer (void) | |
| BinarySwapComposer (const BinarySwapComposer &source) | |
Destructors | |
| virtual | ~BinarySwapComposer (void) |
compose | |
| void | writeBuffer () |
| void | readBuffer () |
helper function | |
| template<class DepthT, class ColorT> | |
| void | sendToClient (DepthT &depth, ColorT &color, UInt32 left, UInt32 bottom, UInt32 right, UInt32 top) |
| template<class DepthT, class ColorT> | |
| void | recvFromServers (DepthT &depth, ColorT &color, UInt32 colorType, UInt32 colorFormat, ViewportPtr port) |
| template<class DepthT, class ColorT> | |
| void | writeCombine (DepthT &depthDummy, ColorT &colorDummy) |
| template<class DepthT, class ColorT> | |
| void | readCombine (DepthT &depth, ColorT &color, UInt32 colorType, UInt32 colorFormat, UInt32 left, UInt32 bottom, UInt32 right, UInt32 top, UInt32 level) |
| template<class DepthT, class ColorT> | |
| void | startReader (DepthT &depth, ColorT &color, UInt32 depthFormat, UInt32 colorType, UInt32 colorFormat, ViewportPtr port) |
| TileBuffer * | getTileBuffer (UInt32 x, UInt32 y) |
| TileBuffer * | getTileReadBuffer (void) |
Generic Field Access | |
| GetFieldHandlePtr | getHandleShort (void) const |
| EditFieldHandlePtr | editHandleShort (void) |
| GetFieldHandlePtr | getHandleAlpha (void) const |
| EditFieldHandlePtr | editHandleAlpha (void) |
| GetFieldHandlePtr | getHandleTileSize (void) const |
| EditFieldHandlePtr | editHandleTileSize (void) |
Sync | |
| virtual void | resolveLinks (void) |
get | |
| bool | isClient (void) |
| UInt32 | clusterId (void) |
| UInt32 | clusterSize (void) |
| UInt32 | serverCount (void) |
| WindowPtr | localWindow (void) |
| ClusterWindowPtr | clusterWindow (void) |
helpers | |
| bool | getScreenAlignedBBox (NodePtr root, ViewportPtr vp, UInt32 &l, UInt32 &b, UInt32 &r, UInt32 &t, UInt32 &front, UInt32 &back) |
Generic Field Access | |
| GetFieldHandlePtr | getHandleEnabled (void) const |
| EditFieldHandlePtr | editHandleEnabled (void) |
| GetFieldHandlePtr | getHandleStatistics (void) const |
| EditFieldHandlePtr | editHandleStatistics (void) |
Sync | |
| EditFieldHandlePtr | editHandleAttachments (void) |
| GetFieldHandlePtr | getHandleAttachments (void) const |
Edit | |
| OSG_SYSTEM_DLLMAPPING void | subReferenceUnresolved (void) |
MT Construction | |
| OSG_SYSTEM_DLLMAPPING void | onCreateAspect (const FieldContainer *createAspect, const FieldContainer *source=NULL) |
| OSG_SYSTEM_DLLMAPPING void | onCreate (const FieldContainer *source=NULL) |
| virtual OSG_SYSTEM_DLLMAPPING void | onDestroy (UInt32 uiContainerId) |
Changed | |
| OSG_SYSTEM_DLLMAPPING void | onCreate (const ReflexiveContainer *source=NULL) |
| virtual OSG_SYSTEM_DLLMAPPING void | onDestroyAspect (UInt32 uiContainerId, UInt32 uiAspect) |
MT Construction | |
| virtual OSG_SYSTEM_DLLMAPPING bool | deregister (UInt32 uiContainerId) |
MT Construction | |
| OSG_SYSTEM_DLLMAPPING void | registerChangedContainer (void) |
| virtual OSG_SYSTEM_DLLMAPPING void | registerChangedContainerV (void) |
Local Edit | |
| void | editSField (ConstFieldMaskArg whichField) |
| template<class FieldT> | |
| void | editMField (ConstFieldMaskArg whichField, FieldT &oField) |
MT Destruction | |
| void | execEndEdit (ConstFieldMaskArg whichField) |
| void | clearChangeEntry (ContainerChangeEntry *pRef) |
Edit | |
| OSG_SYSTEM_DLLMAPPING void | setId (UInt32 uiContainerId) |
| OSG_SYSTEM_DLLMAPPING UInt32 | getId (void) const |
Static Protected Member Functions | |
| static void | classDescInserter (TypeObject &oType) |
| static Char8 * | getClassname (void) |
Init | |
| static void | initMethod (InitPhase ePhase) |
Fields | |
| static void | classDescInserter (TypeObject &oType) |
MT Construction | |
| template<class ObjectT> | |
| static void | newPtr (typename ObjectT::ObjPtr &result, const ObjectT *prototypeP) |
| template<class ObjectT> | |
| static void | newPtr (typename ObjectT::ObjPtr &result) |
Protected Attributes | |
| BaseThread * | _writer |
| Barrier * | _barrier |
| bool | _stopWriter |
| UInt32 | _swapWith |
| Connection * | _swapConnection |
| UInt32 | _tilesX |
| UInt32 | _tilesY |
| UInt32 | _tileBufferSize |
| std::vector< UInt8 > | _tile |
| std::vector< UInt8 > | _readTile |
| UInt32 | _writeLeft |
| UInt32 | _writeRight |
| UInt32 | _writeBottom |
| UInt32 | _writeTop |
| UInt32 | _usableServers |
| Statistics | _statistics |
| UInt32 | _intDepthMax |
| UInt32 | _shortDepthMax |
Fields | |
| SFBool | _sfShort |
| SFBool | _sfAlpha |
| SFUInt32 | _sfTileSize |
protected variables | |
| bool | _isClient |
| UInt32 | _clusterId |
| UInt32 | _clusterSize |
| UInt32 | _serverCount |
| WindowPtr | _localWindow |
| ClusterWindowPtr | _clusterWindow |
Fields | |
| SFBool | _sfEnabled |
| SFBool | _sfStatistics |
Fields | |
| SFAttachmentObjPtrMap | _sfAttachments |
Type information | |
| FieldFlags * | _pFieldFlags |
| MFChangedFunctorCallback | _mfChangedFunctors |
| Int32 | _iRefCount |
Member | |
| BitVector | _bvChanged |
| ContainerChangeEntry * | _pContainerChanges |
| UInt32 | _uiContainerId |
Static Protected Attributes | |
| static TypeObject | _type |
Private Types | |
| typedef BinarySwapComposerBase | Inherited |
Private Member Functions | |
| void | operator= (const BinarySwapComposer &source) |
Static Private Member Functions | |
| static void | writeProc (void *arg) |
Friends | |
| class | FieldContainer |
| class | BinarySwapComposerBase |
Classes | |
| struct | RGBValue |
| RGB Color value. More... | |
| struct | Statistics |
| struct | TileBuffer |
Definition at line 57 of file OSGBinarySwapComposer.h.
typedef BinarySwapComposerBase OSG::BinarySwapComposer::Inherited [private] |
Reimplemented from OSG::BinarySwapComposerBase.
Definition at line 62 of file OSGBinarySwapComposer.h.
typedef ImageComposer OSG::BinarySwapComposerBase::ParentContainer [inherited] |
Reimplemented from OSG::ImageComposerBase.
Definition at line 85 of file OSGBinarySwapComposerBase.h.
typedef Inherited::TypeObject OSG::BinarySwapComposerBase::TypeObject [inherited] |
Reimplemented from OSG::ImageComposerBase.
Definition at line 87 of file OSGBinarySwapComposerBase.h.
typedef TypeObject::InitPhase OSG::BinarySwapComposerBase::InitPhase [inherited] |
Reimplemented from OSG::ImageComposerBase.
Definition at line 88 of file OSGBinarySwapComposerBase.h.
typedef AttachmentContainer OSG::AttachmentContainer::Self [inherited] |
Reimplemented from OSG::FieldContainer.
Reimplemented in OSG::ScreenLOD, OSG::MultiCore, OSG::ChunkOverrideGroup, OSG::Node, OSG::StageHandlerMixin< ContainerMixinHead< ShadowMapEngineDesc > >, and OSG::StageHandlerMixin< ContainerMixinHead< StageDesc > >.
Definition at line 68 of file OSGAttachmentContainer.h.
typedef FieldContainerAttachment OSG::AttachmentContainer::AttachmentObj [inherited] |
Definition at line 70 of file OSGAttachmentContainer.h.
typedef FieldContainerAttachmentPtr OSG::AttachmentContainer::AttachmentObjPtr [inherited] |
Definition at line 71 of file OSGAttachmentContainer.h.
typedef SFFieldContainerAttachmentPtrMap OSG::AttachmentContainer::SFAttachmentObjPtrMap [inherited] |
Definition at line 72 of file OSGAttachmentContainer.h.
typedef SFAttachmentObjPtrMap::StoredType OSG::AttachmentContainer::AttachmentObjPtrMap [inherited] |
Definition at line 74 of file OSGAttachmentContainer.h.
typedef AttachmentObjPtrMap::iterator OSG::AttachmentContainer::AttachmentObjPtrMapIt [inherited] |
Definition at line 75 of file OSGAttachmentContainer.h.
typedef Field*(ReflexiveContainer::*) OSG::ReflexiveContainer::FieldEditMethod(void) [inherited] |
Definition at line 79 of file OSGReflexiveContainer.h.
typedef const Field*(ReflexiveContainer::*) OSG::ReflexiveContainer::FieldGetMethod(void) const [inherited] |
Definition at line 81 of file OSGReflexiveContainer.h.
anonymous enum [inherited] |
Definition at line 96 of file OSGBinarySwapComposerBase.h.
00097 { 00098 ShortFieldId = Inherited::NextFieldId, 00099 AlphaFieldId = ShortFieldId + 1, 00100 TileSizeFieldId = AlphaFieldId + 1, 00101 NextFieldId = TileSizeFieldId + 1 00102 };
anonymous enum [inherited] |
Definition at line 95 of file OSGImageComposerBase.h.
00096 { 00097 EnabledFieldId = Inherited::NextFieldId, 00098 StatisticsFieldId = EnabledFieldId + 1, 00099 NextFieldId = StatisticsFieldId + 1 00100 };
| BinarySwapComposer::BinarySwapComposer | ( | void | ) | [protected] |
Definition at line 66 of file OSGBinarySwapComposer.cpp.
00066 : 00067 Inherited(), 00068 _writer(NULL), 00069 _barrier(NULL), 00070 _stopWriter(false), 00071 _intDepthMax(0xffffffff), 00072 _shortDepthMax(0xffff) 00073 { 00074 }
| BinarySwapComposer::BinarySwapComposer | ( | const BinarySwapComposer & | source | ) | [protected] |
Definition at line 76 of file OSGBinarySwapComposer.cpp.
00076 : 00077 Inherited(source), 00078 _writer(NULL), 00079 _barrier(NULL), 00080 _stopWriter(false), 00081 _intDepthMax(0xffffffff), 00082 _shortDepthMax(0xffff) 00083 { 00084 }
| BinarySwapComposer::~BinarySwapComposer | ( | void | ) | [protected, virtual] |
| void BinarySwapComposer::changed | ( | ConstFieldMaskArg | whichField, | |
| UInt32 | origin, | |||
| BitVector | detail | |||
| ) | [virtual] |
Reimplemented from OSG::ImageComposer.
Definition at line 92 of file OSGBinarySwapComposer.cpp.
References OSG::FieldContainer::changed().
00095 { 00096 Inherited::changed(whichField, origin, details); 00097 }
| void BinarySwapComposer::dump | ( | UInt32 | uiIndent = 0, |
|
| const BitVector | bvFlags = 0 | |||
| ) | const [virtual] |
Reimplemented from OSG::ImageComposer.
Definition at line 99 of file OSGBinarySwapComposer.cpp.
References SLOG.
00101 { 00102 SLOG << "Dump BinarySwapComposer NI" << std::endl; 00103 }
| bool BinarySwapComposer::clientRendering | ( | void | ) | [virtual] |
| void BinarySwapComposer::open | ( | ) | [virtual] |
Reimplemented from OSG::ImageComposer.
Definition at line 116 of file OSGBinarySwapComposer.cpp.
References _barrier, OSG::ImageComposer::_clusterWindow, OSG::ImageComposer::_isClient, _usableServers, _writer, OSG::ImageComposer::clusterId(), OSG::ImageComposer::clusterWindow(), OSG::BaseThread::get(), OSG::Barrier::get(), OSG::osgIsPower2(), OSG::osgNextPower2(), OSG::BaseThread::runFunction(), OSG::ImageComposer::serverCount(), and writeProc().
00117 { 00118 // determine usable servers 00119 if(osgIsPower2(serverCount())) 00120 _usableServers = serverCount(); 00121 else 00122 _usableServers = osgNextPower2(serverCount()) / 2; 00123 00124 // _usableServers = 1; 00125 00126 // create server cross connection 00127 _clusterWindow->getNetwork()->connectAllPointToPoint(clusterId(), 00128 "StreamSock"); 00129 // do not buffer any data 00130 for(UInt32 i=0 ; i <= serverCount() ; ++i) 00131 clusterWindow()->getNetwork()->getConnection(i)->forceDirectIO(); 00132 00133 /* 00134 // create barrier 00135 _barrier = Barrier::get(NULL); 00136 // create writer thread 00137 _writer = BaseThread::get(NULL); 00138 */ 00139 00140 // read whole buffer 00141 if(!_isClient && clusterId() < _usableServers) 00142 { 00143 // create barrier 00144 _barrier = Barrier::get(NULL); 00145 // create writer thread 00146 _writer = BaseThread::get(NULL); 00147 // start writer thread 00148 _writer->runFunction( writeProc, this ); 00149 } 00150 else 00151 { 00152 _writer = NULL; 00153 } 00154 }
| void BinarySwapComposer::composeViewport | ( | ViewportPtr | port | ) | [virtual] |
Reimplemented from OSG::ImageComposer.
Definition at line 156 of file OSGBinarySwapComposer.cpp.
References _intDepthMax, _readTile, _shortDepthMax, _statistics, _tile, _tileBufferSize, _tilesX, _tilesY, _usableServers, OSG::BinarySwapComposer::Statistics::bytesIn, OSG::BinarySwapComposer::Statistics::bytesOut, OSG::ImageComposer::clusterId(), OSG::ImageComposer::clusterWindow(), OSG::BinarySwapComposer::Statistics::composeTime, OSG::ExceptionBinaryDataHandler::flush(), OSG::ExceptionBinaryDataHandler::get(), OSG::BinarySwapComposerBase::getAlpha(), OSG::BinarySwapComposerBase::getShort(), OSG::ImageComposerBase::getStatistics(), OSG::getSystemTime(), OSG::BinarySwapComposerBase::getTileSize(), GL_UNSIGNED_SHORT_5_6_5, GLint(), OSG::ImageComposer::isClient(), OSG::ExceptionBinaryDataHandler::put(), recvFromServers(), OSG::Connection::selectChannel(), OSG::ImageComposer::serverCount(), and startReader().
00157 { 00158 // setup viewport 00159 GLint 00160 pl=port->getPixelLeft(), 00161 pr=port->getPixelRight(), 00162 pb=port->getPixelBottom(), 00163 pt=port->getPixelTop(); 00164 GLint pw=pr-pl+1,ph=pt-pb+1; 00165 bool full = port->isFullWindow(); 00166 glViewport(pl, pb, pw, ph); 00167 glScissor(pl, pb, pw, ph); 00168 if(! full) 00169 glEnable(GL_SCISSOR_TEST); 00170 00171 GLboolean depth = glIsEnabled(GL_DEPTH_TEST); 00172 GLboolean blend = glIsEnabled(GL_BLEND); 00173 00174 glDisable(GL_DEPTH_TEST); 00175 glPushMatrix(); 00176 glLoadIdentity(); 00177 glMatrixMode(GL_PROJECTION); 00178 glPushMatrix(); 00179 glLoadIdentity(); 00180 glOrtho(0, port->getPixelWidth(), 00181 0, port->getPixelHeight(),-1,1); 00182 00183 // printf("max %x,%x\n",_intDepthMax,_shortDepthMax); 00184 00185 if(getAlpha()) 00186 { 00187 glEnable(GL_BLEND); 00188 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 00189 } 00190 _tilesX = port->getPixelWidth() / getTileSize() + 1; 00191 _tilesY = port->getPixelHeight() / getTileSize() + 1; 00192 00193 _tileBufferSize = getTileSize()*getTileSize()*8+sizeof(TileBuffer); 00194 _readTile.resize(_tileBufferSize); 00195 00196 _statistics.bytesIn = 0; 00197 _statistics.bytesOut = 0; 00198 00199 if(isClient()) 00200 { 00201 if(getShort()) 00202 { 00203 UInt16 colorDummy; 00204 UInt32 depthDummy; 00205 recvFromServers(depthDummy,colorDummy, 00206 GL_RGB, 00207 GL_UNSIGNED_SHORT_5_6_5, 00208 port); 00209 } 00210 else 00211 { 00212 if(getAlpha()) 00213 { 00214 UInt32 colorDummy; 00215 UInt32 depthDummy; 00216 recvFromServers(depthDummy,colorDummy, 00217 GL_RGBA, 00218 GL_UNSIGNED_BYTE, 00219 port); 00220 } 00221 else 00222 { 00223 RGBValue colorDummy; 00224 UInt32 depthDummy; 00225 recvFromServers(depthDummy,colorDummy, 00226 GL_RGB, 00227 GL_UNSIGNED_BYTE, 00228 port); 00229 } 00230 } 00231 if(getStatistics()) 00232 { 00233 UInt32 maxIn = _statistics.bytesIn; 00234 UInt32 maxOut = _statistics.bytesOut; 00235 UInt32 maxIO = maxIn + maxOut; 00236 UInt32 sumOut = _statistics.bytesOut; 00237 UInt32 missing = _usableServers; 00238 double composeTime = 1e32; 00239 00240 Connection *server; 00241 Statistics statistics; 00242 for