Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::MultiDisplayWindowBase Class Reference

MultiDisplayWindow Base Class.

#include <OSGMultiDisplayWindowBase.h>

Inheritance diagram for osg::MultiDisplayWindowBase:

osg::ClusterWindow osg::ClusterWindowBase osg::Window osg::WindowBase osg::AttachmentContainer osg::FieldContainer osg::MultiDisplayWindow List of all members.

Extension handling

GLExtensionFunction getFunctionByName (const Char8 *s)
bool hasExtension (UInt32 id)
bool hasExtension (const Char8 *s)
void * getFunction (UInt32 id)
void * getFunctionNoCheck (UInt32 id)
void dumpExtensions (void)
Real32 getConstantValue (GLenum val)
const Vec2fgetConstantValuev (GLenum val)
const std::vector< std::string > & getRegisteredFunctions (void)
const std::vector< std::string > & getExtensions (void)
const std::vector< std::string > & getIgnoredExtensions (void)
*static void setGLLibraryName (const Char8 *s)
static Int32 getExtensionId (const Char8 *s)
static bool hasCommonExtension (UInt32 id)
static const std::vector<
std::string > & 
getRegisteredExtensions (void)

asynchronous initialization

bool initAsync (connectioncbfp fp)
void setConnectionCB (connectioncbfp fp)
*typedef bool(* connectioncbfp )(std::string server, Real32 progress)

GL object handling

*void validateGLObject (UInt32 id)
void validateAllGLObjects (void)
GLObjectStatusE getGLObjectStatus (UInt32 id)
void setGLObjectId (UInt32 id, UInt32 id2)
UInt32 getGLObjectId (UInt32 id)
static void refreshGLObject (UInt32 id)
static void reinitializeGLObject (UInt32 id)
static void destroyGLObject (UInt32 id, UInt32 num=1)
static void unpackIdStatus (UInt32 idstatus, UInt32 &id, GLObjectStatusE &status)

GL object handling

void doInitRegisterGLObject (UInt32 id, UInt32 num)
*static void initRegisterGLObject (UInt32 id, UInt32 num)
static UInt32 packIdStatus (UInt32 id, GLObjectStatusE status)

Public Types

typedef MultiDisplayWindowPtr Ptr
enum  {
  HServersFieldId = Inherited::NextFieldId, VServersFieldId = HServersFieldId + 1, ManageClientViewportsFieldId = VServersFieldId + 1, XOverlapFieldId = ManageClientViewportsFieldId + 1,
  YOverlapFieldId = XOverlapFieldId + 1, NextFieldId = YOverlapFieldId + 1
}
typedef ArgsCollector< UInt32GLObjectFunctorArgs
typedef TypedVoidFunctor2Base<
PtrCallArg< Window >, GLObjectFunctorArgs
GLObjectFunctor
typedef void(* GLExtensionFunction )(void)
enum  GLObjectStatusE {
  notused = 1, initialize, reinitialize, initialized,
  needrefresh, destroy, finaldestroy
}
enum  { statusShift = 3, statusMask = 7 }

Public Member Functions

FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get
*SFUInt32getSFHServers (void)
 Get the MultiDisplayWindow::_sfHServers field.
SFUInt32getSFVServers (void)
 Get the MultiDisplayWindow::_sfVServers field.
SFBoolgetSFManageClientViewports (void)
 Get the MultiDisplayWindow::_sfManageClientViewports field.
SFInt32getSFXOverlap (void)
 Get the MultiDisplayWindow::_sfXOverlap field.
SFInt32getSFYOverlap (void)
 Get the MultiDisplayWindow::_sfYOverlap field.
UInt32getHServers (void)
 Get the value of the MultiDisplayWindow::_sfHServers field.
const UInt32getHServers (void) const
 Get the value of the MultiDisplayWindow::_sfHServers field.
UInt32getVServers (void)
 Get the value of the MultiDisplayWindow::_sfVServers field.
const UInt32getVServers (void) const
 Get the value of the MultiDisplayWindow::_sfVServers field.
bool & getManageClientViewports (void)
 Get the value of the MultiDisplayWindow::_sfManageClientViewports field.
const bool & getManageClientViewports (void) const
 Get the value of the MultiDisplayWindow::_sfManageClientViewports field.
Int32getXOverlap (void)
 Get the value of the MultiDisplayWindow::_sfXOverlap field.
const Int32getXOverlap (void) const
 Get the value of the MultiDisplayWindow::_sfXOverlap field.
