osg::ShaderParameterVec4fPtr Class Reference

Inheritance diagram for osg::ShaderParameterVec4fPtr:
osg::ShaderParameterPtr osg::AttachmentContainerPtr osg::FieldContainerPtr osg::FieldContainerPtrBase

List of all members.

Public Types

typedef AttachmentContainer StoredObjectType
typedef AttachmentContainerPtr ObjectType
typedef FieldContainerPtr Inherited
typedef UInt8
*FieldContainerPtrBase::* 
unspecified_bool_type

Public Member Functions

 OSG_PROPERTY_DECL (Pointer)
Container Access



AttachmentContaineroperator-> (void)
AttachmentContaineroperator-> (void) const
AttachmentContaineroperator* (void)
AttachmentContaineroperator* (void) const
AttachmentContainergetCPtr (void)
AttachmentContainergetCPtr (void) const
Parent Field Pos



void setParentFieldPos (UInt16 uiParentEPos)
UInt16 getParentFieldPos (void) const
Get Container Information



Int32 getRefCount (void) const
UInt32 getFieldContainerId (void) const
UInt16 getContainerSize (void) const
Get Container C++ Pointer



FieldContainergetBaseCPtr (void) const
FieldContainergetAspectCPtr (UInt32 uiAspectId) const
Comparison



bool operator< (const NullFieldContainerPtr &) const
bool operator< (const FieldContainerPtrBase &) const
bool operator== (const NullFieldContainerPtr &other) const
bool operator== (const FieldContainerPtrBase &other) const
bool operator!= (const NullFieldContainerPtr &other) const
bool operator!= (const FieldContainerPtrBase &other) const
bool operator! (void) const
 operator unspecified_bool_type () const
Dump



void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const

Static Public Member Functions

dcast



template<class InTypeT >
static AttachmentContainerPtr dcast (const InTypeT oIn)

Static Public Attributes

static const UInt16 InvalidParentEPos = 0xFFFF

Protected Member Functions

MT Edit



void beginEdit (BitVector whichField, UInt32 origin) const
void endEdit (BitVector whichField, UInt32 origin) const
void changed (BitVector whichField, UInt32 origin) const
void endEditNotChanged (BitVector whichField, UInt32 origin) const
Sync



void executeSync (UInt32 uiFromAspect, UInt32 uiToAspect, BitVector whichField)
Get Memory Locations



Int32getRefCountP (void)
Int32getRefCountP (void) const
UInt32getIdP (void)
UInt32getIdP (void) const
UInt8getFirstElemP (void)
UInt8getFirstElemP (void) const
UInt8getElemP (UInt32 uiElemNum)
UInt8getElemP (UInt32 uiElemNum) const
Get Memory Offsets



Int32 getRefCountOff (void) const
Int32 getIdOff (void) const
Int32 getFirstElemOff (void) const
Int32 getElemOff (UInt32 uiElemNum) const
Reference Counting



void addRef (void) const
void subRef (void) const
void deleteContainers (void) const
Helper



void setNull (void)

Static Protected Member Functions

Intialization / Termination



static bool initialize (void)
static bool terminate (void)

Protected Attributes

Member



UInt16 _containerSize
UInt16 _uiParentEPos
UInt8_storeP

Private Attributes

ShaderParameterVec4f_val

Detailed Description

This is a documentation wrapper. Its only purpose is to fool doxygen into thinking of a typedef as a class and to allow you to find all the needed info from this page.

Warning:
The real inheritance is not what you see here.
This is just to give you an idea of the conceptual relations and to help you understand the available methods of this class.

Definition at line 7811 of file dummyClasses.dox.


Member Typedef Documentation

typedef UInt8* FieldContainerPtrBase::* osg::FieldContainerPtrBase::unspecified_bool_type [inherited]

Definition at line 102 of file OSGFieldContainerPtrImpl.h.


Member Function Documentation

template<class InTypeT >
AttachmentContainerPtr osg::AttachmentContainerPtr::dcast ( const InTypeT  oIn  )  [inline, static, inherited]

Reimplemented in osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 51 of file OSGAttachmentContainerPtrDepImpl.inl.

References osg::AttachmentContainerPtr::AttachmentContainerPtr().

