
Public Types | |
| typedef Attachment | StoredObjectType |
| typedef AttachmentPtr | ObjectType |
| typedef FieldContainerPtr | Inherited |
| typedef UInt8 *FieldContainerPtrBase::* | unspecified_bool_type |
Public Member Functions | |
| OSG_PROPERTY_DECL (Pointer) | |
Container Access | |
| Attachment * | operator-> (void) |
| Attachment * | operator-> (void) const |
| Attachment & | operator* (void) |
| Attachment & | operator* (void) const |
| Attachment * | getCPtr (void) |
| Attachment * | getCPtr (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 | |
| FieldContainer * | getBaseCPtr (void) const |
| FieldContainer * | getAspectCPtr (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 AttachmentPtr | 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 | |
| Int32 * | getRefCountP (void) |
| Int32 * | getRefCountP (void) const |
| UInt32 * | getIdP (void) |
| UInt32 * | getIdP (void) const |
| UInt8 * | getFirstElemP (void) |
| UInt8 * | getFirstElemP (void) const |
| UInt8 * | getElemP (UInt32 uiElemNum) |
| UInt8 * | getElemP (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 | |
| BlendChunk * | _val |
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 6182 of file dummyClasses.dox.
typedef Attachment osg::AttachmentPtr::StoredObjectType [inherited] |
typedef AttachmentPtr osg::AttachmentPtr::ObjectType [inherited] |
typedef FieldContainerPtr osg::AttachmentPtr::Inherited [inherited] |
typedef UInt8* FieldContainerPtrBase::* osg::FieldContainerPtrBase::unspecified_bool_type [inherited] |
Definition at line 99 of file OSGFieldContainerPtrImpl.h.
| AttachmentPtr osg::AttachmentPtr::dcast | ( | const InTypeT | oIn | ) | [inline, static, inherited] |
Definition at line 51 of file OSGAttachmentPtrDepImpl.inl.
References osg::AttachmentPtr::AttachmentPtr().
Referenced by osg::SharePtrGraphOp::addAttachmentParent(), osg::Surface::buildSurface(), osg::SharePtrGraphOp::clearAttachmentParent(), osg::SharePtrGraphOp::compareFCs(), osg::VertexProgramChunkBase::create(), osg::TwoSidedLightingChunkBase::create(), osg::TransformChunkBase::create(), osg::TextureTransformChunkBase::create(), osg::TextureChunkBase::create(), osg::TexGenChunkBase::create(), osg::StringAttributeMapBase::create(), osg::StencilChunkBase::create(), osg::SHLParameterChunkBase::create(), osg::SHLChunkBase::create(), osg::SClipPlaneChunkBase::create(), osg::RenderOptionsBase::create(), osg::RegisterCombinersChunkBase::create(), osg::PolygonChunkBase::create(), osg::PointChunkBase::create(), osg::MaterialChunkBase::create(), osg::LogicOpChunkBase::create(), osg::LineChunkBase::create(), osg::LightModelChunkBase::create(), osg::LightChunkBase::create(), osg::FragmentProgramChunkBase::create(), osg::FCPtrAttributeMapBase::create(), osg::FatBorderChunkBase::create(), osg::DVRVolumeTextureBase::create(), osg::DVRLookupTableBase::create(), osg::DVRIsoSurfaceBase::create(), osg::DVRClipObjectsBase::create(), osg::DepthChunkBase::create(), osg::CubeTextureChunkBase::create(), osg::ColorMaskChunkBase::create(), osg::ClipPlaneChunkBase::create(), osg::BlendChunkBase::create(), osg::FieldContainerType::createAttachment(), osg::PhongMaterial::createFragmentProgram(), osg::deepClone(), osg::deepCloneAttachments(), osg::VRMLPixelTextureDesc::endNode(), osg::VRMLImageTextureDesc::endNode(), osg::VRMLTextureTransformDesc::endNode(), osg::VRMLAppearanceDesc::endNode(), osg::fcptrAttributeMap(), modifyMaterial(), osg::RenderAction::RenderAction(), osg::OSGLoader::setFieldContainerValue(), osg::setTestCubeImages(), osg::stringAttributeMap(), and osg::VRMLWriteAction::writeMaterial().
00052 { 00053 return AttachmentPtr( 00054 (dynamic_cast<const Attachment *>(oIn.getCPtr())), 00055 oIn.getContainerSize(), 00056 oIn.getParentFieldPos()); 00057 }
| Attachment * osg::AttachmentPtr::operator-> | ( | void | ) | [inline, inherited] |
Reimplemented from osg::FieldContainerPtr.
Definition at line 85 of file OSGAttachmentPtrImpl.inl.
References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtr::operator->().
00086 { 00087 #if 0 00088 return (Attachment *) getElemP(Thread::getAspect()); 00089 #else 00090 return (Attachment *) Inherited::operator ->(); 00091 #endif 00092 }
| Attachment * osg::AttachmentPtr::operator-> | ( | void | ) | const [inline, inherited] |
Reimplemented from osg::FieldContainerPtr.
Definition at line 95 of file OSGAttachmentPtrImpl.inl.
References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::FieldContainerPtr::operator->().
00096 { 00097 #if 0 00098 return (Attachment *) getElemP(Thread::getAspect()); 00099 #else 00100 return (Attachment *) Inherited::operator ->(); 00101 #endif 00102 }
| Attachment & osg::AttachmentPtr::operator* | ( | void | ) | [inline, inherited] |
Reimplemented from osg::FieldContainerPtr.
Definition at line 105 of file OSGAttachmentPtrImpl.inl.
References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::operator*().
00106 { 00107 #if 0 00108 return *((Attachment *) getElemP(Thread::getAspect())); 00109 #else 00110 return (Attachment &) Inherited::operator *(); 00111 #endif 00112 }
| Attachment & osg::AttachmentPtr::operator* | ( | void | ) | const [inline, inherited] |
Reimplemented from osg::FieldContainerPtr.
Definition at line 115 of file OSGAttachmentPtrImpl.inl.
References osg::PThreadBase::getAspect(), osg::FieldContainerPtrBase::getElemP(), and osg::operator*().
00116 { 00117 #if 0 00118 return *((Attachment *) getElemP(Thread::getAspect())); 00119 #else 00120 return (Attachment &) Inherited::operator *(); 00121 #endif 00122 }
| Attachment * osg::AttachmentPtr::getCPtr | ( | void | ) | [inline, inherited] |
Reimplemented from osg::FieldContainerPtr.
Definition at line 125 of file OSGAttachmentPtrImpl.inl.
References osg::PThreadBase::getAspect(), osg::getCPtr(), and osg::FieldContainerPtrBase::getElemP().
Referenced by osg::State::changeFrom(), osg::SkyBackground::drawFace(), osg::RenderAction::dropClipPlane(), and osg::RenderAction::dropLight().
00126 { 00127 #if 0 00128 return (Attachment *) getElemP(Thread::getAspect()); 00129 #else 00130 return (Attachment *) Inherited::getCPtr(); 00131 #endif 00132 }
| Attachment * osg::AttachmentPtr::getCPtr | ( | void | ) | const [inline, inherited] |
Reimplemented from osg::FieldContainerPtr.
Definition at line 135 of file OSGAttachmentPtrImpl.inl.
References osg::PThreadBase::getAspect(), osg::getCPtr(), and osg::FieldContainerPtrBase::getElemP().
00136 { 00137 #if 0 00138 return (Attachment *) getElemP(Thread::getAspect()); 00139 #else 00140 return (Attachment *) Inherited::getCPtr(); 00141 #endif 00142 }
| osg::FieldContainerPtr::OSG_PROPERTY_DECL | ( | Pointer | ) | [inherited] |
| void osg::FieldContainerPtr::beginEdit | ( | BitVector | whichField, | |
| UInt32 | origin | |||
| ) | const [inline, protected, inherited] |
| void osg::FieldContainerPtr::endEdit | ( | BitVector | whichField, | |
| UInt32 | origin | |||
| ) | const [inline, protected, inherited] |
Definition at line 584 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtr::changed(), and osg::FieldContainerPtr::endEditNotChanged().
Referenced by osg::endEditCP().
00585 { 00586 endEditNotChanged(whichField, origin); 00587 changed(whichField, origin); 00588 }
| void osg::FieldContainerPtr::changed | ( | BitVector | whichField, | |
| UInt32 | origin | |||
| ) | const [inline, protected, inherited] |
Definition at line 578 of file OSGFieldContainerPtrImpl.inl.
Referenced by osg::changedCP(), and osg::FieldContainerPtr::endEdit().
| void osg::FieldContainerPtr::endEditNotChanged | ( | BitVector | whichField, | |
| UInt32 | origin | |||
| ) | const [inline, protected, inherited] |
Definition at line 571 of file OSGFieldContainerPtrImpl.inl.
References osg::ChangeList::addChanged(), and osg::PThreadBase::getCurrentChangeList().
Referenced by osg::FieldContainerPtr::endEdit(), and osg::endEditNotChangedCP().
00573 { 00574 Thread::getCurrentChangeList()->addChanged(*this, whichField); 00575 }
| void osg::FieldContainerPtrBase::setParentFieldPos | ( | UInt16 | uiParentEPos | ) | [inline, inherited] |
Definition at line 201 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_uiParentEPos.
Referenced by osg::SharePtrGraphOp::addAttachmentParent(), osg::SharePtrGraphOp::clearAttachmentParent(), osg::SharePtrGraphOp::compareFCs(), osg::Particles::setColors(), osg::Geometry::setColors(), osg::Surface::setControlPoints(), osg::Node::setCore(), osg::Geometry::setIndices(), osg::Geometry::setLengths(), osg::Particles::setNormals(), osg::Geometry::setNormals(), osg::Particles::setPositions(), osg::Geometry::setPositions(), osg::Geometry::setSecondaryColors(), osg::Particles::setSecPositions(), osg::Geometry::setTexCoords(), osg::Geometry::setTexCoords1(), osg::Geometry::setTexCoords2(), osg::Geometry::setTexCoords3(), osg::Geometry::setTexCoords4(), osg::Geometry::setTexCoords5(), osg::Geometry::setTexCoords6(), osg::Geometry::setTexCoords7(), osg::Surface::setTextureControlPoints(), and osg::Geometry::setTypes().
00202 { 00203 _uiParentEPos = uiParentEPos; 00204 }
| UInt16 osg::FieldContainerPtrBase::getParentFieldPos | ( | void | ) | const [inline, inherited] |
Definition at line 207 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_uiParentEPos.
00208 { 00209 return _uiParentEPos; 00210 }
| Int32 osg::FieldContainerPtrBase::getRefCount | ( | void | ) | const [inline, inherited] |
Definition at line 216 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP, and osg::FieldContainerPtrBase::getRefCountP().
Referenced by osg::RemoteAspect::createCurrentStateChangeList().
00217 { 00218 if(_storeP == NULL) 00219 return 0; 00220 00221 return (*getRefCountP()); 00222 }
| UInt32 osg::FieldContainerPtrBase::getFieldContainerId | ( | void | ) | const [inline, inherited] |
Definition at line 225 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::getIdP().
Referenced by osg::RemoteAspect::_defaultChangedFunction(), osg::RemoteAspect::_defaultCreatedFunction(), osg::RemoteAspect::_defaultDestroyedFunction(), osg::ChangeList::addAddRefd(), osg::ChangeList::addChanged(), osg::VRMLWriteAction::addContainerUse(), osg::VRMLWriteAction::addNodeUse(), osg::ChangeList::addSubRefd(), osg::BINWriter::addToIdMap(), osg::osg::FieldTraitsRecurseMapper< FieldContainerPtr, false >::copyToBin(), osg::RemoteAspect::createCurrentStateChangeList(), osg::BINLoader::createFieldContainers(), osg::BINWriter::doIndexFC(), osg::NodeCore::dump(), osg::Node::dump(), osg::Geometry::dump(), osg::Attachment::dump(), osg::VRMLWriteAction::getInfo(), osg::ClusterWindow::getNetwork(), osg::RenderAction::getOcclusionQuery(), osg::RemoteAspect::receiveSync(), osg::RemoteAspect::sendSync(), osg::OSGWriter::FCInfoHelper::setName(), osg::RenderAction::setOcclusionQuery(), osg::RenderAction::stop(), osg::FieldContainerFactory::unregisterFieldContainer(), and osg::TileLoadBalancer::updateSubtree().
00226 { 00227 return (*getIdP()); 00228 }
| UInt16 osg::FieldContainerPtrBase::getContainerSize | ( | void | ) | const [inline, inherited] |
Definition at line 231 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_containerSize.
Referenced by osg::FieldContainerPtrBase::executeSync().
00232 { 00233 return _containerSize; 00234 }
| FieldContainer * osg::FieldContainerPtrBase::getBaseCPtr | ( | void | ) | const [inline, inherited] |
Definition at line 237 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::getFirstElemP().
Referenced by osg::osg::FieldTraitsRecurseMapper< FieldContainerPtr, false >::putToString().
00238 { 00239 return reinterpret_cast<FieldContainer *>(getFirstElemP()); 00240 }
| FieldContainer * osg::FieldContainerPtrBase::getAspectCPtr | ( | UInt32 | uiAspectId | ) | const [inline, inherited] |
Definition at line 243 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::getElemP().
Referenced by osg::QFCItem::expand(), osg::QFieldViewBase::getFieldPtr(), osg::QFieldEditorBase::getFieldPtr(), osg::getParentsField(), and osg::QFCItem::setup().
00244 { 00245 return reinterpret_cast<FieldContainer *>(getElemP(uiAspectId)); 00246 }
| bool osg::FieldContainerPtrBase::operator< | ( | const NullFieldContainerPtr & | ) | const [inline, inherited] |
| bool osg::FieldContainerPtrBase::operator< | ( | const FieldContainerPtrBase & | other | ) | const [inline, inherited] |
Definition at line 303 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
00305 { 00306 return _storeP < other._storeP; 00307 }
| bool osg::FieldContainerPtrBase::operator== | ( | const NullFieldContainerPtr & | other | ) | const [inline, inherited] |
Definition at line 288 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
00290 { 00291 return _storeP == NULL; 00292 }
| bool osg::FieldContainerPtrBase::operator== | ( | const FieldContainerPtrBase & | other | ) | const [inline, inherited] |
Definition at line 310 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
00312 { 00313 return _storeP == other._storeP; 00314 }
| bool osg::FieldContainerPtrBase::operator!= | ( | const NullFieldContainerPtr & | other | ) | const [inline, inherited] |
Definition at line 295 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
00297 { 00298 return _storeP != NULL; 00299 }
| bool osg::FieldContainerPtrBase::operator!= | ( | const FieldContainerPtrBase & | other | ) | const [inline, inherited] |
| bool osg::FieldContainerPtrBase::operator! | ( | void | ) | const [inline, inherited] |
Definition at line 324 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
00325 { 00326 return _storeP == NULL; 00327 }
| osg::FieldContainerPtrBase::operator FieldContainerPtrBase::unspecified_bool_type | ( | ) | const [inline, inherited] |
Definition at line 330 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
00331 { 00332 return !*this ? 0 : &FieldContainerPtrBase::_storeP; 00333 }
| 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 << (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 1149 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().
01152 { 01153 #if defined(OSG_FIXED_MFIELDSYNC) 01154 SyncInfo sInfo; 01155 01156 sInfo.syncMode = 0x0000; 01157 sInfo.uiSyncInfo = (uiFromAspect << 24) | (uiToAspect << 16); 01158 sInfo.uiCopyOffset = getContainerSize(); 01159 #endif 01160 01161 FieldContainer *pTo = ((FieldContainer *) getElemP(uiToAspect)); 01162 01163 #if !defined(OSG_FIXED_MFIELDSYNC) 01164 pTo->executeSync(*((FieldContainer *) getElemP(uiFromAspect)), 01165 whichField); 01166 #else 01167 pTo->executeSync(*((FieldContainer *) getElemP(uiFromAspect)), 01168 whichField, 01169 sInfo); 01170 #endif 01171 01172 pTo->changed(whichField, ChangedOrigin::Sync); 01173 }
| Int32 * osg::FieldContainerPtrBase::getRefCountP | ( | void | ) | [inline, protected, inherited] |
Definition at line 66 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
Referenced by osg::FieldContainerPtrBase::addRef(), osg::FieldContainerPtrBase::dump(), osg::FieldContainerPtrBase::getRefCount(), and osg::FieldContainerPtrBase::subRef().
| Int32 * osg::FieldContainerPtrBase::getRefCountP | ( | void | ) | const [inline, protected, inherited] |
Definition at line 72 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
| UInt32 * osg::FieldContainerPtrBase::getIdP | ( | void | ) | [inline, protected, inherited] |
Definition at line 78 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
Referenced by osg::FieldContainerPtrBase::deleteContainers(), osg::FieldContainerPtrBase::dump(), and osg::FieldContainerPtrBase::getFieldContainerId().
| UInt32 * osg::FieldContainerPtrBase::getIdP | ( | void | ) | const [inline, protected, inherited] |
Definition at line 84 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
| UInt8 * osg::FieldContainerPtrBase::getFirstElemP | ( | void | ) | [inline, protected, inherited] |
Definition at line 102 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
Referenced by osg::FieldContainerPtrBase::deleteContainers(), osg::FieldContainerPtrBase::dump(), osg::FieldContainerPtrBase::FieldContainerPtrBase(), osg::FieldContainerPtrBase::getBaseCPtr(), osg::ConstFieldContainerPtr::getCPtr(), osg::FieldContainerPtr::getCPtr(), osg::ConstFieldContainerPtr::operator*(), osg::FieldContainerPtr::operator*(), osg::ConstFieldContainerPtr::operator->(), osg::FieldContainerPtr::operator->(), osg::FieldContainerPtrBase::operator=(), and osg::FieldContainerPtrBase::setNull().
00103 { 00104 return _storeP; 00105 }
| UInt8 * osg::FieldContainerPtrBase::getFirstElemP | ( | void | ) | const [inline, protected, inherited] |
Definition at line 108 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_storeP.
00109 { 00110 return _storeP; 00111 }
Definition at line 90 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_containerSize, and osg::FieldContainerPtrBase::_storeP.
Referenced by osg::FieldContainerPtrBase::executeSync(), osg::FieldContainerPtrBase::getAspectCPtr(), osg::NodePtr::getCore(), osg::NodePtr::getCPtr(), osg::ConstFieldContainerPtr::getCPtr(), osg::FieldContainerPtr::getCPtr(), osg::CNodePtr::getCPtr(), osg::AttachmentPtr::getCPtr(), osg::AttachmentContainerPtr::getCPtr(), osg::CNodePtr::getNode(), osg::NodePtr::operator*(), osg::ConstFieldContainerPtr::operator*(), osg::FieldContainerPtr::operator*(), osg::CNodePtr::operator*(), osg::AttachmentPtr::operator*(), osg::AttachmentContainerPtr::operator*(), osg::NodePtr::operator->(), osg::ConstFieldContainerPtr::operator->(), osg::FieldContainerPtr::operator->(), osg::CNodePtr::operator->(), osg::AttachmentPtr::operator->(), and osg::AttachmentContainerPtr::operator->().
00091 { 00092 return (_storeP + (_containerSize * uiElemNum)); 00093 }
| UInt8 * osg::FieldContainerPtrBase::getElemP | ( | UInt32 | uiElemNum | ) | const [inline, protected, inherited] |
Definition at line 96 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_containerSize, and osg::FieldContainerPtrBase::_storeP.
00097 { 00098 return (_storeP + (_containerSize * uiElemNum)); 00099 }
| Int32 osg::FieldContainerPtrBase::getRefCountOff | ( | void | ) | const [inline, protected, inherited] |
Definition at line 117 of file OSGFieldContainerPtrImpl.inl.
Referenced by osg::FieldContainerPtrBase::deleteContainers().
| Int32 osg::FieldContainerPtrBase::getIdOff | ( | void | ) | const [inline, protected, inherited] |
| Int32 osg::FieldContainerPtrBase::getFirstElemOff | ( | void | ) | const [inline, protected, inherited] |
| Int32 osg::FieldContainerPtrBase::getElemOff | ( | UInt32 | uiElemNum | ) | const [inline, protected, inherited] |
Definition at line 135 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_containerSize.
Referenced by osg::FieldContainerPtrBase::FieldContainerPtrBase().
00136 { 00137 return (_containerSize * uiElemNum); 00138 }
| void osg::FieldContainerPtrBase::addRef | ( | void | ) | const [inline, protected, inherited] |
Definition at line 413 of file OSGFieldContainerPtrImpl.inl.
References osg::FieldContainerPtrBase::_pRefCountLock, osg::FieldContainerPtrBase::_storeP, osg::ChangeList::addAddRefd(), osg::LockPool::aquire(), osg::PThreadBase::getCurrentChangeList(), osg::FieldContainerPtrBase::getRefCountP(), and osg::LockPool::release().
Referenced by osg::addRefCP(), and osg::setRefdCP().
00414 { 00415 _pRefCountLock->aquire(_storeP); 00416 00417 (*getRefCountP())++; 00418 00419 _pRefCountLock->release(_storeP); 00420 00421 Thread::getCurrentChangeList()->addAddRefd( 00422 *(static_cast<const FieldContainerPtr *>(this))); 00423 }
| 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::FieldContainerPtrBase::deleteContainers(), osg::PThreadBase::getCurrentChangeList(), osg::FieldContainerPtrBase::getRefCountP(), and osg::LockPool::release().
Referenced by osg::clearRefCP(), osg::setRefdCP(), and osg::subRefCP().
00125 { 00126 #if !defined(OSG_FIXED_MFIELDSYNC) 00127 _pRefCountLock->aquire(_storeP); 00128 00129 (*getRefCountP())--; 00130 00131 if((*getRefCountP()) <= 0) 00132 { 00133 _pRefCountLock->release(_storeP); 00134 00135 deleteContainers(); 00136 00137 // Clean up a little. 00138 const_cast<FieldContainerPtrBase*>(this)->_storeP = NULL; 00139 } 00140 else 00141 { 00142 _pRefCountLock->release(_storeP); 00143 00144 Thread::getCurrentChangeList()->addSubRefd( 00145 *(static_cast<const FieldContainerPtr *>(this))); 00146 } 00147 #else 00148 Thread::getCurrentChangeList()->addSubRefd( 00149 *(static_cast<const FieldContainerPtr *>(this))); 00150 #endif 00151 }
| 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 *((const FieldContainerPtr *) this))) 00086 { 00087 return; 00088 } 00089 00090 UInt8 *pTmp = getFirstElemP(); 00091 00092 ((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 ((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 426 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=().
00427 { 00428 _containerSize = 0; 00429 _uiParentEPos = InvalidParentEPos; 00430 _storeP = NULL; 00431 00432 #ifdef OSG_DEBUG_FCPTR 00433 _typedStoreP = reinterpret_cast<FieldContainer *>(getFirstElemP()); 00434 #endif 00435 }
BlendChunk* osg::BlendChunkPtr::_val [private] |
const UInt16 FieldContainerPtrBase::InvalidParentEPos = 0xFFFF [static, inherited] |
Definition at line 98 of file OSGFieldContainerPtrImpl.h.
Referenced by osg::FieldContainerPtrBase::FieldContainerPtrBase(), osg::FieldContainerPtrBase::operator=(), and osg::FieldContainerPtrBase::setNull().
UInt16 osg::FieldContainerPtrBase::_containerSize [protected, inherited] |
Definition at line 195 of file OSGFieldContainerPtrImpl.h.
Referenced by osg::FieldContainerPtrBase::deleteContainers(), osg::FieldContainerPtrBase::FieldContainerPtrBase(), osg::FieldContainerPtrBase::getContainerSize(), osg::FieldContainerPtrBase::getElemOff(), osg::FieldContainerPtrBase::getElemP(), osg::FieldContainerPtrBase::operator=(), osg::FieldContainerPtrBase::setNull(), and osg::FieldContainerPtrBase::~FieldContainerPtrBase().
UInt16 osg::FieldContainerPtrBase::_uiParentEPos [protected, inherited] |
Definition at line 196 of file OSGFieldContainerPtrImpl.h.
Referenced by osg::FieldContainerPtrBase::FieldContainerPtrBase(), osg::FieldContainerPtrBase::getParentFieldPos(), osg::FieldContainerPtrBase::operator=(), osg::FieldContainerPtrBase::setNull(), osg::FieldContainerPtrBase::setParentFieldPos(), and osg::FieldContainerPtrBase::~FieldContainerPtrBase().
UInt8* osg::FieldContainerPtrBase::_storeP [protected, inherited] |
Definition at line 197 of file OSGFieldContainerPtrImpl.h.
Referenced by osg::FieldContainerPtrBase::addRef(), osg::FieldContainerPtrBase::deleteContainers(), osg::FieldContainerPtrBase::dump(), osg::FieldContainerPtrBase::FieldContainerPtrBase(), osg::FieldContainerPtrBase::getElemP(), osg::FieldContainerPtrBase::getFirstElemP(), osg::FieldContainerPtrBase::getIdP(), osg::FieldContainerPtrBase::getRefCount(), osg::FieldContainerPtrBase::getRefCountP(), osg::FieldContainerPtrBase::operator unspecified_bool_type(), osg::FieldContainerPtrBase::operator!(), osg::FieldContainerPtrBase::operator!=(), osg::FieldContainerPtrBase::operator<(), osg::FieldContainerPtrBase::operator=(), osg::FieldContainerPtrBase::operator==(), osg::FieldContainerPtrBase::setNull(), osg::FieldContainerPtrBase::subRef(), and osg::FieldContainerPtrBase::~FieldContainerPtrBase().
1.5.5