Int32getYOverlap (void)
 Get the value of the MultiDisplayWindow::_sfYOverlap field.
const Int32getYOverlap (void) const
 Get the value of the MultiDisplayWindow::_sfYOverlap field.
Field Set
*void setHServers (const UInt32 &value)
 Set the value of the MultiDisplayWindow::_sfHServers field.
void setVServers (const UInt32 &value)
 Set the value of the MultiDisplayWindow::_sfVServers field.
void setManageClientViewports (const bool &value)
 Set the value of the MultiDisplayWindow::_sfManageClientViewports field.
void setXOverlap (const Int32 &value)
 Set the value of the MultiDisplayWindow::_sfXOverlap field.
void setYOverlap (const Int32 &value)
 Set the value of the MultiDisplayWindow::_sfYOverlap field.
Binary Access
*virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Copy
*virtual FieldContainerPtr shallowCopy (void) const

Static Public Member Functions

Class Get
*static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction
*static MultiDisplayWindowPtr create (void)
 create a new instance of the class
static MultiDisplayWindowPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype

Static Public Attributes

static const osg::BitVector HServersFieldMask
static const osg::BitVector VServersFieldMask
static const osg::BitVector ManageClientViewportsFieldMask
static const osg::BitVector XOverlapFieldMask
static const osg::BitVector YOverlapFieldMask
static const osg::BitVector MTInfluenceMask
static const osg::BitVector ServersFieldMask
static const osg::BitVector ConnectionTypeFieldMask
static const osg::BitVector ConnectionInterfaceFieldMask
static const osg::BitVector ConnectionDestinationFieldMask
static const osg::BitVector ConnectionParamsFieldMask
static const osg::BitVector ServicePortFieldMask
static const osg::BitVector ServiceAddressFieldMask
static const osg::BitVector ClientWindowFieldMask
static const osg::BitVector InterleaveFieldMask
static const osg::BitVector FrameCountFieldMask
static const osg::BitVector ComposerFieldMask
static const osg::BitVector AutostartFieldMask
static const osg::BitVector CalibrationFieldMask
static const Real32 unknownConstant = -1e100
static const osg::BitVector WidthFieldMask
static const osg::BitVector HeightFieldMask
static const osg::BitVector PortFieldMask
static const osg::BitVector ResizePendingFieldMask
static const osg::BitVector GlObjectEventCounterFieldMask
static const osg::BitVector GlObjectLastRefreshFieldMask
static const osg::BitVector GlObjectLastReinitializeFieldMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask

Protected Member Functions

Constructors
MultiDisplayWindowBase (void)
 MultiDisplayWindowBase (const MultiDisplayWindowBase &source)
Destructors
*virtual ~MultiDisplayWindowBase (void)
Sync
*void executeSyncImpl (MultiDisplayWindowBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)

Protected Attributes

Fields
*SFUInt32 _sfHServers
SFUInt32 _sfVServers
SFBool _sfManageClientViewports
SFInt32 _sfXOverlap
SFInt32 _sfYOverlap

Private Types

typedef ClusterWindow Inherited

Private Member Functions

void operator= (const MultiDisplayWindowBase &source)

Static Private Attributes

static FieldDescription_desc []
 MultiDisplayWindow description.
static FieldContainerType _type

Friends

class FieldContainer

Detailed Description

Definition at line 85 of file OSGMultiDisplayWindowBase.h.


Member Typedef Documentation

typedef ClusterWindow osg::MultiDisplayWindowBase::Inherited [private]
 

Reimplemented from osg::ClusterWindow.

Reimplemented in osg::MultiDisplayWindow.

Definition at line 89 of file OSGMultiDisplayWindowBase.h.

typedef MultiDisplayWindowPtr osg::MultiDisplayWindowBase::Ptr
 

Reimplemented from osg::ClusterWindowBase.

Definition at line 94 of file OSGMultiDisplayWindowBase.h.

typedef ArgsCollector<UInt32> osg::Window::GLObjectFunctorArgs [inherited]
 

Definition at line 96 of file OSGWindow.h.

typedef TypedVoidFunctor2Base<PtrCallArg<Window> , GLObjectFunctorArgs> osg::Window::GLObjectFunctor [inherited]
 

Definition at line 99 of file OSGWindow.h.

typedef void(* osg::Window::GLExtensionFunction)(void) [inherited]
 

Definition at line 101 of file OSGWindow.h.


Member Enumeration Documentation

anonymous enum
 

