![]() |
VR-Forces Developer's Guide
|
Contains the per Model info which the indirect module needs It is owned by the Indirect geometry registrar.
Public Member Functions | |
| DtIndirectModelInfo (DtDe &de) | |
| virtual | ~DtIndirectModelInfo () |
| DtIndirectModelInfo (const DtIndirectModelInfo &)=delete | |
| DtIndirectModelInfo & | operator= (const DtIndirectModelInfo &)=delete |
| virtual void | unloadBuffers () |
| virtual bool | buffersLoaded () const |
| virtual void | texturesSet (std::map< const DtIndirectTexturePrototype *, int > &texturesSet) const |
| virtual void | addUser (const DtGpuCulling *user) |
| virtual void | removeUser (const DtGpuCulling *user) |
| virtual void | computeMaxTextureResolution (const DtIndirectLimitTextureStrategy &limitStrategy) |
| virtual void | updateBuffersIfNecessary (bool &reloaded) |
| virtual const BindlessPtrNV & | vertexBufferBindless (int index) const |
| virtual const BindlessPtrNV & | additionalBufferBindless (int index) const |
| virtual const BindlessPtrNV & | indexBufferBindless (int index) const |
| virtual int | numSubGeometries () const |
| virtual int | maxCoords (int index) const |
| virtual int | numVertices (int index) const |
| virtual int | numIndices (int index) const |
| virtual void | addSubGeometry (DtIndirectModelSubGeometry *modelSubGeometry) |
| virtual DtIndirectModelSubGeometry * | subGeometry (int index) |
| virtual void | promoteDataFromSubGeosToMe (void) |
Public Attributes | |
| std::string | myModelName |
| std::string | myModelDefName |
| int | myModelID |
| bool | myDownloaded |
| DtGeometrySpecVector | myGeometrySpecifications |
| DtIndirectMaterialVector | myMaterials |
| std::vector < DtIndirectGeometryTextures > | myTextures |
| DtPerGeomInstances | myPerGeomInstancesTemplate |
| DtIndirectUvOffsetManager::AnnotationToUvOffsetMap | myAnnotationToUvOffsetIdMap |
| DtIndirectUvOffsetManager::ScrollableUvOffsetIdsAndMultipliers | myScrollableUvOffsetIdsAndMultipliers |
| DtIndirectSwitchManager::DequeNodeSwitchInfoPairsArray | mySwitchPaths |
| DtIndirectLodManager::DequeIndirectLodInfoArray | myLodStacks |
| DtIndirectDofManager::DequeNodeDofInfoPairs | myDofPaths |
| int | myNumLightSources |
| std::unordered_set< const DtGpuCulling * > | myUsers |
| boost::mutex | myUserMutex |
| DtDe & | myDe |
| DtVector2< int > | myMaxTextureResolutionInXandY |
| DtGlBuffer * | myVertexAndAttributesBuffer = nullptr |
| DtGlBuffer * | myIndexBuffer = nullptr |
| bool | myBuffersUpdated = false |
| DtGlDeleteObjectManager & | myGlDeleteObjectManager |
Protected Member Functions | |
| virtual bool | isDefaultTexture (const DtIndirectTexturePrototype *texture) const |
| virtual void | unload () |
| virtual bool | isLoaded () const |
| virtual void | releaseGLObjects (osg::State *state) |
| virtual void | createIndirectBuffers (void) |
| virtual void | deleteIndirectBuffers (void) |
Protected Attributes | |
| std::vector< uint8_t > | myVertexBufferData |
| std::vector< uint8_t > | myIndexBufferData |
| std::vector < DtIndirectModelSubGeoProps > | mySubGeoPropsVec |
| std::vector < DtIndirectSubGeoBindlessBuffers > | mySubGeoBindlessBuffersVec |
| std::vector < DtIndirectModelSubGeometry * > | myVectorModelSubGeometries |
| makVrv::DtIndirectModelInfo::DtIndirectModelInfo | ( | DtDe & | de | ) |
constructor
|
virtual |
destructor
|
delete |
not allowed
|
delete |
not allowed
|
virtual |
unload the model information specifically, make gl buffers non-resident and add them to the delete manager
|
virtual |
are buffers loaded?
|
virtual |
get the set of textures (diffuse + effect textures) that this model refers to
|
virtual |
gpu culling is the only 'user' of the model info since it uses the bindless address of the buffers and textures of the model multiple gpu cullings (and hence indirect geometries) can refer to the same model info
|
virtual |
gpu culling is the only 'user' of the model info since it uses the bindless address of the buffers and textures of the model multiple gpu cullings (and hence indirect geometries) can refer to the same model info
|
virtual |
update the max texture resolution in x and y for all textures of a given model should be done when the model is finalized. Also, excludes the excluded textures from the max computation, per the specified strategy
|
virtual |
update from our shadow copy (myVertexBufferData, myIndexBufferData) also update the bindless pointers
|
virtual |
bindless vertex buffer
|
virtual |
bindless additional attributes buffer
|
virtual |
bindless index buffer
|
virtual |
number of sub goes
The max texture coordinates unit/number of the texture coordinate sets.
The num of vertices.
|
virtual |
Don't use directly Added only by aggregator. This will transfer ownership of the sub geo/ (ie, the model info will handle the lifetime/deletion of this subgeo)
|
virtual |
Don't use directly. Used only by DtIndirectModelInfoContainer::copyData to copy data: sub geo <- osg.
|
virtual |
Don't use directly. Used only by DtIndirectModelInfoContainer. Promote data from sub geos into me. The sub geos can then be deleted.
|
protectedvirtual |
whether a texture is the default white texture
|
protectedvirtual |
unload the model info specifically, for bindless make gl buffers non-resident and add them to the delete manager
|
protectedvirtual |
is loaded?
|
protectedvirtual |
release gl objects
|
protectedvirtual |
internal. create the indirect buffers
|
protectedvirtual |
internal. delete the indirect buffers
| std::string makVrv::DtIndirectModelInfo::myModelName |
the model name
| std::string makVrv::DtIndirectModelInfo::myModelDefName |
| int makVrv::DtIndirectModelInfo::myModelID |
the model id
| bool makVrv::DtIndirectModelInfo::myDownloaded |
is the model completely downloaded to the gpu
| DtGeometrySpecVector makVrv::DtIndirectModelInfo::myGeometrySpecifications |
the vector of all geometry specs
| DtIndirectMaterialVector makVrv::DtIndirectModelInfo::myMaterials |
vector of the materials in this model
| std::vector<DtIndirectGeometryTextures> makVrv::DtIndirectModelInfo::myTextures |
vector of the textures in this model
| DtPerGeomInstances makVrv::DtIndirectModelInfo::myPerGeomInstancesTemplate |
vector of the per geom instances
| DtIndirectUvOffsetManager::AnnotationToUvOffsetMap makVrv::DtIndirectModelInfo::myAnnotationToUvOffsetIdMap |
annotation to uv offset map
| DtIndirectUvOffsetManager::ScrollableUvOffsetIdsAndMultipliers makVrv::DtIndirectModelInfo::myScrollableUvOffsetIdsAndMultipliers |
uv offset ids and multipliers
| DtIndirectSwitchManager::DequeNodeSwitchInfoPairsArray makVrv::DtIndirectModelInfo::mySwitchPaths |
switch paths
| DtIndirectLodManager::DequeIndirectLodInfoArray makVrv::DtIndirectModelInfo::myLodStacks |
lod paths
| DtIndirectDofManager::DequeNodeDofInfoPairs makVrv::DtIndirectModelInfo::myDofPaths |
| int makVrv::DtIndirectModelInfo::myNumLightSources |
the number of light sources
| std::unordered_set<const DtGpuCulling*> makVrv::DtIndirectModelInfo::myUsers |
| boost::mutex makVrv::DtIndirectModelInfo::myUserMutex |
| DtDe& makVrv::DtIndirectModelInfo::myDe |
| DtGlBuffer* makVrv::DtIndirectModelInfo::myVertexAndAttributesBuffer = nullptr |
| DtGlBuffer* makVrv::DtIndirectModelInfo::myIndexBuffer = nullptr |
| bool makVrv::DtIndirectModelInfo::myBuffersUpdated = false |
| DtGlDeleteObjectManager& makVrv::DtIndirectModelInfo::myGlDeleteObjectManager |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
the same size as the spec vector above 1 sub-geometry for each spec