Referenced by osg::MaterialPool::addMaterialCB(), osg::QFCItem::addParents(), osg::QFCItem::addRefedContainer(), osg::MakeTransparentGraphOp::applyTransparency(), osg::VRMLViewpointDesc::beginNode(), osg::VRMLInlineDesc::beginNode(), osg::VRMLGroupDesc::beginNode(), osg::VRMLSwitchDesc::beginNode(), osg::VRMLLODDesc::beginNode(), osg::VRMLGeometryPointSetDesc::beginNode(), osg::VRMLGeometryDesc::beginNode(), osg::VRMLShapeDesc::beginNode(), osg::VRMLNodeDesc::beginNode(), osg::VRMLFile::beginNode(), osg::OSGLoader::beginNode(), osg::Surface::buildSurface(), osg::MultiDisplayWindow::clientInit(), osg::Geometry::CompareMaterials(), osg::XWindowBase::create(), osg::WIN32WindowBase::create(), osg::ViewportBase::create(), osg::TransformBase::create(), osg::TileCameraDecoratorBase::create(), osg::TextureGrabForegroundBase::create(), osg::TextureGrabBackgroundBase::create(), osg::TextureBackgroundBase::create(), osg::SwitchMaterialBase::create(), osg::SwitchBase::create(), osg::SurfaceBase::create(), osg::StereoBufferViewportBase::create(), osg::StateSortingGroupBase::create(), osg::SpotLightBase::create(), osg::SortFirstWindowBase::create(), osg::SolidBackgroundBase::create(), osg::SlicesBase::create(), osg::SkyBackgroundBase::create(), osg::SimpleTexturedMaterialBase::create(), osg::SimpleStatisticsForegroundBase::create(), osg::SimpleMaterialBase::create(), osg::ShearedStereoCameraDecoratorBase::create(), osg::ShaderParameterVec4fBase::create(), osg::ShaderParameterVec3fBase::create(), osg::ShaderParameterVec2fBase::create(), osg::ShaderParameterStringBase::create(), osg::ShaderParameterRealBase::create(), osg::ShaderParameterMVec4fBase::create(), osg::ShaderParameterMVec3fBase::create(), osg::ShaderParameterMVec2fBase::create(), osg::ShaderParameterMRealBase::create(), osg::ShaderParameterMMatrixBase::create(), osg::ShaderParameterMIntBase::create(), osg::ShaderParameterMatrixBase::create(), osg::ShaderParameterIntBase::create(), osg::ShaderParameterBoolBase::create(), osg::ScreenGroupBase::create(), osg::ResolutionDisplayFilterBase::create(), osg::QTWindowBase::create(), osg::ProxyGroupBase::create(), osg::ProjectionCameraDecoratorBase::create(), osg::PolygonForegroundBase::create(), osg::PolygonBackgroundBase::create(), osg::PointLightBase::create(), osg::PhongMaterialBase::create(), osg::PerspectiveCameraBase::create(), osg::PassiveWindowBase::create(), osg::PassiveViewportBase::create(), osg::PassiveBackgroundBase::create(), osg::ParticlesBase::create(), osg::OrthographicCameraBase::create(), osg::OffsetCameraDecoratorBase::create(), osg::OffCenterPerspectiveCameraBase::create(), osg::MultiSwitchBase::create(), osg::MultiPassMaterialBase::create(), osg::MultiDisplayWindowBase::create(), osg::MatrixCameraDecoratorBase::create(), osg::MatrixCameraBase::create(), osg::MaterialPoolBase::create(), osg::MaterialGroupBase::create(), osg::LightEnvBase::create(), osg::InverseTransformBase::create(), osg::InlineBase::create(), osg::ImageForegroundBase::create(), osg::ImageBase::create(), osg::ImageBackgroundBase::create(), osg::GroupBase::create(), osg::GraphicStatisticsForegroundBase::create(), osg::GradientBackgroundBase::create(), osg::GrabForegroundBase::create(), osg::GLUTWindowBase::create(), osg::GeometryBase::create(), osg::FresnelMaterialBase::create(), osg::FogBase::create(), osg::FileGrabForegroundBase::create(), osg::FBOViewportBase::create(), osg::DVRVolumeBase::create(), osg::DVRGeometryBase::create(), osg::DVRAppearanceBase::create(), osg::DistortionDisplayFilterBase::create(), osg::DistanceLODBase::create(), osg::DisplayFilterForegroundBase::create(), osg::DisplayCalibrationBase::create(), osg::DirectionalLightBase::create(), osg::DepthClearBackgroundBase::create(), osg::ComponentTransformBase::create(), osg::ColorDisplayFilterBase::create(), osg::ColorBufferViewportBase::create(), osg::ClusterWindowBase::create(), osg::ClipPlaneBase::create(), osg::ChunkMaterialBase::create(), osg::BillboardBase::create(), osg::FieldContainerType::createNodeCore(), osg::deepClone(), osg::deepCloneTree(), osg::RenderAction::drawDepth(), osg::RenderAction::drawMultiFrameOcclusionBB(), osg::VRMLAppearanceDesc::endNode(), osg::VRMLGeometryPointSetDesc::endNode(), osg::VRMLGeometryDesc::endNode(), osg::VRMLShapeDesc::endNode(), osg::MergeGraphOp::excludeListLeave(), osg::VRMLViewpointDesc::getFieldAndDesc(), osg::VRMLInlineDesc::getFieldAndDesc(), osg::VRMLGroupDesc::getFieldAndDesc(), osg::VRMLSwitchDesc::getFieldAndDesc(), osg::VRMLLODDesc::getFieldAndDesc(), osg::VRMLGeometryPointSetDesc::getFieldAndDesc(), osg::VRMLGeometryDesc::getFieldAndDesc(), osg::VRMLNodeDesc::getFieldAndDesc(), osg::ShearedStereoCameraDecorator::getProjection(), osg::RenderAction::hasGeometryChild(), osg::DVRClipGeometry::initialize(), osg::RenderAction::isOccluded(), modifyMaterial(), osg::QSceneGraphView::onSelectionChanged(), osg::MergeGraphOp::processGeometries(), osg::MergeGraphOp::processGroups(), osg::MergeGraphOp::processTransformations(), osg::QFCItem::QFCItem(), osg::FBOViewport::render(), osg::SortFirstWindow::serverRender(), osg::MultiDisplayWindow::serverRender(), osg::VRMLFile::setContainerFieldValue(), osg::OSGLoader::setFieldContainerValue(), osg::PrimitiveIterator::setGeo(), osg::OSGWriter::FCInfoHelper::setName(), osg::SplitGraphOp::splitNode(), osg::RenderAction::stop(), osg::MaterialPool::subMaterialCB(), osg::MakeTransparentGraphOp::traverse(), osg::VerifyGraphOp::traverseEnter(), osg::SplitGraphOp::traverseEnter(), osg::MergeGraphOp::traverseEnter(), osg::MaterialMergeGraphOp::traverseEnter(), osg::MakeTransparentGraphOp::traverseEnter(), osg::VerifyGeoGraphOp::travNodeEnter(), osg::StripeGraphOp::travNodeEnter(), osg::GeoTypeGraphOp::travNodeEnter(), osg::Navigator::updateCameraTransformation(), osg::TileGeometryLoad::updateGeometry(), osg::SHLChunk::updateParameters(), osg::SHLChunk::updateStereoLeftEye(), osg::TileLoadBalancer::updateSubtree(), osg::MultiDisplayWindow::updateViewport(), osg::VerifyGraphOp::verifyGeometry(), osg::ClusterServer::windowChanged(), osg::OBJSceneFileType::write(), osg::VRMLWriteAction::writeComponentTransformEnter(), osg::VRMLWriteAction::writeGeoEnter(), osg::VRMLWriteAction::writeMatGroupEnter(), osg::VRMLWriteAction::writeTransformEnter(), and osg::RemoteAspect::~RemoteAspect().