Enumerator:
HServersFieldId 
VServersFieldId 
ManageClientViewportsFieldId 
XOverlapFieldId 
YOverlapFieldId 
NextFieldId 

Reimplemented from osg::ClusterWindowBase.

Definition at line 96 of file OSGMultiDisplayWindowBase.h.

00097     {
00098         HServersFieldId              = Inherited::NextFieldId,
00099         VServersFieldId              = HServersFieldId              + 1,
00100         ManageClientViewportsFieldId = VServersFieldId              + 1,
00101         XOverlapFieldId              = ManageClientViewportsFieldId + 1,
00102         YOverlapFieldId              = XOverlapFieldId              + 1,
00103         NextFieldId                  = YOverlapFieldId              + 1
00104     };

enum osg::Window::GLObjectStatusE [inherited]
 

Enumeration values for the status of the GL objects. This is primarily used to signal the object's callback functions what to do. See OpenGL Objects & Extension Handling for a description.

Enumerator:
notused  Object is not used at all right now.
initialize  The object is being initialized for the first time.
reinitialize  The object is being re-initialized, i.e. it has changed significantly.
initialized  The object is initialized and valid.
needrefresh  The object is initialized but needs a refresh.
destroy  The object is to be destroyed, i.e. removed from the current OpenGL context.
finaldestroy  The object has been removed from all OpenGL contexts and used ressources but be freed now.

Definition at line 78 of file OSGWindow.h.

00079     {
00080         notused      = 1, 
00081         initialize, 
00082         reinitialize, 
00083         initialized,
00084         needrefresh, 
00085         destroy, 
00086         finaldestroy 
00087     };

anonymous enum [inherited]
 

Enumerator:
statusShift  Shift value to transform object id and status into asingle int.
statusMask  Mask value to transform object id and status into asingle int.

Definition at line 92 of file OSGWindow.h.

00092 { statusShift = 3, statusMask = 7 }; 


Constructor & Destructor Documentation

MultiDisplayWindowBase::MultiDisplayWindowBase void   )  [protected]
 

Definition at line 208 of file OSGMultiDisplayWindowBase.cpp.

00208                                                    :
00209     _sfHServers               (), 
00210     _sfVServers               (), 
00211     _sfManageClientViewports  (bool(true)), 
00212     _sfXOverlap               (Int32(0)), 
00213     _sfYOverlap               (Int32(0)), 
00214     Inherited() 
00215 {
00216 }

MultiDisplayWindowBase::MultiDisplayWindowBase const MultiDisplayWindowBase source  )  [protected]
 

Definition at line 222 of file OSGMultiDisplayWindowBase.cpp.

00222                                                                                    :
00223     _sfHServers               (source._sfHServers               ), 
00224     _sfVServers               (source._sfVServers               ), 
00225     _sfManageClientViewports  (source._sfManageClientViewports  ), 
00226     _sfXOverlap               (source._sfXOverlap               ), 
00227     _sfYOverlap               (source._sfYOverlap               ), 
00228     Inherited                 (source)
00229 {
00230 }

MultiDisplayWindowBase::~MultiDisplayWindowBase void   )  [protected, virtual]
 

Definition at line 234 of file OSGMultiDisplayWindowBase.cpp.

00235 {
00236 }


Member Function Documentation

osg::FieldContainerType & osg::MultiDisplayWindowBase::getClassType void   )  [inline, static]
 

Reimplemented from osg::ClusterWindowBase.

Definition at line 58 of file OSGMultiDisplayWindowBase.inl.

References _type.

Referenced by create().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::MultiDisplayWindowBase::getClassTypeId void   )  [inline, static]
 

Reimplemented from osg::ClusterWindowBase.

Definition at line 65 of file OSGMultiDisplayWindowBase.inl.

References _type, and osg::TypeBase::getId().

00066 {
00067     return _type.getId(); 
00068 } 

FieldContainerType & MultiDisplayWindowBase::getType void   )  [virtual]
 

Reimplemented from osg::ClusterWindowBase.

Definition at line 150 of file OSGMultiDisplayWindowBase.cpp.

References _type.

00151 {
00152     return _type; 
00153 } 

const FieldContainerType & MultiDisplayWindowBase::getType void   )  const [virtual]
 

Reimplemented from osg::ClusterWindowBase.

Definition at line 155 of file OSGMultiDisplayWindowBase.cpp.

References _type.

00156 {
00157     return _type;
00158 } 

