#include <OgreResourceManager.h>
Inheritance diagram for Ogre::ResourceManager:
Public Types | |
typedef std::map< ResourceHandle, Resource * > | ResourceHandleMap |
typedef MapIterator< ResourceHandleMap > | ResourceMapIterator |
Public Methods | |
ResourceManager () | |
virtual | ~ResourceManager () |
virtual void | setMemoryBudget (size_t bytes) |
Set a limit on the amount of memory this resource handler may use. | |
virtual Resource * | create (const String &name)=0 |
Creates a new blank resource, compatible with this manager. | |
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 | |
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< 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 | |
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. |
Resource managers use a priority system to determine what can be unloaded, and a Least Recently Used (LRU) policy within resources of the same priority.
Definition at line 50 of file OgreResourceManager.h.
|
Definition at line 195 of file OgreResourceManager.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. |
|
Definition at line 53 of file OgreResourceManager.cpp. References mMemoryBudget, mMemoryUsage, and mNextHandle. |
|
Definition at line 61 of file OgreResourceManager.cpp. References unloadAndDestroyAll(). |
|
Internal method, used for locating common resource data in the file system / archives.
Definition at line 294 of file OgreResourceManager.cpp. References Except, mCommonArchiveFiles, and mCommonVFS. |
|
Internal method, used for locating resource data in the file system / archives.
Definition at line 212 of file OgreResourceManager.cpp. References Except, mArchiveFiles, mCommonArchiveFiles, mCommonVFS, and mVFS. |
|
Returns a collection of files with the given extension in the common resource paths.
Definition at line 255 of file OgreResourceManager.cpp. References 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 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(), getNextHandle(), Ogre::Resource::mHandle, mResources, and mResourcesByHandle. Referenced by Ogre::Quake3ShaderManager::create(), Ogre::MaterialManager::create(), Ogre::HighLevelGpuProgramManager::createProgram(), and 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(), mArchiveFiles, mVFS, and Ogre::StringVector. Referenced by addSearchPath(). |
|
Adds an archive to the search path for all resources.
Definition at line 200 of file OgreResourceManager.cpp. References Ogre::ArchiveEx::getAllNamesLike(), mCommonArchiveFiles, mCommonVFS, and Ogre::StringVector. Referenced by 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 addCommonArchiveEx(), and Ogre::convertPath(). |
|
Adds a relative path to search for resources of this type.
Definition at line 176 of file OgreResourceManager.cpp. References addArchiveEx(), and Ogre::convertPath(). |
|
Checks memory usage and pages out if required.
Definition at line 170 of file OgreResourceManager.cpp. Referenced by setMemoryBudget(). |
|
Creates a new blank resource, compatible with this manager.
Implemented in Ogre::ArchiveManager, Ogre::DynLibManager, Ogre::FontManager, Ogre::GpuProgramManager, Ogre::HighLevelGpuProgramManager, Ogre::MaterialManager, Ogre::MeshManager, Ogre::OverlayManager, Ogre::SkeletonManager, Ogre::TextureManager, Ogre::BspResourceManager, and Ogre::Quake3ShaderManager. |
|
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 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 mResources. Referenced by Ogre::MaterialManager::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(). |
|
Allocates the next handle.
Definition at line 165 of file OgreResourceManager.cpp. References mNextHandle, and Ogre::ResourceHandle. Referenced by add(). |
|
Returns an iterator over all resources in this manager.
Definition at line 226 of file OgreResourceManager.h. |
|
Load a resource. Resources will be subclasses. Reimplemented in Ogre::TextureManager. Definition at line 67 of file OgreResourceManager.cpp. References add(), Ogre::Resource::load(), and Ogre::Resource::touch(). Referenced by Ogre::OverlayManager::create(). |
|
Set a limit on the amount of memory this resource handler may use.
Definition at line 97 of file OgreResourceManager.cpp. References checkUsage(), and 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(), mMemoryUsage, mResources, 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 mResources, and mResourcesByHandle. Referenced by Ogre::BspResourceManager::load(), Ogre::D3DTextureManager::~D3DTextureManager(), and ~ResourceManager(). |
|
Definition at line 200 of file OgreResourceManager.h. Referenced by _findResourceData(), and addArchiveEx(). |
|
Definition at line 37 of file OgreResourceManager.cpp. Referenced by _findCommonResourceData(), _findResourceData(), and addCommonArchiveEx(). |
|
Collection of searchable ArchiveEx classes (virtual file system) for all resource types.
Definition at line 36 of file OgreResourceManager.cpp. Referenced by _findCommonResourceData(), _findResourceData(), _getAllCommonNamesLike(), addCommonArchiveEx(), Ogre::OverlayManager::loadAndParseOverlayFile(), Ogre::Quake3ShaderManager::parseAllSources(), Ogre::OverlayManager::parseAllSources(), Ogre::MaterialManager::parseAllSources(), and Ogre::FontManager::parseAllSources(). |
|
Definition at line 210 of file OgreResourceManager.h. Referenced by ResourceManager(), and setMemoryBudget(). |
|
Definition at line 211 of file OgreResourceManager.h. Referenced by ResourceManager(), and unload(). |
|
Definition at line 208 of file OgreResourceManager.h. Referenced by getNextHandle(), and ResourceManager(). |
|
|
Definition at line 205 of file OgreResourceManager.h. Referenced by add(), getByHandle(), unload(), and unloadAndDestroyAll(). |
|
Collection of searchable ArchiveEx classes (virtual file system) for this resource type.
Definition at line 221 of file OgreResourceManager.h. Referenced by _findResourceData(), _getAllNamesLike(), addArchiveEx(), Ogre::OverlayManager::loadAndParseOverlayFile(), Ogre::Quake3ShaderManager::parseAllSources(), Ogre::OverlayManager::parseAllSources(), Ogre::MaterialManager::parseAllSources(), and Ogre::FontManager::parseAllSources(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:19:40 2004