00052 {
00053     return AttachmentContainerPtr(
00054         (dynamic_cast<const AttachmentContainer *>(&*oIn)),
00055         oIn.getContainerSize(),
00056         oIn.getParentFieldPos());
00057 }

AttachmentContainer * osg::AttachmentContainerPtr::operator-> ( void   )  [inline, inherited]

Reimplemented from osg::FieldContainerPtr.

Reimplemented in osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 87 of file OSGAttachmentContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtr::operator->().

Referenced by osg::NodePtr::operator*(), and osg::NodePtr::operator->().

00088 {
00089 #if 0
00090     return (AttachmentContainer *) getElemP(Thread::getAspect());
00091 #else
00092     return static_cast<AttachmentContainer *>(Inherited::operator ->());
00093 #endif
00094 }

AttachmentContainer * osg::AttachmentContainerPtr::operator-> ( void   )  const [inline, inherited]

Reimplemented from osg::FieldContainerPtr.

Reimplemented in osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 97 of file OSGAttachmentContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtr::operator->().

00098 {
00099 #if 0
00100     return (AttachmentContainer *) getElemP(Thread::getAspect());
00101 #else
00102     return static_cast<AttachmentContainer *>(Inherited::operator ->());
00103 #endif
00104 }

AttachmentContainer & osg::AttachmentContainerPtr::operator* ( void   )  [inline, inherited]

Reimplemented from osg::FieldContainerPtr.

Reimplemented in osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 107 of file OSGAttachmentContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtr::operator*().

00108 {
00109 #if 0
00110     return *((AttachmentContainer *) getElemP(Thread::getAspect()));
00111 #else
00112     return static_cast<AttachmentContainer &>(Inherited::operator *());
00113 #endif
00114 }

AttachmentContainer & osg::AttachmentContainerPtr::operator* ( void   )  const [inline, inherited]

Reimplemented from osg::FieldContainerPtr.