UInt32 MultiDisplayWindowBase::getContainerSize void   )  const [virtual]
 

Reimplemented from osg::ClusterWindowBase.

Definition at line 170 of file OSGMultiDisplayWindowBase.cpp.

00171 { 
00172     return sizeof(MultiDisplayWindow); 
00173 }

SFUInt32 * osg::MultiDisplayWindowBase::getSFHServers void   )  [inline]
 

Definition at line 101 of file OSGMultiDisplayWindowBase.inl.

References _sfHServers.

00102 {
00103     return &_sfHServers;
00104 }

SFUInt32 * osg::MultiDisplayWindowBase::getSFVServers void   )  [inline]
 

Definition at line 108 of file OSGMultiDisplayWindowBase.inl.

References _sfVServers.

00109 {
00110     return &_sfVServers;
00111 }

SFBool * osg::MultiDisplayWindowBase::getSFManageClientViewports void   )  [inline]
 

Definition at line 115 of file OSGMultiDisplayWindowBase.inl.

References _sfManageClientViewports.

00116 {
00117     return &_sfManageClientViewports;
00118 }

SFInt32 * osg::MultiDisplayWindowBase::getSFXOverlap void   )  [inline]
 

Definition at line 122 of file OSGMultiDisplayWindowBase.inl.

References _sfXOverlap.

00123 {
00124     return &_sfXOverlap;
00125 }

SFInt32 * osg::MultiDisplayWindowBase::getSFYOverlap void   )  [inline]
 

Definition at line 129 of file OSGMultiDisplayWindowBase.inl.

References _sfYOverlap.

00130 {
00131     return &_sfYOverlap;
00132 }

UInt32 & osg::MultiDisplayWindowBase::getHServers void   )  [inline]
 

Definition at line 137 of file OSGMultiDisplayWindowBase.inl.

References _sfHServers, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::MultiDisplayWindow::dump(), and osg::MultiDisplayWindow::serverRender().

00138 {
00139     return _sfHServers.getValue();
00140 }

const UInt32 & osg::MultiDisplayWindowBase::getHServers void   )  const [inline]
 

Definition at line 144 of file OSGMultiDisplayWindowBase.inl.

References _sfHServers, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00145 {
00146     return _sfHServers.getValue();
00147 }

UInt32 & osg::MultiDisplayWindowBase::getVServers void   )  [inline]
 

Definition at line 158 of file OSGMultiDisplayWindowBase.inl.

References _sfVServers, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::MultiDisplayWindow::dump(), and osg::MultiDisplayWindow::serverRender().

00159 {
00160     return _sfVServers.getValue();
00161 }

const UInt32 & osg::MultiDisplayWindowBase::getVServers void   )  const [inline]
 

Definition at line 165 of file OSGMultiDisplayWindowBase.inl.

References _sfVServers, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00166 {
00167     return _sfVServers.getValue();
00168 }

bool & osg::MultiDisplayWindowBase::getManageClientViewports void   )  [inline]
 

Definition at line 179 of file OSGMultiDisplayWindowBase.inl.

References _sfManageClientViewports, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::MultiDisplayWindow::clientInit().

00180 {
00181     return _sfManageClientViewports.getValue();
00182 }

const bool & osg::MultiDisplayWindowBase::getManageClientViewports void   )  const [inline]
 

Definition at line 186 of file OSGMultiDisplayWindowBase.inl.

References _sfManageClientViewports, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00187 {
00188     return _sfManageClientViewports.getValue();
00189 }

Int32 & osg::MultiDisplayWindowBase::getXOverlap void   )  [inline]
 

Definition at line 200 of file OSGMultiDisplayWindowBase.inl.

References _sfXOverlap, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::MultiDisplayWindow::serverRender().

00201 {
00202     return _sfXOverlap.getValue();
00203 }

const Int32 & osg::MultiDisplayWindowBase::getXOverlap void   )  const [inline]
 

Definition at line 207 of file OSGMultiDisplayWindowBase.inl.

References _sfXOverlap, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00208 {
00209     return _sfXOverlap.getValue();
00210 }

Int32 & osg::MultiDisplayWindowBase::getYOverlap void   )  [inline]
 

Definition at line 221 of file OSGMultiDisplayWindowBase.inl.

References _sfYOverlap, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::MultiDisplayWindow::serverRender().

00222 {
00223     return _sfYOverlap.getValue();
00224 }

const Int32 & osg::MultiDisplayWindowBase::getYOverlap void   )  const [inline]
 

