![]() |
VR-Forces Developer's Guide
|
This manager manages the lifetime of the actual gl texture objects (gl unsigned ints) in the indirect rendering module.
These texture objects are based on (keyed on) DtIndirectTexturePrototype.
See DtIndirectTexturePrototype and DtIndirectTexturePrototypeManager for detailed explanation of the texturing system.

Static Public Member Functions | |
| static DtIndirectGlTextureObjectManager & | instance (DtDe &de) |
Protected Member Functions | |
| DtIndirectGlTextureObjectManager (DtDe &de) | |
| virtual unsigned int | createCompressedGlTexture2d (const DtIndirectTexturePrototype *vrvTexture, const DtIndirectImagePrototype *vrvImage, const DtIndirectLimitTextureStrategy &indirectLimitTextureStrategy, bool regularPath, bool &aboveCutoff) const |
| virtual unsigned int | createUnCompressedGlTexture2d (const DtIndirectTexturePrototype *vrvTexture, const DtIndirectImagePrototype *vrvImage, const DtIndirectLimitTextureStrategy &indirectLimitTextureStrategy) const |
| virtual unsigned int | createGlTexture2dArray (const DtIndirectTexturePrototype *vrvTexture) const |
| virtual unsigned int | createGlTexture3D (const DtIndirectTexturePrototype *vrvTexture) const |
| virtual void | setupWrapFilteringAndAniso (unsigned int textureId, const DtIndirectTexturePrototype *vrvTexture) const |
| virtual bool | textureWillPutMemoryAboveCutoff (int sizeOfTextureInBytes) const |
| virtual DtIndirectLimitTextureStrategy * | limitTextureStrategy (int strategyType) |
Protected Attributes | |
| DtDe & | myDe |
| DtSignalConnectionManager | myConnections |
| std::unordered_map< const DtIndirectTexturePrototype *, DtIndirectGlTextureObject * > | myTexturePrototypeToObject |
| std::unordered_map < DtIndirectGlTextureObject *, const DtIndirectTexturePrototype * > | myTextureObjectToPrototype |
| std::unordered_map< unsigned int, DtIndirectGlTextureObject * > | myIdToGlTextures |
| std::unordered_set < DtIndirectGlTextureObject * > | mySetIndirectGlTextureObjects |
| boost::mutex | myMutex |
| DtMeifConverter * | myImageCompressor |
| int | myOutOfMemoryTextureId |
| DtIndirectDefaultTexturesContainer & | myDefaultTexturesContainer |
| std::unordered_map < std::string, DtVector2< int > > | mySeenImages |
| DtIndirectLimitTextureStrategy * | myNoLimitStrategy |
| DtIndirectLimitTextureStrategy & | myTerrainLimitTextureStrategy |
| DtIndirectLog & | myIndirectLog |
| DtIndirectTextureResidencyManager * | myIndirectTextureResidencyManager |
| DtIndirectImagePrototypeManager & | myImagePrototypeManager |
Static Protected Attributes | |
| static const std::string | theClassName |
|
virtual |
destructor
|
delete |
not allowed
|
delete |
not allowed
|
protected |
cannot create directly
|
static |
Access the singleton instance.
|
delete |
not allowed
|
virtual |
Get or create a texture keyed on the given vrv texture If not present, will make a texture object. If present, will return the texture object. Will use the vrv texture's image to fill its mip maps.
| vrvTexture | The DtIndirectTexturePrototype template to create the texture from |
| limit | strategy to use (there's only 2 right now, entity and terrain) |
|
virtual |
same as above, but will not create, if not present. will return 0 in this case
whether this exists
|
virtual |
This is called via DtIndirectGlTextureObject, when it's user count goes to zero Higher up, it is actually called indirectly called via DtGpuCulling::releaseGlObjects with a call to remove itself as the user of the DtIndirectGlTextureObject.
|
virtual |
texture id of the texture used when we are out of memory
|
virtual |
get the size of the image that's been seen so far useful to track all images seen, because images can be nulled out after processing and deleted by the ref counting of the caching in DtOsgFileCache
This will actually just run once for each gc, each frame.
|
virtual |
accessor
|
virtual |
Used for debugging This is used for debugging for when we removed all windows There should be no textures with resident handles. Furthermore, textures with no resident handles in any context, should have been deleted.
|
protectedvirtual |
create compressed 2d image. this is the path used majority of the time
|
protectedvirtual |
create compressed 2d image. (e.g. sfx pods)
|
protectedvirtual |
create compressed 2d image. (sfx textures are sometimes 2d arrays)
|
protectedvirtual |
create uncompressed 3d texture.
|
protectedvirtual |
set up texture parameters into texture id from the vrv texture
|
protectedvirtual |
whether making this texture will put the used memory above cutoff
|
protectedvirtual |
internal
|
protected |
|
protected |
|
protected |
of vrv texture to the indirect gl texture object
|
protected |
|
protected |
another map for fast look up
|
protected |
another set for fast look up
|
protected |
|
protected |
|
protected |
|
protected |
cache to avoid repeated look ups via DtIndirectDefaultTexturesContainer::instance(myDe)
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |