Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Ogre::Resource Class Reference

Abstract class reprensenting a loadable resource (e.g. More...

#include <OgreResource.h>

Inheritance diagram for Ogre::Resource:

Inheritance graph
[legend]
List of all members.

Public Methods

 Resource ()
 Basic constructor.

virtual ~Resource ()
 Virtual destructor.

virtual void load ()=0
 Loads the resource, if it is not already.

virtual void unload ()
 Unloads the resource, but retains data to recreate.

virtual size_t getSize (void) const
 Retrieves info about the size of the resource.

virtual void touch (void)
 'Touches' the resource to indicate it has been used.

time_t getLastAccess (void) const
 Gets the last time the resource was 'touched'.

const StringgetName (void) const
 Gets resource name.

ResourceHandle getHandle (void) const
bool isLoaded (void) const
 Returns true if the Resource has been loaded, false otherwise.

virtual void destroy ()
 A method to make the resource delete itself.


Protected Attributes

String mName
ResourceHandle mHandle
bool mIsLoaded
time_t mLastAccess
size_t mSize

Friends

class ResourceManager

Detailed Description

Abstract class reprensenting a loadable resource (e.g.

textures, sounds etc)

Remarks:
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 mName and optionally mSize. 2. The load() and unload() methods - mSize must be set after load() Each must check & update the mIsLoaded flag.

Definition at line 52 of file OgreResource.h.


Constructor & Destructor Documentation

Ogre::Resource::Resource  
 

Basic constructor.

@warn Subclasses must init mName, mHandle and mSize!

Definition at line 67 of file OgreResource.h.

virtual Ogre::Resource::~Resource   [virtual]
 

Virtual destructor.

Shouldn't need to be overloaded, as the resource deallocation code should reside in unload()

See also:
Resource::unload()

Definition at line 77 of file OgreResource.h.


Member Function Documentation

virtual void Ogre::Resource::destroy void    [virtual]
 

A method to make the resource delete itself.

Note:
This exists because Resource objects could be created in other processes, and they need to be destroyed in the process that created them.

Definition at line 137 of file OgreResource.h.

ResourceHandle Ogre::Resource::getHandle void    const
 

Definition at line 120 of file OgreResource.h.

References Ogre::ResourceHandle.

Referenced by Ogre::Material::clone(), Ogre::BspLevel::loadQuake3Level(), and Ogre::ResourceManager::unload().

time_t Ogre::Resource::getLastAccess void    const
 

Gets the last time the resource was 'touched'.

Definition at line 108 of file OgreResource.h.

const String& Ogre::Resource::getName void    const
 

Gets resource name.

Reimplemented in Ogre::Material, and Ogre::Overlay.

Definition at line 115 of file OgreResource.h.

Referenced by Ogre::D3D9Texture::_loadCubeTex(), Ogre::Mesh::_notifySkeleton(), Ogre::ResourceManager::add(), Ogre::PopupMenuGuiElement::addListItem(), Ogre::ListGuiElement::addListItem(), Ogre::PopupMenuGuiElement::addMenuItem(), Ogre::MeshManager::createPrefabPlane(), Ogre::TTYGuiElement::getFontName(), Ogre::TextAreaGuiElement::getFontName(), Ogre::PopupMenuGuiElement::getListItemName(), Ogre::ListGuiElement::getListItemName(), Ogre::GpuProgramUsage::getProgramName(), Ogre::MeshSerializer::importMesh(), Ogre::GLTexture::load(), Ogre::TextureManager::loadImage(), Ogre::TextureManager::loadRawData(), Ogre::FontManager::logBadAttrib(), Ogre::MeshSerializerImpl_v1::readMaterial(), Ogre::MeshSerializerImpl::readMeshLodInfo(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageManual(), Ogre::PopupMenuGuiElement::removeListItem(), Ogre::ListGuiElement::removeListItem(), Ogre::SceneManager::setSkyBox(), Ogre::SceneManager::setSkyDome(), and Ogre::ResourceManager::unload().

virtual size_t Ogre::Resource::getSize void    const [virtual]
 

Retrieves info about the size of the resource.

Definition at line 93 of file OgreResource.h.

Referenced by Ogre::ResourceManager::unload().

bool Ogre::Resource::isLoaded void    const
 

Returns true if the Resource has been loaded, false otherwise.

Definition at line 127 of file OgreResource.h.

Referenced by Ogre::GpuProgramUsage::_load(), Ogre::SceneManager::deriveShadowCasterPass(), Ogre::SceneManager::deriveShadowReceiverPass(), Ogre::Technique::isLoaded(), Ogre::D3D9Texture::load(), Ogre::D3D9Texture::unload(), and Ogre::D3D9Texture::~D3D9Texture().

virtual void Ogre::Resource::load   [pure virtual]
 

Loads the resource, if it is not already.

Implemented in Ogre::ArchiveEx, Ogre::DynLib, Ogre::Font, Ogre::GpuProgram, Ogre::HighLevelGpuProgram, Ogre::Material, Ogre::Mesh, Ogre::Overlay, Ogre::PatchMesh, Ogre::Skeleton, Ogre::SkeletonInstance, Ogre::StringResource, Ogre::Zip, Ogre::BspLevel, Ogre::Quake3Shader, Ogre::D3DTexture, Ogre::D3D9GpuProgram, Ogre::D3D9Texture, and Ogre::GLTexture.

Referenced by Ogre::ResourceManager::load().

virtual void Ogre::Resource::touch void    [virtual]
 

'Touches' the resource to indicate it has been used.

Reimplemented in Ogre::Material.

Definition at line 100 of file OgreResource.h.

Referenced by Ogre::Mesh::clone(), Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::MeshManager::createCurvedPlane(), Ogre::MeshManager::createPlane(), and Ogre::ResourceManager::load().

virtual void Ogre::Resource::unload void    [virtual]
 

Unloads the resource, but retains data to recreate.

Reimplemented in Ogre::ArchiveEx, Ogre::DynLib, Ogre::Font, Ogre::HighLevelGpuProgram, Ogre::Material, Ogre::Mesh, Ogre::Overlay, Ogre::Skeleton, Ogre::SkeletonInstance, Ogre::Zip, Ogre::BspLevel, Ogre::Quake3Shader, Ogre::D3DTexture, Ogre::D3D9GpuVertexProgram, Ogre::D3D9GpuFragmentProgram, Ogre::D3D9Texture, Ogre::GLGpuNvparseProgram, Ogre::GLArbGpuProgram, and Ogre::GLTexture.

Definition at line 89 of file OgreResource.h.

Referenced by Ogre::GpuProgram::load(), Ogre::D3D9GpuProgram::load(), Ogre::ResourceManager::unload(), Ogre::HighLevelGpuProgram::unload(), and Ogre::D3D7RenderTexture::~D3D7RenderTexture().


Friends And Related Function Documentation

friend class ResourceManager [friend]
 

Definition at line 54 of file OgreResource.h.


Member Data Documentation

ResourceHandle Ogre::Resource::mHandle [protected]
 

Definition at line 57 of file OgreResource.h.

Referenced by Ogre::ResourceManager::add(), Ogre::Material::clone(), Ogre::Material::copyDetailsTo(), and Ogre::Material::operator=().

bool Ogre::Resource::mIsLoaded [protected]
 

Definition at line 58 of file OgreResource.h.

Referenced by Ogre::D3D9Texture::_initMembers(), Ogre::D3D9Texture::_loadCubeTex(), Ogre::D3D9Texture::_loadNormTex(), Ogre::D3D9Texture::_loadVolumeTex(), Ogre::Material::_notifyNeedsRecompile(), Ogre::Material::clone(), Ogre::D3DTexture::createSurface2D(), Ogre::D3DTexture::createSurface3D(), Ogre::D3D9Texture::D3D9Texture(), Ogre::D3DTexture::D3DTexture(), Ogre::DynLib::DynLib(), Ogre::Zip::load(), Ogre::SkeletonInstance::load(), Ogre::Skeleton::load(), Ogre::PatchMesh::load(), Ogre::Mesh::load(), Ogre::Material::load(), Ogre::HighLevelGpuProgram::load(), Ogre::GpuProgram::load(), Ogre::GLTexture::load(), Ogre::Font::load(), Ogre::DynLib::load(), Ogre::D3D9Texture::load(), Ogre::D3D9GpuProgram::load(), Ogre::D3DTexture::load(), Ogre::BspLevel::load(), Ogre::D3D9Texture::loadImage(), Ogre::D3DTexture::loadImage(), Ogre::D3DTexture::loadImage3D(), Ogre::GLTexture::loadImages(), Ogre::Material::Material(), Ogre::Material::operator=(), Ogre::Skeleton::unload(), Ogre::Mesh::unload(), Ogre::Material::unload(), Ogre::HighLevelGpuProgram::unload(), Ogre::GLTexture::unload(), Ogre::Font::unload(), Ogre::DynLib::unload(), Ogre::D3D9Texture::unload(), Ogre::D3DTexture::unload(), and Ogre::BspLevel::~BspLevel().

time_t Ogre::Resource::mLastAccess [protected]
 

Definition at line 59 of file OgreResource.h.

Referenced by Ogre::Material::operator=().

String Ogre::Resource::mName [protected]
 

Definition at line 56 of file OgreResource.h.

Referenced by Ogre::Skeleton::_dumpContents(), Ogre::Mesh::_rationaliseBoneAssignments(), Ogre::BspLevel::BspLevel(), Ogre::Mesh::buildEdgeList(), Ogre::Mesh::buildTangentVectors(), Ogre::Material::clone(), Ogre::Material::compile(), Ogre::Material::copyDetailsTo(), Ogre::Quake3Shader::createAsMaterial(), Ogre::D3D9HLSLProgram::createLowLevelImpl(), Ogre::CgProgram::createLowLevelImpl(), Ogre::Font::createTextureFromFont(), Ogre::D3D9Texture::D3D9Texture(), Ogre::D3DTexture::D3DTexture(), Ogre::DynLib::DynLib(), Ogre::Font::Font(), Ogre::Mesh::generateLodLevels(), Ogre::Material::getBestTechnique(), Ogre::Overlay::getName(), Ogre::Material::getName(), Ogre::GLTexture::GLTexture(), Ogre::GpuProgram::GpuProgram(), Ogre::Zip::load(), Ogre::Skeleton::load(), Ogre::Mesh::load(), Ogre::GLTexture::load(), Ogre::Font::load(), Ogre::DynLib::load(), Ogre::D3DTexture::load(), Ogre::BspLevel::load(), Ogre::D3D9GpuFragmentProgram::loadFromMicrocode(), Ogre::D3D9GpuVertexProgram::loadFromMicrocode(), Ogre::GLArbGpuProgram::loadFromSource(), Ogre::D3D9HLSLProgram::loadFromSource(), Ogre::D3D9GpuProgram::loadFromSource(), Ogre::CgProgram::loadFromSource(), Ogre::GLTexture::loadImages(), Ogre::Material::Material(), Ogre::Mesh::Mesh(), Ogre::Material::operator=(), Ogre::Overlay::Overlay(), Ogre::Quake3Shader::Quake3Shader(), Ogre::CgProgram::selectProfile(), Ogre::Mesh::setSkeletonName(), Ogre::Skeleton::Skeleton(), Ogre::StringResource::StringResource(), Ogre::Zip::unload(), Ogre::DynLib::unload(), Ogre::CgProgram::unloadImpl(), and Ogre::Zip::Zip().

size_t Ogre::Resource::mSize [protected]
 

Definition at line 60 of file OgreResource.h.

Referenced by Ogre::D3D9Texture::_setFinalAttributes(), Ogre::D3DTexture::loadImage(), Ogre::D3DTexture::loadImage3D(), Ogre::GLTexture::loadImages(), and Ogre::Material::operator=().


The documentation for this class was generated from the following file:

Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:27:04 2004