Reimplemented in osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 117 of file OSGAttachmentContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtr::operator*().

00118 {
00119 #if 0
00120     return *((AttachmentContainer *) getElemP(Thread::getAspect()));
00121 #else
00122     return static_cast<AttachmentContainer &>(Inherited::operator *());
00123 #endif
00124 }

AttachmentContainer * osg::AttachmentContainerPtr::getCPtr ( void   )  [inline, inherited]

Reimplemented from osg::FieldContainerPtr.

Reimplemented in osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 128 of file OSGAttachmentContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtr::getCPtr(), and osg::FieldContainerPtrBase::getElemP().

Referenced by osg::NodePtr::getCPtr().

00129 {
00130 #if 0
00131     return (AttachmentContainer *) getElemP(Thread::getAspect());
00132 #else
00133     return static_cast<AttachmentContainer *>(Inherited::getCPtr());
00134 #endif
00135 }

AttachmentContainer * osg::AttachmentContainerPtr::getCPtr ( void   )  const [inline, inherited]

Reimplemented from osg::FieldContainerPtr.

Reimplemented in osg::CNodePtr, osg::NodePtr, and osg::FCPtr< MaterialDrawablePtr, Geometry >.

Definition at line 138 of file OSGAttachmentContainerPtrImpl.inl.

References osg::PThreadBase::getAspect(), osg::FieldContainerPtr::getCPtr(), and osg::FieldContainerPtrBase::getElemP().

00139 {
00140 #if 0
00141     return (AttachmentContainer *) getElemP(Thread::getAspect());
00142 #else
00143     return static_cast<AttachmentContainer *>(Inherited::getCPtr());
00144 #endif
00145 }

osg::FieldContainerPtr::OSG_PROPERTY_DECL ( Pointer   )  [inherited]
void osg::FieldContainerPtr::beginEdit ( BitVector  whichField,
UInt32  origin 
) const [inline, protected, inherited]

Definition at line 715 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerFactory::checkThrowInvalidPointerException(), FFATAL, osg::NullFC, and osg::FieldContainerFactory::the().

Referenced by osg::beginEditCP().

00717 {
00718 #ifdef OSG_INVALID_PTR_CHECK
00719     if(_id != 0 &&
00720        _id < FieldContainerFactory::the()->getFieldContainerStore()->size() &&
00721        FieldContainerFactory::the()->getContainer(_id) == NullFC)
00722     {
00723         FFATAL(("FieldContainerPtr::beginEdit: invalid pointer!\n"));
00724         FieldContainerFactory::the()->checkThrowInvalidPointerException();
00725         return;
00726     }
00727 #endif
00728 }

void osg::FieldContainerPtr::endEdit ( BitVector  whichField,
UInt32  origin 
) const [inline, protected, inherited]

Definition at line 745 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtr::changed(), osg::FieldContainerFactory::checkThrowInvalidPointerException(), osg::FieldContainerPtr::endEditNotChanged(), FFATAL, osg::NullFC, and osg::FieldContainerFactory::the().

Referenced by osg::endEditCP().

00746 {
00747 #ifdef OSG_INVALID_PTR_CHECK
00748     if(_id != 0 &&
00749        _id < FieldContainerFactory::the()->getFieldContainerStore()->size() &&
00750        FieldContainerFactory::the()->getContainer(_id) == NullFC)
00751     {
00752         FFATAL(("FieldContainerPtr::endEdit: invalid pointer!\n"));
00753         FieldContainerFactory::the()->checkThrowInvalidPointerException();
00754         return;
00755     }
00756 #endif
00757 
00758     endEditNotChanged(whichField, origin);
00759     changed(whichField, origin);
00760 }

void osg::FieldContainerPtr::changed ( BitVector  whichField,
UInt32  origin 
) const [inline, protected, inherited]

Definition at line 739 of file OSGFieldContainerPtrImpl.inl.

Referenced by osg::Image::changed(), osg::changedCP(), and osg::FieldContainerPtr::endEdit().

00740 {
00741     (*this)->changed(whichField, origin);
00742 }

void osg::FieldContainerPtr::endEditNotChanged ( BitVector  whichField,
UInt32  origin 
) const [inline, protected, inherited]

Definition at line 732 of file OSGFieldContainerPtrImpl.inl.

References osg::ChangeList::addChanged(), and osg::PThreadBase::getCurrentChangeList().

Referenced by osg::FieldContainerPtr::endEdit(), and osg::endEditNotChangedCP().

00734 {
00735     Thread::getCurrentChangeList()->addChanged(*this, whichField);
00736 }

