#include <OgreMaterialManager.h>
Inheritance diagram for Ogre::MaterialManager:
Public Types | |
typedef std::map< ResourceHandle, Resource * > | ResourceHandleMap |
typedef MapIterator< ResourceHandleMap > | ResourceMapIterator |
Public Methods | |
MaterialManager () | |
Default constructor. | |
virtual | ~MaterialManager () |
Default destructor. | |
void | initialise (void) |
Intialises the material manager, which also triggers it to parse all available .program and .material scripts. | |
void | parseScript (DataChunk &chunk) |
Parses a Material script file passed as a chunk. | |
void | parseAllSources (const String &extension=".material") |
Parses all material script files in resource folders & archives. | |
Resource * | create (const String &name) |
Create implementation required by ResourceManager. | |
virtual void | setDefaultTextureFiltering (TextureFilterOptions fo) |
Sets the default texture filtering to be used for loaded textures, for when textures are loaded automatically (e.g. | |
virtual void | setDefaultTextureFiltering (FilterType ftype, FilterOptions opts) |
Sets the default texture filtering to be used for loaded textures, for when textures are loaded automatically (e.g. | |
virtual void | setDefaultTextureFiltering (FilterOptions minFilter, FilterOptions magFilter, FilterOptions mipFilter) |
Sets the default texture filtering to be used for loaded textures, for when textures are loaded automatically (e.g. | |
virtual FilterOptions | getDefaultTextureFiltering (FilterType ftype) const |
get the default texture filtering | |
void | setDefaultAnisotropy (unsigned int maxAniso) |
Sets the default anisotropy level to be used for loaded textures, for when textures are loaded automatically (e.g. | |
unsigned int | getDefaultAnisotropy () const |
get the default maxAnisotropy | |
virtual void | setMemoryBudget (size_t bytes) |
Set a limit on the amount of memory this resource handler may use. | |
virtual void | load (Resource *res, int priority) |
Load a resource. | |
virtual void | add (Resource *res) |
Add a resource to this manager; normally only done by subclasses. | |
virtual void | unload (Resource *res) |
Unloads a Resource from the managed resources list, calling it's unload() method. | |
virtual void | unloadAndDestroyAll (void) |
Unloads all Resources from memory. | |
virtual Resource * | getByName (const String &name) |
Retrieves a pointer to a resource by name, or null if the resource does not exist. | |
virtual Resource * | getByHandle (ResourceHandle handle) |
Retrieves a pointer to a resource by handle, or null if the resource does not exist. | |
void | addSearchPath (const String &path) |
Adds a relative path to search for resources of this type. | |
void | addArchiveEx (const String &strName, const String &strDriverName) |
Adds an archive to the search path for this type of resource. | |
bool | _findResourceData (const String &filename, DataChunk &refChunk) |
Internal method, used for locating resource data in the file system / archives. | |
std::set< String > | _getAllNamesLike (const String &startPath, const String &extension) |
Returns a collection of files with the given extension in all resource paths, common and specific to this resource type. | |
ResourceMapIterator | getResourceIterator (void) |
Returns an iterator over all resources in this manager. | |
Static Public Methods | |
MaterialManager & | getSingleton (void) |
Override standard Singleton retrieval. | |
MaterialManager * | getSingletonPtr (void) |
Override standard Singleton retrieval. | |
void | addCommonSearchPath (const String &path) |
Adds a relative search path for resources of ALL types. | |
void | addCommonArchiveEx (const String &strName, const String &strDriverName) |
Adds an archive to the search path for all resources. | |
std::set< String > | _getAllCommonNamesLike (const String &startPath, const String &extension) |
Returns a collection of files with the given extension in the common resource paths. | |
bool | _findCommonResourceData (const String &filename, DataChunk &refChunk) |
Internal method, used for locating common resource data in the file system / archives. | |
Protected Types | |
typedef HashMap< int, Material * > | MaterialHandleList |
typedef HashMap< String, ArchiveEx *, _StringHash > | FileMap |
typedef HashMap< String, Resource *, _StringHash > | ResourceMap |
Protected Methods | |
ResourceHandle | getNextHandle (void) |
Allocates the next handle. | |
void | checkUsage (void) |
Checks memory usage and pages out if required. | |
Protected Attributes | |
FilterOptions | mDefaultMinFilter |
Default Texture filtering - minification. | |
FilterOptions | mDefaultMagFilter |
Default Texture filtering - magnification. | |
FilterOptions | mDefaultMipFilter |
Default Texture filtering - mipmapping. | |
unsigned int | mDefaultMaxAniso |
Default Texture anisotropy. | |
MaterialSerializer | mSerializer |
Serializer. | |
FileMap | mArchiveFiles |
ResourceHandleMap | mResourcesByHandle |
ResourceMap | mResources |
ResourceHandle | mNextHandle |
size_t | mMemoryBudget |
size_t | mMemoryUsage |
std::vector< ArchiveEx * > | mVFS |
Collection of searchable ArchiveEx classes (virtual file system) for this resource type. | |
Static Protected Attributes | |
FileMap | mCommonArchiveFiles |
std::vector< ArchiveEx * > | mCommonVFS |
Collection of searchable ArchiveEx classes (virtual file system) for all resource types. | |
MaterialManager * | ms_Singleton = 0 |
When loaded from a script, a Material is in an 'unloaded' state and only stores the settings required. It does not at that stage load any textures. This is because the material settings may be loaded 'en masse' from bulk material script files, but only a subset will actually be required.
Because this is a subclass of ResourceManager, any files loaded will be searched for in any path or archive added to the resource paths/archives. See ResourceManager for details.
For a definition of the material script format, see the Tutorials/MaterialScript.html file.
Definition at line 54 of file OgreMaterialManager.h.
|
Definition at line 195 of file OgreResourceManager.h. |
|
Definition at line 58 of file OgreMaterialManager.h. |
|
Definition at line 203 of file OgreResourceManager.h. |
|
Definition at line 196 of file OgreResourceManager.h. |
|
Definition at line 224 of file OgreResourceManager.h. |
|
Default constructor.
Definition at line 53 of file OgreMaterialManager.cpp. References Ogre::FO_LINEAR, Ogre::FO_POINT, mDefaultMagFilter, mDefaultMaxAniso, mDefaultMinFilter, and mDefaultMipFilter. |
|
Default destructor.
Definition at line 63 of file OgreMaterialManager.cpp. |
|
Internal method, used for locating common resource data in the file system / archives.
Definition at line 294 of file OgreResourceManager.cpp. References Except, Ogre::ResourceManager::mCommonArchiveFiles, and Ogre::ResourceManager::mCommonVFS. |
|
Internal method, used for locating resource data in the file system / archives.
Definition at line 212 of file OgreResourceManager.cpp. References Except, Ogre::ResourceManager::mArchiveFiles, Ogre::ResourceManager::mCommonArchiveFiles, Ogre::ResourceManager::mCommonVFS, and Ogre::ResourceManager::mVFS. |
|
Returns a collection of files with the given extension in the common resource paths.
Definition at line 255 of file OgreResourceManager.cpp. References Ogre::ResourceManager::mCommonVFS, and Ogre::StringVector. |
|
Returns a collection of files with the given extension in all resource paths, common and specific to this resource type.
Definition at line 274 of file OgreResourceManager.cpp. References Ogre::ResourceManager::mVFS, and Ogre::StringVector. |
|
Add a resource to this manager; normally only done by subclasses.
Definition at line 75 of file OgreResourceManager.cpp. References Except, Ogre::Resource::getName(), Ogre::ResourceManager::getNextHandle(), Ogre::Resource::mHandle, Ogre::ResourceManager::mResources, and Ogre::ResourceManager::mResourcesByHandle. Referenced by Ogre::Quake3ShaderManager::create(), create(), Ogre::MeshManager::createManual(), Ogre::HighLevelGpuProgramManager::createProgram(), and Ogre::ResourceManager::load(). |
|
Adds an archive to the search path for this type of resource.
Definition at line 188 of file OgreResourceManager.cpp. References Ogre::ArchiveEx::getAllNamesLike(), Ogre::ResourceManager::mArchiveFiles, Ogre::ResourceManager::mVFS, and Ogre::StringVector. Referenced by Ogre::ResourceManager::addSearchPath(). |
|
Adds an archive to the search path for all resources.
Definition at line 200 of file OgreResourceManager.cpp. References Ogre::ArchiveEx::getAllNamesLike(), Ogre::ResourceManager::mCommonArchiveFiles, Ogre::ResourceManager::mCommonVFS, and Ogre::StringVector. Referenced by Ogre::ResourceManager::addCommonSearchPath(). |
|
Adds a relative search path for resources of ALL types.
This method has the same effect as ResourceManager::addSearchPath, except that the path added applies to ALL resources, not just the one managed by the subclass in question. Definition at line 182 of file OgreResourceManager.cpp. References Ogre::ResourceManager::addCommonArchiveEx(), and Ogre::convertPath(). |
|
Adds a relative path to search for resources of this type.
Definition at line 176 of file OgreResourceManager.cpp. References Ogre::ResourceManager::addArchiveEx(), and Ogre::convertPath(). |
|
Checks memory usage and pages out if required.
Definition at line 170 of file OgreResourceManager.cpp. Referenced by Ogre::ResourceManager::setMemoryBudget(). |
|
Create implementation required by ResourceManager.
Implements Ogre::ResourceManager. Definition at line 132 of file OgreMaterialManager.cpp. References Ogre::ResourceManager::add(), Except, and Ogre::ResourceManager::getByName(). Referenced by initialise(). |
|
Retrieves a pointer to a resource by handle, or null if the resource does not exist.
Definition at line 151 of file OgreResourceManager.cpp. References Ogre::ResourceManager::mResourcesByHandle, and Ogre::ResourceHandle. |
|
Retrieves a pointer to a resource by name, or null if the resource does not exist.
Definition at line 139 of file OgreResourceManager.cpp. References Ogre::ResourceManager::mResources. Referenced by create(), Ogre::FontManager::create(), Ogre::MeshManager::createBezierPatch(), Ogre::MeshManager::createManual(), Ogre::SceneManager::createSkyboxPlane(), Ogre::SceneManager::createSkydomePlane(), Ogre::TextureManager::load(), Ogre::SkeletonManager::load(), Ogre::MeshManager::load(), Ogre::DynLibManager::load(), Ogre::ArchiveManager::load(), Ogre::SceneManager::setSkyBox(), and Ogre::TextureManager::unload(). |
|
get the default maxAnisotropy
Definition at line 169 of file OgreMaterialManager.cpp. References mDefaultMaxAniso. |
|
get the default texture filtering
Definition at line 198 of file OgreMaterialManager.cpp. References Ogre::FilterOptions, Ogre::FilterType, Ogre::FT_MAG, Ogre::FT_MIN, Ogre::FT_MIP, mDefaultMagFilter, mDefaultMinFilter, and mDefaultMipFilter. |
|
Allocates the next handle.
Definition at line 165 of file OgreResourceManager.cpp. References Ogre::ResourceManager::mNextHandle, and Ogre::ResourceHandle. Referenced by Ogre::ResourceManager::add(). |
|
Returns an iterator over all resources in this manager.
Definition at line 226 of file OgreResourceManager.h. |
|
Override standard Singleton retrieval.
Reimplemented from Ogre::Singleton< MaterialManager >. Definition at line 48 of file OgreMaterialManager.cpp. References Ogre::Singleton< MaterialManager >::ms_Singleton. |
|
Override standard Singleton retrieval.
Reimplemented from Ogre::Singleton< MaterialManager >. Definition at line 44 of file OgreMaterialManager.cpp. References Ogre::Singleton< MaterialManager >::ms_Singleton. |
|
Intialises the material manager, which also triggers it to parse all available .program and .material scripts.
Definition at line 69 of file OgreMaterialManager.cpp. References create(), parseAllSources(), and Ogre::Material::setLightingEnabled(). Referenced by Ogre::Root::oneTimePostWindowInit(). |
|
Load a resource. Resources will be subclasses. Reimplemented in Ogre::TextureManager. Definition at line 67 of file OgreResourceManager.cpp. References Ogre::ResourceManager::add(), Ogre::Resource::load(), and Ogre::Resource::touch(). Referenced by Ogre::OverlayManager::create(). |
|
Parses all material script files in resource folders & archives.
Definition at line 96 of file OgreMaterialManager.cpp. References Ogre::ResourceManager::mCommonVFS, mSerializer, Ogre::ResourceManager::mVFS, Ogre::MaterialSerializer::parseScript(), and Ogre::StringVector. Referenced by initialise(). |
|
Parses a Material script file passed as a chunk.
Definition at line 90 of file OgreMaterialManager.cpp. References mSerializer, and Ogre::MaterialSerializer::parseScript(). |
|
Sets the default anisotropy level to be used for loaded textures, for when textures are loaded automatically (e.g. by Material class) or when 'load' is called with the default parameters by the application.
Definition at line 164 of file OgreMaterialManager.cpp. References mDefaultMaxAniso. |
|
Sets the default texture filtering to be used for loaded textures, for when textures are loaded automatically (e.g. by Material class) or when 'load' is called with the default parameters by the application. Definition at line 190 of file OgreMaterialManager.cpp. References Ogre::FilterOptions, mDefaultMagFilter, mDefaultMinFilter, and mDefaultMipFilter. |
|
Sets the default texture filtering to be used for loaded textures, for when textures are loaded automatically (e.g. by Material class) or when 'load' is called with the default parameters by the application. Definition at line 174 of file OgreMaterialManager.cpp. References Ogre::FilterOptions, Ogre::FilterType, Ogre::FT_MAG, Ogre::FT_MIN, Ogre::FT_MIP, mDefaultMagFilter, mDefaultMinFilter, and mDefaultMipFilter. |
|
Sets the default texture filtering to be used for loaded textures, for when textures are loaded automatically (e.g. by Material class) or when 'load' is called with the default parameters by the application.
Definition at line 145 of file OgreMaterialManager.cpp. References Ogre::FO_ANISOTROPIC, Ogre::FO_LINEAR, Ogre::FO_NONE, Ogre::FO_POINT, Ogre::TextureFilterOptions, Ogre::TFO_ANISOTROPIC, Ogre::TFO_BILINEAR, Ogre::TFO_NONE, and Ogre::TFO_TRILINEAR. |
|
Set a limit on the amount of memory this resource handler may use.
Definition at line 97 of file OgreResourceManager.cpp. References Ogre::ResourceManager::checkUsage(), and Ogre::ResourceManager::mMemoryBudget. |
|
Unloads a Resource from the managed resources list, calling it's unload() method.
Definition at line 105 of file OgreResourceManager.cpp. References Ogre::Resource::getHandle(), Ogre::Resource::getName(), Ogre::Resource::getSize(), Ogre::ResourceManager::mMemoryUsage, Ogre::ResourceManager::mResources, Ogre::ResourceManager::mResourcesByHandle, and Ogre::Resource::unload(). Referenced by Ogre::SceneManager::createSkyboxPlane(), and Ogre::SceneManager::createSkydomePlane(). |
|
Unloads all Resources from memory.
Reimplemented in Ogre::D3D9TextureManager, and Ogre::GLTextureManager. Definition at line 122 of file OgreResourceManager.cpp. References Ogre::ResourceManager::mResources, and Ogre::ResourceManager::mResourcesByHandle. Referenced by Ogre::BspResourceManager::load(), Ogre::D3DTextureManager::~D3DTextureManager(), and Ogre::ResourceManager::~ResourceManager(). |
|
Definition at line 200 of file OgreResourceManager.h. Referenced by Ogre::ResourceManager::_findResourceData(), and Ogre::ResourceManager::addArchiveEx(). |
|
Definition at line 37 of file OgreResourceManager.cpp. Referenced by Ogre::ResourceManager::_findCommonResourceData(), Ogre::ResourceManager::_findResourceData(), and Ogre::ResourceManager::addCommonArchiveEx(). |
|
Collection of searchable ArchiveEx classes (virtual file system) for all resource types.
Definition at line 36 of file OgreResourceManager.cpp. Referenced by Ogre::ResourceManager::_findCommonResourceData(), Ogre::ResourceManager::_findResourceData(), Ogre::ResourceManager::_getAllCommonNamesLike(), Ogre::ResourceManager::addCommonArchiveEx(), Ogre::OverlayManager::loadAndParseOverlayFile(), Ogre::Quake3ShaderManager::parseAllSources(), Ogre::OverlayManager::parseAllSources(), parseAllSources(), and Ogre::FontManager::parseAllSources(). |
|
Default Texture filtering - magnification.
Definition at line 63 of file OgreMaterialManager.h. Referenced by getDefaultTextureFiltering(), MaterialManager(), and setDefaultTextureFiltering(). |
|
Default Texture anisotropy.
Definition at line 67 of file OgreMaterialManager.h. Referenced by getDefaultAnisotropy(), MaterialManager(), and setDefaultAnisotropy(). |
|
Default Texture filtering - minification.
Definition at line 61 of file OgreMaterialManager.h. Referenced by getDefaultTextureFiltering(), MaterialManager(), and setDefaultTextureFiltering(). |
|
Default Texture filtering - mipmapping.
Definition at line 65 of file OgreMaterialManager.h. Referenced by getDefaultTextureFiltering(), MaterialManager(), and setDefaultTextureFiltering(). |
|
Definition at line 210 of file OgreResourceManager.h. Referenced by Ogre::ResourceManager::ResourceManager(), and Ogre::ResourceManager::setMemoryBudget(). |
|
Definition at line 211 of file OgreResourceManager.h. Referenced by Ogre::ResourceManager::ResourceManager(), and Ogre::ResourceManager::unload(). |
|
Definition at line 208 of file OgreResourceManager.h. Referenced by Ogre::ResourceManager::getNextHandle(), and Ogre::ResourceManager::ResourceManager(). |
|
|
Definition at line 205 of file OgreResourceManager.h. Referenced by Ogre::ResourceManager::add(), Ogre::ResourceManager::getByHandle(), Ogre::ResourceManager::unload(), and Ogre::ResourceManager::unloadAndDestroyAll(). |
|
Definition at line 43 of file OgreMaterialManager.cpp. Referenced by getSingleton(), and getSingletonPtr(). |
|
Definition at line 70 of file OgreMaterialManager.h. Referenced by parseAllSources(), and parseScript(). |
|
Collection of searchable ArchiveEx classes (virtual file system) for this resource type.
Definition at line 221 of file OgreResourceManager.h. Referenced by Ogre::ResourceManager::_findResourceData(), Ogre::ResourceManager::_getAllNamesLike(), Ogre::ResourceManager::addArchiveEx(), Ogre::OverlayManager::loadAndParseOverlayFile(), Ogre::Quake3ShaderManager::parseAllSources(), Ogre::OverlayManager::parseAllSources(), parseAllSources(), and Ogre::FontManager::parseAllSources(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:26:31 2004