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

Ogre::GLDefaultHardwareBufferManager Class Reference

Specialisation of HardwareBufferManager to emulate hardware buffers. More...

#include <OgreGLDefaultHardwareBufferManager.h>

Inheritance diagram for Ogre::GLDefaultHardwareBufferManager:

Inheritance graph
[legend]
Collaboration diagram for Ogre::GLDefaultHardwareBufferManager:

Collaboration graph
[legend]
List of all members.

Public Methods

 GLDefaultHardwareBufferManager ()
 ~GLDefaultHardwareBufferManager ()
HardwareVertexBufferSharedPtr createVertexBuffer (size_t vertexSize, size_t numVerts, HardwareBuffer::Usage usage, bool useShadowBuffer=false)
 Creates a vertex buffer.

HardwareIndexBufferSharedPtr createIndexBuffer (HardwareIndexBuffer::IndexType itype, size_t numIndexes, HardwareBuffer::Usage usage, bool useShadowBuffer=false)
 Create a hardware vertex buffer.

virtual VertexDeclarationcreateVertexDeclaration (void)
 Creates a vertex declaration, may be overridden by certain rendering APIs.

virtual void destroyVertexDeclaration (VertexDeclaration *decl)
 Destroys a vertex declaration, may be overridden by certain rendering APIs.

virtual VertexBufferBindingcreateVertexBufferBinding (void)
 Creates a new VertexBufferBinding.

virtual void destroyVertexBufferBinding (VertexBufferBinding *binding)
 Destroys a VertexBufferBinding.


Static Public Methods

HardwareBufferManagergetSingleton (void)
 Override standard Singleton retrieval.

HardwareBufferManagergetSingletonPtr (void)

Protected Types

typedef std::list< VertexDeclaration * > VertexDeclarationList
typedef std::list< VertexBufferBinding * > VertexBufferBindingList
typedef std::set< HardwareVertexBuffer * > VertexBufferList
typedef std::set< HardwareIndexBuffer * > IndexBufferList

Protected Methods

void destroyVertexBuffer (HardwareVertexBuffer *buf)
 Destroy a hardware vertex buffer.

void destroyIndexBuffer (HardwareIndexBuffer *buf)
 Destroy a hardware index buffer.

virtual void destroyAllDeclarations (void)
virtual void destroyAllBindings (void)

Protected Attributes

VertexDeclarationList mVertexDeclarations
VertexBufferBindingList mVertexBufferBindings
VertexBufferList mVertexBuffers
IndexBufferList mIndexBuffers

Static Protected Attributes

HardwareBufferManagerms_Singleton = 0

Detailed Description

Specialisation of HardwareBufferManager to emulate hardware buffers.