void osg::FieldContainerPtrBase::setParentFieldPos ( UInt16  uiParentEPos  )  [inline, inherited]
UInt16 osg::FieldContainerPtrBase::getParentFieldPos ( void   )  const [inline, inherited]

Definition at line 236 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_uiParentEPos.

00237 {
00238     return _uiParentEPos;
00239 }

Int32 osg::FieldContainerPtrBase::getRefCount ( void   )  const [inline, inherited]

Definition at line 245 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP, and osg::FieldContainerPtrBase::getRefCountP().

00246 {
00247     if(_storeP == NULL)
00248         return 0;
00249         
00250     return (*getRefCountP());
00251 }

UInt32 osg::FieldContainerPtrBase::getFieldContainerId ( void   )  const [inline, inherited]

Definition at line 254 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::getIdP(), and osg::FieldContainerFactory::the().

Referenced by osg::ChangeList::addAddRefd(), osg::ChangeList::addChanged(), osg::ChangeList::addSubRefd(), and osg::FieldContainerFactory::unregisterFieldContainer().

00255 {
00256 #ifndef OSG_INVALID_PTR_CHECK
00257     return (*getIdP());
00258 #else
00259     if(_id != 0 && _id < FieldContainerFactory::the()->getFieldContainerStore()->size())
00260         return _id;
00261 
00262     return (*getIdP());
00263 #endif
00264 }

UInt16 osg::FieldContainerPtrBase::getContainerSize ( void   )  const [inline, inherited]

Definition at line 267 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_containerSize.

Referenced by osg::FieldContainerPtrBase::executeSync().

00268 {
00269     return _containerSize;
00270 }

FieldContainer * osg::FieldContainerPtrBase::getBaseCPtr ( void   )  const [inline, inherited]
FieldContainer * osg::FieldContainerPtrBase::getAspectCPtr ( UInt32  uiAspectId  )  const [inline, inherited]
bool osg::FieldContainerPtrBase::operator< ( const NullFieldContainerPtr  )  const [inline, inherited]

Definition at line 325 of file OSGFieldContainerPtrImpl.inl.

00327 {
00328     return false;
00329 }

bool osg::FieldContainerPtrBase::operator< ( const FieldContainerPtrBase other  )  const [inline, inherited]

Definition at line 347 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00349 {
00350     return _storeP < other._storeP;
00351 }

bool osg::FieldContainerPtrBase::operator== ( const NullFieldContainerPtr other  )  const [inline, inherited]

Definition at line 332 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00334 {
00335     return _storeP == NULL;
00336 }

bool osg::FieldContainerPtrBase::operator== ( const FieldContainerPtrBase other  )  const [inline, inherited]

Definition at line 354 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00356 {
00357     return _storeP == other._storeP;
00358 }

bool osg::FieldContainerPtrBase::operator!= ( const NullFieldContainerPtr other  )  const [inline, inherited]

Definition at line 339 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00341 {
00342     return _storeP != NULL;
00343 }

bool osg::FieldContainerPtrBase::operator!= ( const FieldContainerPtrBase other  )  const [inline, inherited]

Definition at line 361 of file OSGFieldContainerPtrImpl.inl.

00363 {
00364     return ! (*this == other);
00365 }

bool osg::FieldContainerPtrBase::operator! ( void   )  const [inline, inherited]

Definition at line 368 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00369 {
00370     return _storeP == NULL;
00371 }

osg::FieldContainerPtrBase::operator FieldContainerPtrBase::unspecified_bool_type (  )  const [inline, inherited]

Definition at line 374 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00375 {
00376     return !*this ? 0 : &FieldContainerPtrBase::_storeP;
00377 }

void FieldContainerPtrBase::dump ( UInt32  uiIndent = 0,
const BitVector  bvFlags = 0 
) const [inherited]

Definition at line 82 of file OSGFieldContainerPtr.cpp.

References osg::FieldContainerPtrBase::_storeP, osg::FieldContainerPtrBase::getFirstElemP(), osg::FieldContainerPtrBase::getIdP(), osg::FieldContainerPtrBase::getRefCountP(), osg::indentLog(), PLOG, and osg::FCDumpFlags::RefCount.

Referenced by osg::blendImage(), osg::DVRVolumeTexture::changed(), osg::createComposedImage(), osg::SimpleMaterial::dump(), osg::Geometry::dump(), osg::DVRVolume::dump(), and osg::DVRLookupTable::dump().

