#include <resmanager.h>
Public Types | |
| typedef T::ResourceType | ResourceType |
Public Member Functions | |
| ResourceType * | find (ResourceHandle h) |
| ResourceHandle | getHandle (const T &info) |
| const T * | getResourceInfo (ResourceHandle h) |
| ResourceManager (std::string _baseDir) | |
| ResourceManager () | |
| ~ResourceManager () | |
Private Types | |
| typedef std::map< std::string, ResourceType * > | NameMap |
| typedef NameMap::value_type | NameMapValue |
| typedef std::map< T, ResourceHandle > | ResourceHandleMap |
| typedef ResourceHandleMap::value_type | ResourceHandleMapValue |
| typedef std::vector< T > | ResourceTable |
Private Attributes | |
| std::string | baseDir |
| ResourceHandleMap | handles |
| NameMap | loadedResources |
| ResourceTable | resources |
|
|||||
|
Definition at line 57 of file resmanager.h. |
|
|||||
|
Definition at line 60 of file resmanager.h. |
|
|||||
|
Definition at line 56 of file resmanager.h. |
|
|||||
|
Definition at line 59 of file resmanager.h. |
|
|||||
|
Definition at line 55 of file resmanager.h. |
|
|||||
|
Definition at line 52 of file resmanager.h. |
|
|||||||||
|
|
|
||||||||||
|
Definition at line 49 of file resmanager.h. References ResourceManager< T >::baseDir. 00049 : baseDir(_baseDir) {};
|
|
|||||||||
|
|
|
||||||||||
|
Definition at line 83 of file resmanager.h. References ResourceManager< T >::baseDir, ResourceManager< T >::handles, ResourceManager< T >::loadedResources, ResourceLoaded, ResourceLoadingFailed, ResourceNotLoaded, and ResourceManager< T >::resources. Referenced by Body::computeLocations(), CreateOrbit(), ExactPlanetPickTraversal(), MultiResTexture::find(), GLSL_RenderContext::makeCurrent(), FixedFunctionRenderContext::makeCurrent(), Nebula::render(), Mesh3DS::render(), and Renderer::renderObject(). 00084 {
00085 if (h >= (int) handles.size() || h < 0)
00086 {
00087 return NULL;
00088 }
00089 else
00090 {
00091 if (resources[h].state == ResourceNotLoaded)
00092 {
00093 resources[h].resolvedName = resources[h].resolve(baseDir);
00094 typename NameMap::iterator iter =
00095 loadedResources.find(resources[h].resolvedName);
00096 if (iter != loadedResources.end())
00097 {
00098 resources[h].resource = iter->second;
00099 resources[h].state = ResourceLoaded;
00100 }
00101 else
00102 {
00103 resources[h].resource = resources[h].load(resources[h].resolvedName);
00104 if (resources[h].resource == NULL)
00105 {
00106 resources[h].state = ResourceLoadingFailed;
00107 }
00108 else
00109 {
00110 resources[h].state = ResourceLoaded;
00111 loadedResources.insert(NameMapValue(resources[h].resolvedName, resources[h].resource));
00112 }
00113 }
00114 }
00115
00116 if (resources[h].state == ResourceLoaded)
00117 return resources[h].resource;
00118 else
00119 return NULL;
00120 }
00121 }
|
|
||||||||||
|
Definition at line 67 of file resmanager.h. References ResourceManager< T >::handles, and ResourceManager< T >::resources. Referenced by Convert3DSMesh(), ConvertToVertexList(), convertToVertexList(), createBumpMap(), CreateOrbit(), CreatePlanet(), StarDatabase::createStar(), createTexture(), StarDetails::InitializeStarTextures(), Nebula::load(), BinaryModelLoader::loadMaterial(), AsciiModelLoader::loadMaterial(), and MultiResTexture::setTexture(). 00068 {
00069 typename ResourceHandleMap::iterator iter = handles.find(info);
00070 if (iter != handles.end())
00071 {
00072 return iter->second;
00073 }
00074 else
00075 {
00076 ResourceHandle h = handles.size();
00077 resources.insert(resources.end(), info);
00078 handles.insert(ResourceHandleMapValue(info, h));
00079 return h;
00080 }
00081 }
|
|
||||||||||
|
Definition at line 123 of file resmanager.h. References ResourceManager< T >::handles, and ResourceManager< T >::resources. Referenced by BinaryModelWriter::writeMaterial(), and AsciiModelWriter::writeMaterial(). 00124 {
00125 if (h >= (int) handles.size() || h < 0)
00126 return NULL;
00127 else
00128 return &resources[h];
00129 }
|
|
|||||
|
Definition at line 45 of file resmanager.h. Referenced by ResourceManager< T >::find(), and ResourceManager< T >::ResourceManager(). |
|
|||||
|
Definition at line 63 of file resmanager.h. Referenced by ResourceManager< T >::find(), ResourceManager< T >::getHandle(), and ResourceManager< T >::getResourceInfo(). |
|
|||||
|
Definition at line 64 of file resmanager.h. Referenced by ResourceManager< T >::find(). |
|
|||||
|
Definition at line 62 of file resmanager.h. Referenced by ResourceManager< T >::find(), ResourceManager< T >::getHandle(), and ResourceManager< T >::getResourceInfo(). |
1.4.1