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

Ogre::GLHardwareBufferManager Class Reference

Implementation of HardwareBufferManager for OpenGL. More...

#include <OgreGLHardwareBufferManager.h>

Inheritance diagram for Ogre::GLHardwareBufferManager:

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

Collaboration graph
[legend]
List of all members.

Public Methods

 GLHardwareBufferManager ()
 ~GLHardwareBufferManager ()
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.

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

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

GLenum getGLUsage (unsigned int usage)
 Utility function to get the correct GL usage based on HBU's.

GLenum getGLType (unsigned int type)
 Utility function to get the correct GL type based on VET's.

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

Implementation of HardwareBufferManager for OpenGL.

Definition at line 34 of file OgreGLHardwareBufferManager.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::GLHardwareBufferManager::GLHardwareBufferManager  
 

Definition at line 32 of file OgreGLHardwareBufferManager.cpp.

Ogre::GLHardwareBufferManager::~GLHardwareBufferManager  
 

Definition at line 36 of file OgreGLHardwareBufferManager.cpp.

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


Member Function Documentation

HardwareIndexBufferSharedPtr Ogre::GLHardwareBufferManager::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 55 of file OgreGLHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::HardwareIndexBufferSharedPtr.

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

Creates a vertex buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 42 of file OgreGLHardwareBufferManager.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::GLHardwareBufferManager::createVertexDeclaration void    [virtual]
 

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

Reimplemented from Ogre::HardwareBufferManager.

Definition at line 68 of file OgreGLHardwareBufferManager.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(), Ogre::GLDefaultHardwareBufferManager::~GLDefaultHardwareBufferManager(), ~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(), Ogre::GLDefaultHardwareBufferManager::~GLDefaultHardwareBufferManager(), ~GLHardwareBufferManager(), and Ogre::HardwareBufferManager::~HardwareBufferManager().

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

Destroy a hardware index buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 63 of file OgreGLHardwareBufferManager.cpp.

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

Destroy a hardware vertex buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 49 of file OgreGLHardwareBufferManager.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::GLHardwareBufferManager::destroyVertexDeclaration VertexDeclaration   decl [virtual]
 

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

Reimplemented from Ogre::HardwareBufferManager.

Definition at line 75 of file OgreGLHardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::mVertexDeclarations.

GLenum Ogre::GLHardwareBufferManager::getGLType unsigned int    type [static]
 

Utility function to get the correct GL type based on VET's.

Definition at line 94 of file OgreGLHardwareBufferManager.cpp.

References Ogre::VET_COLOUR, Ogre::VET_FLOAT1, Ogre::VET_FLOAT2, Ogre::VET_FLOAT3, Ogre::VET_FLOAT4, Ogre::VET_SHORT1, Ogre::VET_SHORT2, Ogre::VET_SHORT3, and Ogre::VET_SHORT4.

GLenum Ogre::GLHardwareBufferManager::getGLUsage unsigned int    usage [static]
 

Utility function to get the correct GL usage based on HBU's.

Definition at line 81 of file OgreGLHardwareBufferManager.cpp.

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(), createVertexDeclaration(), Ogre::D3D9HardwareBufferManager::createVertexDeclaration(), Ogre::HardwareBufferManager::destroyAllDeclarations(), Ogre::D3D9HardwareBufferManager::destroyAllDeclarations(), Ogre::HardwareBufferManager::destroyVertexDeclaration(), 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:34 2004