00084 {
00085     if(this != NULL && _storeP != NULL)
00086     {
00087         indentLog(uiIndent, PLOG);
00088         PLOG << "FCPtr Dump :" << std::endl;
00089 
00090         uiIndent += 4;
00091 
00092         indentLog(uiIndent, PLOG);
00093         PLOG << "Id       : " << std::dec << (*(getIdP())) << std::endl;
00094 
00095         indentLog(uiIndent, PLOG);
00096         PLOG << "Storage  : " 
00097              << std::hex << reinterpret_cast<UInt32 *>(getFirstElemP()) 
00098              << std::endl;
00099 
00100         if(bvFlags & FCDumpFlags::RefCount)
00101         {
00102              indentLog(uiIndent, PLOG);
00103              PLOG << "RefCount : " << *(getRefCountP()) << std::endl;
00104         }
00105 
00106 //        dumpContent();
00107     }
00108     else
00109     {
00110         PLOG << "FCPtr Dump : (NULL)" << std::endl;
00111     }
00112 }

bool FieldContainerPtrBase::initialize ( void   )  [static, protected, inherited]

Definition at line 117 of file OSGFieldContainerPtr.cpp.

References osg::FieldContainerPtrBase::_pRefCountLock, osg::addRefP(), osg::ThreadManager::getLockPool(), SINFO, and osg::ThreadManager::the().

Referenced by osg::DVRVolume::draw(), osg::FieldContainerFactory::FieldContainerFactory(), and osg::DVRVolume::initializeClipObjects().

00118 {
00119     bool           returnValue = false;
00120     ThreadManager *pManager    = ThreadManager::the();
00121 
00122     SINFO << "OSGFieldContainerPtrBase init" << std::endl;
00123 
00124     if(pManager != NULL)
00125     {
00126         _pRefCountLock = pManager->getLockPool("DSPTRRefCountLockPool");
00127 
00128         addRefP(_pRefCountLock);
00129 
00130         if(_pRefCountLock != NULL)
00131             returnValue = true;
00132     }
00133 
00134     return returnValue;
00135 }

bool FieldContainerPtrBase::terminate ( void   )  [static, protected, inherited]

Definition at line 137 of file OSGFieldContainerPtr.cpp.

References osg::FieldContainerPtrBase::_pRefCountLock, SINFO, osg::subRefP(), and osg::ThreadManager::the().

Referenced by osg::FieldContainerFactory::FieldContainerFactory().

00138 {
00139     ThreadManager *pManager = ThreadManager::the();
00140 
00141     SINFO << "OSGFieldContainerPtrBase terminate" << std::endl;
00142 
00143     if(pManager == NULL)
00144         return false;
00145 
00146     subRefP(_pRefCountLock);
00147 
00148     return true;
00149 }

void osg::FieldContainerPtrBase::executeSync ( UInt32  uiFromAspect,
UInt32  uiToAspect,
BitVector  whichField 
) [inline, protected, inherited]

Definition at line 1423 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainer::changed(), osg::FieldContainer::executeSync(), osg::FieldContainerPtrBase::getContainerSize(), osg::FieldContainerPtrBase::getElemP(), osg::ChangedOrigin::Sync, osg::SyncInfo::syncMode, osg::SyncInfo::uiCopyOffset, and osg::SyncInfo::uiSyncInfo.

Referenced by osg::ChangeList::apply(), and osg::ChangeList::applyTo().

01426 {
01427 #if defined(OSG_FIXED_MFIELDSYNC)
01428     SyncInfo sInfo;
01429 
01430     sInfo.syncMode     = 0x0000;
01431     sInfo.uiSyncInfo   = (uiFromAspect << 24) | (uiToAspect << 16);
01432     sInfo.uiCopyOffset = getContainerSize();
01433 #endif
01434 
01435     FieldContainer *pTo = 
01436         (reinterpret_cast<FieldContainer *>(getElemP(uiToAspect)));
01437     
01438 #if !defined(OSG_FIXED_MFIELDSYNC)
01439     pTo->executeSync(
01440         *(reinterpret_cast<FieldContainer *>(getElemP(uiFromAspect))), 
01441         whichField);
01442 #else
01443     pTo->executeSync(*((FieldContainer *) getElemP(uiFromAspect)), 
01444                      whichField,
01445                      sInfo);
01446 #endif
01447 
01448     pTo->changed(whichField, ChangedOrigin::Sync);
01449 }

Int32 * osg::FieldContainerPtrBase::getRefCountP ( void   )  [inline, protected, inherited]
Int32 * osg::FieldContainerPtrBase::getRefCountP ( void   )  const [inline, protected, inherited]

Definition at line 76 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00077 {
00078     return reinterpret_cast<Int32 *>(_storeP - sizeof(Int32) - sizeof(UInt32));
00079 }

UInt32 * osg::FieldContainerPtrBase::getIdP ( void   )  [inline, protected, inherited]
UInt32 * osg::FieldContainerPtrBase::getIdP ( void   )  const [inline, protected, inherited]

