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

Ogre::D3D9HardwareBufferManager Class Reference

Implementation of HardwareBufferManager for D3D9. More...

#include <OgreD3D9HardwareBufferManager.h>

Inheritance diagram for Ogre::D3D9HardwareBufferManager:

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

Collaboration graph
[legend]
List of all members.

Public Methods

 D3D9HardwareBufferManager (LPDIRECT3DDEVICE9 device)
 ~D3D9HardwareBufferManager ()
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

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.

void destroyAllDeclarations (void)
virtual void destroyAllBindings (void)

Protected Attributes

LPDIRECT3DDEVICE9 mlpD3DDevice
VertexDeclarationList mVertexDeclarations
VertexBufferBindingList mVertexBufferBindings
VertexBufferList mVertexBuffers
IndexBufferList mIndexBuffers

Static Protected Attributes

HardwareBufferManagerms_Singleton = 0

Detailed Description

Implementation of HardwareBufferManager for D3D9.

Definition at line 34 of file OgreD3D9HardwareBufferManager.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::D3D9HardwareBufferManager::D3D9HardwareBufferManager LPDIRECT3DDEVICE9    device
 

Definition at line 32 of file OgreD3D9HardwareBufferManager.cpp.

Ogre::D3D9HardwareBufferManager::~D3D9HardwareBufferManager  
 

Definition at line 37 of file OgreD3D9HardwareBufferManager.cpp.

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


Member Function Documentation

HardwareIndexBufferSharedPtr Ogre::D3D9HardwareBufferManager::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 70 of file OgreD3D9HardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::HardwareIndexBufferSharedPtr, and mlpD3DDevice.

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

Creates a vertex buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 45 of file OgreD3D9HardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::HardwareVertexBufferSharedPtr, and mlpD3DDevice.

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::D3D9HardwareBufferManager::createVertexDeclaration void    [virtual]
 

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

Reimplemented from Ogre::HardwareBufferManager.

Definition at line 85 of file OgreD3D9HardwareBufferManager.cpp.

References mlpD3DDevice, and 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 ~D3D9HardwareBufferManager(), Ogre::DefaultHardwareBufferManager::~DefaultHardwareBufferManager(), Ogre::GLDefaultHardwareBufferManager::~GLDefaultHardwareBufferManager(), Ogre::GLHardwareBufferManager::~GLHardwareBufferManager(), and Ogre::HardwareBufferManager::~HardwareBufferManager().

void Ogre::D3D9HardwareBufferManager::destroyAllDeclarations void    [protected, virtual]
 

Reimplemented from Ogre::HardwareBufferManager.

Definition at line 58 of file OgreD3D9HardwareBufferManager.cpp.

References Ogre::HardwareBufferManager::mVertexDeclarations.

Referenced by ~D3D9HardwareBufferManager().

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

Destroy a hardware index buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 80 of file OgreD3D9HardwareBufferManager.cpp.

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

Destroy a hardware vertex buffer.

Implements Ogre::HardwareBufferManager.

Definition at line 53 of file OgreD3D9HardwareBufferManager.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::D3D9HardwareBufferManager::destroyVertexDeclaration VertexDeclaration   decl [virtual]
 

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

Reimplemented from Ogre::HardwareBufferManager.

Definition at line 93 of file OgreD3D9HardwareBufferManager.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().

LPDIRECT3DDEVICE9 Ogre::D3D9HardwareBufferManager::mlpD3DDevice [protected]
 

Definition at line 37 of file OgreD3D9HardwareBufferManager.h.

Referenced by createIndexBuffer(), createVertexBuffer(), and createVertexDeclaration().

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(), createVertexDeclaration(), Ogre::HardwareBufferManager::destroyAllDeclarations(), destroyAllDeclarations(), Ogre::HardwareBufferManager::destroyVertexDeclaration(), Ogre::GLHardwareBufferManager::destroyVertexDeclaration(), and 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:09 2004