Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members |
#include <Resource.h>
Public Member Functions | |
void | addResourceEventReceiver (ResourceEventReceiver *newEventReceiver) |
const std::string & | getFilename () const |
const ResourceType & | getResourceType () const |
Gets resource type. | |
u32 | getSize () |
Retrieves info about the size of the resource. | |
const ResourceState & | getState () const |
bool | load () |
bool | reload () |
void | removeResourceEventReceiver (ResourceEventReceiver *oldEventReceiver) |
Resource (const std::string &name, Serializer *serializer=NULL) | |
void | unload () |
virtual | ~Resource () |
Protected Member Functions | |
void | fireLoaded () |
internal method for firing events. | |
void | fireUnloaded () |
internal method for firing events. | |
void | initProperties () |
virtual bool | loadImpl () |
virtual void | unloadImpl () |
virtual void | updateImpl (f32 elapsedTime) |
Protected Attributes | |
std::list < ResourceEventReceiver * > | mAlreadyLoadedEventReceivers |
DataStream * | mDataStream |
std::string | mFilename |
ResourceEvent * | mResourceEvent |
std::list < ResourceEventReceiver * > | mResourceEventReceivers |
ResourceType | mResourceType |
Serializer * | mSerializer |
u32 | mSize |
ResourceState | mState |
Friends | |
class | ResourceManager |
class | Serializer |
Abstract class reprensenting a loadable resource (e.g. textures, sounds etc)
Resources are generally passive constructs, handled through the ResourceManager abstract class for the appropriate subclass. The main thing is that Resources can be loaded or unloaded by the ResourceManager to stay within a defined memory budget. Therefore, all Resources must be able to load, unload (whilst retainin enough info about themselves to be reloaded later), and state how big they are.
Subclasses must implement: 1. A constructor, with at least a mandatory name param. This constructor must set mID and optionally mSize. 2. The load() and unload() methods - mSize must be set after load() Each must check & update the mIsLoaded flag.
resource::Resource::Resource | ( | const std::string & | name, |
Serializer * | serializer = NULL |
||
) |
resource::Resource::~Resource | ( | ) | [virtual] |
References mDataStream, and mResourceEvent.
void resource::Resource::addResourceEventReceiver | ( | ResourceEventReceiver * | newEventReceiver | ) |
References mAlreadyLoadedEventReceivers, mResourceEventReceivers, mState, and resource::RS_LOADED.
Referenced by render::Model::Model(), render::Model::setMeshData(), sound::Sound::setSoundData(), and sound::Sound::Sound().
void resource::Resource::fireLoaded | ( | ) | [protected] |
internal method for firing events.
References mResourceEvent, mResourceEventReceivers, and resource::ResourceEvent::source.
Referenced by load().
void resource::Resource::fireUnloaded | ( | ) | [protected] |
internal method for firing events.
References mResourceEvent, mResourceEventReceivers, and resource::ResourceEvent::source.
Referenced by unload().
const std::string & resource::Resource::getFilename | ( | ) | const |
References mFilename.
Referenced by resource::ResourceManager::removeResource().
const ResourceType & resource::Resource::getResourceType | ( | ) | const |
Gets resource type.
References mResourceType.
Referenced by resource::ResourceManager::removeAllResources(), and resource::ResourceManager::removeResource().
u32 resource::Resource::getSize | ( | ) |
Retrieves info about the size of the resource.
References mSize.
Referenced by resource::ResourceManager::loadResource(), resource::ResourceManager::loadResources(), and resource::ResourceManager::unloadResource().
const ResourceState & resource::Resource::getState | ( | ) | const |
References mState.
Referenced by resource::ResourceManager::removeResource(), and render::TextOverlay::updatePositionBinding().
void resource::Resource::initProperties | ( | ) | [protected] |
Reimplemented in physics::BodyData, physics::Material, render::Font, render::Material, render::MeshData, render::Shader, render::Texture, script::Script, and sound::SoundData.
References resource::ResourceManager::getInstance(), engine::Object::mChangeableName, mDataStream, mFilename, engine::Object::mName, mSize, mState, resource::ResourceManager::openResource(), resource::RS_UNLOADED, and resource::DataStream::size().
Referenced by Resource().
bool resource::Resource::load | ( | ) |
References fireLoaded(), resource::ResourceManager::getInstance(), engine::Object::initialize(), loadImpl(), mDataStream, mFilename, mSize, mState, resource::ResourceManager::openResource(), resource::RS_LOADED, resource::RS_LOADING, resource::RS_UNLOADED, resource::DataStream::size(), and unloadImpl().
Referenced by resource::ResourceManager::loadResource(), and reload().
bool resource::Resource::loadImpl | ( | ) | [protected, virtual] |
Reimplemented in render::Shader, and script::Script.
References resource::Serializer::importResource(), mDataStream, and mSerializer.
Referenced by load().
bool resource::Resource::reload | ( | ) |
References load(), and unload().
Referenced by resource::ResourceManager::reloadResource().
void resource::Resource::removeResourceEventReceiver | ( | ResourceEventReceiver * | oldEventReceiver | ) |
References mResourceEventReceivers.
Referenced by render::Model::setMeshData(), sound::Sound::setSoundData(), render::Model::~Model(), and sound::Sound::~Sound().
void resource::Resource::unload | ( | ) |
References fireUnloaded(), mState, resource::RS_UNLOADED, resource::RS_UNLOADING, engine::Object::uninitialize(), and unloadImpl().
Referenced by reload(), and resource::ResourceManager::unloadResource().
void resource::Resource::unloadImpl | ( | ) | [protected, virtual] |
Reimplemented in physics::BodyData, physics::Material, render::Material, render::MeshData, render::Shader, render::Texture, scene::Scene, script::Script, and sound::SoundData.
void resource::Resource::updateImpl | ( | f32 | elapsedTime | ) | [protected, virtual] |
if there were ResourceEventReceivers added when the resource was already loaded then send them the loaded event
Reimplemented from engine::Object.
References mAlreadyLoadedEventReceivers, mResourceEvent, and resource::ResourceEvent::source.
friend class ResourceManager [friend] |
friend class Serializer [friend] |
std::list<ResourceEventReceiver*> resource::Resource::mAlreadyLoadedEventReceivers [protected] |
Referenced by addResourceEventReceiver(), and updateImpl().
DataStream* resource::Resource::mDataStream [protected] |
Referenced by initProperties(), load(), script::Script::loadImpl(), loadImpl(), render::Shader::loadImpl(), and ~Resource().
std::string resource::Resource::mFilename [protected] |
Referenced by getFilename(), initProperties(), and load().
ResourceEvent* resource::Resource::mResourceEvent [protected] |
Referenced by fireLoaded(), fireUnloaded(), Resource(), updateImpl(), and ~Resource().
std::list<ResourceEventReceiver*> resource::Resource::mResourceEventReceivers [protected] |
Referenced by addResourceEventReceiver(), fireLoaded(), fireUnloaded(), and removeResourceEventReceiver().
ResourceType resource::Resource::mResourceType [protected] |
Referenced by physics::BodyData::BodyData(), render::Font::Font(), getResourceType(), render::Material::Material(), physics::Material::Material(), render::MeshData::MeshData(), Resource(), scene::Scene::Scene(), script::Script::Script(), render::Shader::Shader(), sound::SoundData::SoundData(), and render::Texture::Texture().
Serializer* resource::Resource::mSerializer [protected] |
Referenced by loadImpl(), and Resource().
u32 resource::Resource::mSize [protected] |
Reimplemented in render::Texture.
Referenced by getSize(), initProperties(), and load().
ResourceState resource::Resource::mState [protected] |
Referenced by addResourceEventReceiver(), getState(), initProperties(), load(), and unload().
The KG Game Engine
Documentation © 2006-2011 by Kat'Oun. Generated on Sat Jul 2 2011 00:50:10 by
Doxygen
(1.7.4)
|