Definition at line 228 of file OSGMultiDisplayWindowBase.inl.

References _sfYOverlap, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00229 {
00230     return _sfYOverlap.getValue();
00231 }

void osg::MultiDisplayWindowBase::setHServers const UInt32 value  )  [inline]
 

Definition at line 151 of file OSGMultiDisplayWindowBase.inl.

References _sfHServers, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

Referenced by osg::MultiDisplayWindow::serverRender().

00152 {
00153     _sfHServers.setValue(value);
00154 }

void osg::MultiDisplayWindowBase::setVServers const UInt32 value  )  [inline]
 

Definition at line 172 of file OSGMultiDisplayWindowBase.inl.

References _sfVServers, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

Referenced by osg::MultiDisplayWindow::serverRender().

00173 {
00174     _sfVServers.setValue(value);
00175 }

void osg::MultiDisplayWindowBase::setManageClientViewports const bool &  value  )  [inline]
 

Definition at line 193 of file OSGMultiDisplayWindowBase.inl.

References _sfManageClientViewports, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00194 {
00195     _sfManageClientViewports.setValue(value);
00196 }

void osg::MultiDisplayWindowBase::setXOverlap const Int32 value  )  [inline]
 

Definition at line 214 of file OSGMultiDisplayWindowBase.inl.

References _sfXOverlap, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00215 {
00216     _sfXOverlap.setValue(value);
00217 }

void osg::MultiDisplayWindowBase::setYOverlap const Int32 value  )  [inline]
 

Definition at line 235 of file OSGMultiDisplayWindowBase.inl.

References _sfYOverlap, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00236 {
00237     _sfYOverlap.setValue(value);
00238 }

UInt32 MultiDisplayWindowBase::getBinSize const BitVector whichField  )  [virtual]
 

Reimplemented from osg::ClusterWindowBase.

Definition at line 240 of file OSGMultiDisplayWindowBase.cpp.

References _sfHServers, _sfManageClientViewports, _sfVServers, _sfXOverlap, _sfYOverlap, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::ClusterWindowBase::getBinSize(), HServersFieldMask, ManageClientViewportsFieldMask, osg::FieldBits::NoField, VServersFieldMask, XOverlapFieldMask, and YOverlapFieldMask.

00241 {
00242     UInt32 returnValue = Inherited::getBinSize(whichField);
00243 
00244     if(FieldBits::NoField != (HServersFieldMask & whichField))
00245     {
00246         returnValue += _sfHServers.getBinSize();
00247     }
00248 
00249     if(FieldBits::NoField != (VServersFieldMask & whichField))
00250     {
00251         returnValue += _sfVServers.getBinSize();
00252     }
00253 
00254     if(FieldBits::NoField != (ManageClientViewportsFieldMask & whichField))
00255     {
00256         returnValue += _sfManageClientViewports.getBinSize();
00257     }
00258 
00259     if(FieldBits::NoField != (XOverlapFieldMask & whichField))
00260     {
00261         returnValue += _sfXOverlap.getBinSize();
00262     }
00263 
00264     if(FieldBits::NoField != (YOverlapFieldMask & whichField))
00265     {
00266         returnValue += _sfYOverlap.getBinSize();
00267     }
00268 
00269 
00270     return returnValue;
00271 }

void MultiDisplayWindowBase::copyToBin BinaryDataHandler pMem,
const BitVector whichField
[virtual]
 

Reimplemented from osg::ClusterWindowBase.

Definition at line 273 of file OSGMultiDisplayWindowBase.cpp.

References _sfHServers, _sfManageClientViewports, _sfVServers, _sfXOverlap, _sfYOverlap, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::ClusterWindowBase::copyToBin(), HServersFieldMask, ManageClientViewportsFieldMask, osg::FieldBits::NoField, VServersFieldMask, XOverlapFieldMask, and YOverlapFieldMask.

00275 {
00276     Inherited::copyToBin(pMem, whichField);
00277 
00278     if(FieldBits::NoField != (HServersFieldMask & whichField))
00279     {
00280         _sfHServers.copyToBin(pMem);
00281     }
00282 
00283     if(FieldBits::NoField != (VServersFieldMask & whichField))
00284     {
00285         _sfVServers.copyToBin(pMem);
00286     }
00287 
00288     if(FieldBits::NoField != (ManageClientViewportsFieldMask & whichField))
00289     {
00290         _sfManageClientViewports.copyToBin(pMem);
00291     }
00292 
00293     if(FieldBits::NoField != (