Definition at line 88 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00089 {
00090     return reinterpret_cast<UInt32 *>(_storeP - sizeof(UInt32));
00091 }

UInt8 * osg::FieldContainerPtrBase::getFirstElemP ( void   )  [inline, protected, inherited]
UInt8 * osg::FieldContainerPtrBase::getFirstElemP ( void   )  const [inline, protected, inherited]

Definition at line 112 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_storeP.

00113 {
00114     return _storeP;
00115 }

UInt8 * osg::FieldContainerPtrBase::getElemP ( UInt32  uiElemNum  )  [inline, protected, inherited]
UInt8 * osg::FieldContainerPtrBase::getElemP ( UInt32  uiElemNum  )  const [inline, protected, inherited]

Definition at line 100 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_containerSize, and osg::FieldContainerPtrBase::_storeP.

00101 {
00102     return (_storeP + (_containerSize * uiElemNum));
00103 }

Int32 osg::FieldContainerPtrBase::getRefCountOff ( void   )  const [inline, protected, inherited]

Definition at line 121 of file OSGFieldContainerPtrImpl.inl.

Referenced by osg::FieldContainerPtrBase::deleteContainers().

00122 {
00123     return -Int32((sizeof(Int32) + sizeof(UInt32)));
00124 }

Int32 osg::FieldContainerPtrBase::getIdOff ( void   )  const [inline, protected, inherited]

Definition at line 127 of file OSGFieldContainerPtrImpl.inl.

00128 {
00129     return -Int32(sizeof(UInt32));
00130 }

Int32 osg::FieldContainerPtrBase::getFirstElemOff ( void   )  const [inline, protected, inherited]

Definition at line 133 of file OSGFieldContainerPtrImpl.inl.

00134 {
00135     return 0;
00136 }

Int32 osg::FieldContainerPtrBase::getElemOff ( UInt32  uiElemNum  )  const [inline, protected, inherited]

Definition at line 139 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_containerSize.

Referenced by osg::FieldContainerPtrBase::FieldContainerPtrBase().

00140 {
00141     return (_containerSize * uiElemNum);
00142 }

void osg::FieldContainerPtrBase::addRef ( void   )  const [inline, protected, inherited]

Definition at line 481 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_pRefCountLock, osg::FieldContainerPtrBase::_storeP, osg::ChangeList::addAddRefd(), osg::LockPool::aquire(), osg::FieldContainerFactory::checkThrowInvalidPointerException(), FFATAL, osg::PThreadBase::getCurrentChangeList(), osg::FieldContainerPtrBase::getRefCountP(), osg::NullFC, osg::LockPool::release(), and osg::FieldContainerFactory::the().

Referenced by osg::addRefCP(), and osg::setRefdCP().

00482 {
00483 #ifdef OSG_INVALID_PTR_CHECK
00484     if(_id != 0 &&
00485        _id < FieldContainerFactory::the()->getFieldContainerStore()->size() &&
00486        FieldContainerFactory::the()->getContainer(_id) == NullFC)
00487     {
00488         FFATAL(("FieldContainerPtr::addRef: invalid pointer!\n"));
00489         FieldContainerFactory::the()->checkThrowInvalidPointerException();
00490         return;
00491     }
00492 #endif
00493 
00494     _pRefCountLock->aquire(_storeP);
00495 
00496     (*getRefCountP())++;
00497 
00498     _pRefCountLock->release(_storeP);
00499 
00500     Thread::getCurrentChangeList()->addAddRefd(
00501         *(static_cast<const FieldContainerPtr *>(this)));
00502 }

void osg::FieldContainerPtrBase::subRef ( void   )  const [inline, protected, inherited]

Definition at line 124 of file OSGFieldContainerPtrDepImpl.inl.

References osg::FieldContainerPtrBase::_pRefCountLock, osg::FieldContainerPtrBase::_storeP, osg::ChangeList::addSubRefd(), osg::LockPool::aquire(), osg::FieldContainerFactory::checkThrowInvalidPointerException(), osg::FieldContainerPtrBase::deleteContainers(), FFATAL, osg::PThreadBase::getCurrentChangeList(), osg::FieldContainerPtrBase::getRefCountP(), osg::NullFC, osg::LockPool::release(), and osg::FieldContainerFactory::the().

Referenced by osg::clearRefCP(), osg::setRefdCP(), and osg::subRefCP().