Remarks:
You might want to instantiate this class if you want to utilise classes like MeshSerializer without having initialised the rendering system (which is required to create a 'real' hardware buffer manager.

Definition at line 96 of file OgreGLDefaultHardwareBufferManager.h.


Member Typedef Documentation

typedef std::set<HardwareIndexBuffer*> Ogre::HardwareBufferManager::IndexBufferList [protected, inherited]
 

Definition at line 48 of file OgreHardwareBufferManager.h.

typedef std::list<VertexBufferBinding*> Ogre::HardwareBufferManager::VertexBufferBindingList [protected, inherited]
 

Definition at line 46 of file OgreHardwareBufferManager.h.

typedef std::set<HardwareVertexBuffer*> Ogre::HardwareBufferManager::VertexBufferList [protected, inherited]
 

Definition at line 47 of file OgreHardwareBufferManager.h.

typedef std::list<VertexDeclaration*> Ogre::HardwareBufferManager::VertexDeclarationList [protected, inherited]
 

Definition at line 45 of file OgreHardwareBufferManager.h.


Constructor & Destructor Documentation

Ogre::GLDefaultHardwareBufferManager::GLDefaultHardwareBufferManager  
 

Definition at line 143 of file OgreGLDefaultHardwareBufferManager.cpp.

Ogre::GLDefaultHardwareBufferManager::~GLDefaultHardwareBufferManager  
 

Definition at line 147 of file OgreGLDefaultHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::destroyAllBindings(), and Ogre::HardwareBufferManager::destroyAllDeclarations().


Member Function Documentation

HardwareIndexBufferSharedPtr Ogre::GLDefaultHardwareBufferManager::createIndexBuffer HardwareIndexBuffer::IndexType    itype,
size_t    numIndexes,
HardwareBuffer::Usage    usage,
bool    useShadowBuffer = false
[virtual]
 

Create a hardware vertex buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 162 of file OgreGLDefaultHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::HardwareIndexBufferSharedPtr.

HardwareVertexBufferSharedPtr Ogre::GLDefaultHardwareBufferManager::createVertexBuffer size_t    vertexSize,
size_t    numVerts,
HardwareBuffer::Usage    usage,
bool    useShadowBuffer = false
[virtual]
 

Creates a vertex buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 154 of file OgreGLDefaultHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::HardwareVertexBufferSharedPtr.

VertexBufferBinding * Ogre::HardwareBufferManager::createVertexBufferBinding void    [virtual, inherited]
 

Creates a new VertexBufferBinding.

Definition at line 65 of file OgreHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::mVertexBufferBindings.

VertexDeclaration * Ogre::HardwareBufferManager::createVertexDeclaration void    [virtual, inherited]
 

Creates a vertex declaration, may be overridden by certain rendering APIs.

Reimplemented in Ogre::D3D9HardwareBufferManager, and Ogre::GLHardwareBufferManager.

Definition at line 51 of file OgreHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::mVertexDeclarations.

void Ogre::HardwareBufferManager::destroyAllBindings void    [protected, virtual, inherited]
 

Definition at line 89 of file OgreHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::mVertexBufferBindings.

Referenced by Ogre::D3D9HardwareBufferManager::~D3D9HardwareBufferManager(), Ogre::DefaultHardwareBufferManager::~DefaultHardwareBufferManager(), ~GLDefaultHardwareBufferManager(), Ogre::GLHardwareBufferManager::~GLHardwareBufferManager(), and Ogre::HardwareBufferManager::~HardwareBufferManager().

void Ogre::HardwareBufferManager::destroyAllDeclarations void    [protected, virtual, inherited]
 

Reimplemented in Ogre::D3D9HardwareBufferManager.

Definition at line 78 of file OgreHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::mVertexDeclarations.

Referenced by Ogre::DefaultHardwareBufferManager::~DefaultHardwareBufferManager(), ~GLDefaultHardwareBufferManager(), Ogre::GLHardwareBufferManager::~GLHardwareBufferManager(), and Ogre::HardwareBufferManager::~HardwareBufferManager().

void Ogre::GLDefaultHardwareBufferManager::destroyIndexBuffer HardwareIndexBuffer   buf [protected, virtual]
 

Destroy a hardware index buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 138 of file OgreGLDefaultHardwareBufferManager.cpp.

void Ogre::GLDefaultHardwareBufferManager::destroyVertexBuffer HardwareVertexBuffer   buf [protected, virtual]
 

Destroy a hardware vertex buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 133 of file OgreGLDefaultHardwareBufferManager.cpp.

void Ogre::HardwareBufferManager::destroyVertexBufferBinding VertexBufferBinding   binding [virtual, inherited]
 

Destroys a VertexBufferBinding.

Definition at line 72 of file OgreHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::mVertexBufferBindings.

void Ogre::HardwareBufferManager::destroyVertexDeclaration VertexDeclaration   decl [virtual, inherited]
 

Destroys a vertex declaration, may be overridden by certain rendering APIs.

Reimplemented in Ogre::D3D9HardwareBufferManager, and Ogre::GLHardwareBufferManager.

Definition at line 59 of file OgreHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::mVertexDeclarations.

HardwareBufferManager & Ogre::HardwareBufferManager::getSingleton void    [static, inherited]
 

Override standard Singleton retrieval.

Remarks:
Why do we do this? Well, it's because the Singleton implementation is in a .h file, which means it gets compiled into anybody who includes it. This is needed for the Singleton template to work, but we actually only want it compiled into the implementation of the class based on the Singleton, not all of them. If we don't change this, we get link errors when trying to use the Singleton-based class from an outside dll.

This method just delegates to the template version anyway, but the implementation stays in this single compilation unit, preventing link errors.

Reimplemented from Ogre::Singleton< HardwareBufferManager >.

Definition at line 46 of file OgreHardwareBufferManager.cpp.

HardwareBufferManager* Ogre::Singleton< HardwareBufferManager >::getSingletonPtr void    [static, inherited]
 

Definition at line 71 of file OgreSingleton.h.


Member Data Documentation

IndexBufferList Ogre::HardwareBufferManager::mIndexBuffers [protected, inherited]
 

Definition at line 53 of file OgreHardwareBufferManager.h.

Referenced by Ogre::DefaultHardwareBufferManager::createIndexBuffer(), and Ogre::DefaultHardwareBufferManager::destroyIndexBuffer().

HardwareBufferManager * Ogre::Singleton< HardwareBufferManager >::ms_Singleton = 0 [static, protected, inherited]
 

Definition at line 32 of file OgreHardwareBufferManager.cpp.

VertexBufferBindingList Ogre::HardwareBufferManager::mVertexBufferBindings [protected, inherited]
 

Definition at line 51 of file OgreHardwareBufferManager.h.

Referenced by Ogre::HardwareBufferManager::createVertexBufferBinding(), Ogre::HardwareBufferManager::destroyAllBindings(), and Ogre::HardwareBufferManager::destroyVertexBufferBinding().

VertexBufferList Ogre::HardwareBufferManager::mVertexBuffers [protected, inherited]
 

Definition at line 52 of file OgreHardwareBufferManager.h.

Referenced by Ogre::DefaultHardwareBufferManager::createVertexBuffer(), and Ogre::DefaultHardwareBufferManager::destroyVertexBuffer().

VertexDeclarationList Ogre::HardwareBufferManager::mVertexDeclarations [protected, inherited]
 

Definition at line 50 of file OgreHardwareBufferManager.h.

Referenced by Ogre::HardwareBufferManager::createVertexDeclaration(), Ogre::GLHardwareBufferManager::createVertexDeclaration(), Ogre::D3D9HardwareBufferManager::createVertexDeclaration(), Ogre::HardwareBufferManager::destroyAllDeclarations(), Ogre::D3D9HardwareBufferManager::destroyAllDeclarations(), Ogre::HardwareBufferManager::destroyVertexDeclaration(), Ogre::GLHardwareBufferManager::destroyVertexDeclaration(), and Ogre::D3D9HardwareBufferManager::destroyVertexDeclaration().


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

Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:12:31 2004