Drag[en]gine Game Engine
1.21
|
Resource Loader. More...
#include <deResourceLoader.h>
Public Types | |
enum | eResourceType { ertAnimation , ertFont , ertImage , ertLanguagePack , ertModel , ertOcclusionMesh , ertRig , ertSkin , ertSound , ertVideo } |
Resource types. More... | |
Public Member Functions | |
Constructors and Destructors | |
deResourceLoader (deEngine &engine) | |
Create resource loader. More... | |
~deResourceLoader () | |
Clean up resource loader. More... | |
Management | |
bool | GetOutputDebugMessages () const |
Debug messages are logger. More... | |
void | SetOutputDebugMessages (bool outputDebugMessages) |
Set if debug messages are logged. More... | |
deResourceLoaderTask * | AddLoadRequest (deVirtualFileSystem *vfs, const char *path, eResourceType resourceType) |
Add request for loading a resource. More... | |
deResourceLoaderTask * | AddSaveRequest (deVirtualFileSystem *vfs, const char *path, deFileResource *resource) |
Add request for saving a resource. More... | |
bool | NextFinishedRequest (deResourceLoaderInfo &info) |
Information about next finished request. More... | |
void | RemoveAllTasks () |
Stop loading and remove all tasks. More... | |
Internal use only | |
| |
void | FinishTask (deResourceLoaderTask *task) |
Resource Loader.
Loads resources asynchronously. To load a resource a scripting module places a load request. Requests are processed using Parallel Processing system of the game engine. The scripting module has to query the resource loader during each frame update for new entries in the retrieval queue. Once there are no more entries in the queue the scripting module can carry on with the fram update.
Requests for the same resource are grouped together and placed in the retrieval queue only once. The scripting module is responsible to track multiple requests for the same resource. A resource is uniquely identified by the path and resource type. This information are also returned in retrieval queries and can be used to match up with one or more requests made by the game scripts.
Loading certain resources can add internal loading requests not started by the scripting module. The scripting module has to deal with resources finished loading which have not been requested.
Resource loading is supported for the following resource types:
deResourceLoader::deResourceLoader | ( | deEngine & | engine | ) |
Create resource loader.
deResourceLoader::~deResourceLoader | ( | ) |
Clean up resource loader.
deResourceLoaderTask* deResourceLoader::AddLoadRequest | ( | deVirtualFileSystem * | vfs, |
const char * | path, | ||
eResourceType | resourceType | ||
) |
Add request for loading a resource.
[in] | vfs | Virtual file system to use. |
[in] | path | Path to use. |
[in] | resourceType | Type of resource to load |
deeInvalidParam | vfs is NULL. |
deeInvalidParam | path is NULL. |
deResourceLoaderTask* deResourceLoader::AddSaveRequest | ( | deVirtualFileSystem * | vfs, |
const char * | path, | ||
deFileResource * | resource | ||
) |
Add request for saving a resource.
void deResourceLoader::FinishTask | ( | deResourceLoaderTask * | task | ) |
|
inline |
Debug messages are logger.
bool deResourceLoader::NextFinishedRequest | ( | deResourceLoaderInfo & | info | ) |
Information about next finished request.
true | A request finished. Information have been written to info. |
false | No request finished. info is unchanged. |
void deResourceLoader::RemoveAllTasks | ( | ) |
Stop loading and remove all tasks.
Used by the game engine to clear pending tasks upon cleanup avoiding problems.
void deResourceLoader::SetOutputDebugMessages | ( | bool | outputDebugMessages | ) |
Set if debug messages are logged.