00125 {
00126 #ifdef OSG_INVALID_PTR_CHECK
00127     if(_id != 0 &&
00128        _id < FieldContainerFactory::the()->getFieldContainerStore()->size() &&
00129        FieldContainerFactory::the()->getContainer(_id) == NullFC)
00130     {
00131         FFATAL(("FieldContainerPtr::subRef: invalid pointer!\n"));
00132         FieldContainerFactory::the()->checkThrowInvalidPointerException();
00133         return;
00134     }
00135 #endif
00136 
00137 #if !defined(OSG_FIXED_MFIELDSYNC)
00138     _pRefCountLock->aquire(_storeP);
00139 
00140     (*getRefCountP())--;
00141 
00142     if((*getRefCountP()) <= 0)
00143     {
00144         _pRefCountLock->release(_storeP);
00145 
00146         deleteContainers();
00147         
00148          // Clean up a little.
00149         const_cast<FieldContainerPtrBase*>(this)->_storeP = NULL;
00150     }
00151     else
00152     {
00153         _pRefCountLock->release(_storeP);
00154 
00155         Thread::getCurrentChangeList()->addSubRefd(
00156             *(static_cast<const FieldContainerPtr *>(this)));
00157     }
00158 #else
00159     Thread::getCurrentChangeList()->addSubRefd(
00160         *(static_cast<const FieldContainerPtr *>(this)));
00161 #endif
00162 }

void osg::FieldContainerPtrBase::deleteContainers ( void   )  const [inline, protected, inherited]

Definition at line 78 of file OSGFieldContainerPtrDepImpl.inl.

References osg::FieldContainerPtrBase::_containerSize, osg::FieldContainerPtrBase::_storeP, osg::ChangeList::addDestroyed(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::FieldContainerPtrBase::getFirstElemP(), osg::FieldContainerPtrBase::getIdP(), osg::ThreadManager::getNumAspects(), osg::FieldContainerPtrBase::getRefCountOff(), and osg::FieldContainerFactory::the().

Referenced by osg::FieldContainerPtrBase::subRef().

00079 {
00080 //    dump(0, FCDumpFlags::RefCount);
00081 
00082     Thread::getCurrentChangeList()->addDestroyed(*getIdP());
00083     
00084     if (FieldContainerFactory::the()->unregisterFieldContainer(
00085             *(static_cast<const FieldContainerPtr *>(this))))
00086     {
00087         return;
00088     }
00089     
00090     UInt8 *pTmp = getFirstElemP();
00091     
00092     (reinterpret_cast<FieldContainer *>(pTmp))->onDestroy();
00093     
00094 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00095 
00096     fprintf(stderr, "GV_MEM_FC_DBG : (%u) d (%p|%u)\n", 
00097             Thread::getAspect(),
00098             pTmp,
00099 //            ((FieldContainer *) pTmp)->getType().getCName(),
00100             ((FieldContainer *) pTmp)->getType().getId());
00101 #endif
00102  
00103 #if defined(OSG_FIXED_MFIELDSYNC)
00104     ((FieldContainer *) pTmp)->~FieldContainer();
00105 #endif
00106    
00107     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00108     {
00109 #if defined(OSG_FIXED_MFIELDSYNC)
00110         ((FieldContainer *) pTmp)->onDestroyAspect(*(getIdP()), i);
00111 #endif
00112 
00113 #if !defined(OSG_FIXED_MFIELDSYNC)
00114         (reinterpret_cast<FieldContainer *>(pTmp))->~FieldContainer();
00115 #endif
00116 
00117         pTmp += _containerSize;
00118     }
00119     
00120     operator delete(_storeP + getRefCountOff());
00121 }

void osg::FieldContainerPtrBase::setNull ( void   )  [inline, protected, inherited]

Definition at line 505 of file OSGFieldContainerPtrImpl.inl.

References osg::FieldContainerPtrBase::_containerSize, osg::FieldContainerPtrBase::_storeP, osg::FieldContainerPtrBase::_uiParentEPos, osg::FieldContainerPtrBase::getFirstElemP(), and osg::FieldContainerPtrBase::InvalidParentEPos.

Referenced by osg::ConstFieldContainerPtr::operator=(), and osg::FieldContainerPtr::operator=().

00506 {
00507     _containerSize = 0;
00508     _uiParentEPos  = InvalidParentEPos;
00509     _storeP        = NULL;
00510 
00511 #ifdef OSG_DEBUG_FCPTR
00512     _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP());
00513 #endif
00514 
00515 #ifdef OSG_INVALID_PTR_CHECK
00516     _id = 0;
00517 #endif
00518 }


Member Data Documentation

Reimplemented from osg::ShaderParameterPtr.

Definition at line 7811 of file dummyClasses.dox.

const UInt16 FieldContainerPtrBase::InvalidParentEPos = 0xFFFF [static, inherited]
UInt8* osg::FieldContainerPtrBase::_storeP [protected, inherited]

The documentation for this class was generated from the following file:

Generated on 8 Feb 2010 for OpenSG by  doxygen 1.6.1