#include <OgreHardwareBufferManager.h>
Inheritance diagram for Ogre::HardwareBufferManager:
Public Types | |
enum | BufferLicenseType { BLT_MANUAL_RELEASE, BLT_AUTOMATIC_RELEASE } |
Public Methods | |
HardwareBufferManager () | |
virtual | ~HardwareBufferManager () |
virtual HardwareVertexBufferSharedPtr | createVertexBuffer (size_t vertexSize, size_t numVerts, HardwareBuffer::Usage usage, bool useShadowBuffer=false)=0 |
Create a hardware vertex buffer. | |
virtual HardwareIndexBufferSharedPtr | createIndexBuffer (HardwareIndexBuffer::IndexType itype, size_t numIndexes, HardwareBuffer::Usage usage, bool useShadowBuffer=false)=0 |
Create a hardware index buffer. | |
virtual VertexDeclaration * | createVertexDeclaration (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 VertexBufferBinding * | createVertexBufferBinding (void) |
Creates a new VertexBufferBinding. | |
virtual void | destroyVertexBufferBinding (VertexBufferBinding *binding) |
Destroys a VertexBufferBinding. | |
virtual void | registerVertexBufferSourceAndCopy (const HardwareVertexBufferSharedPtr &sourceBuffer, const HardwareVertexBufferSharedPtr ©) |
Registers a vertex buffer as a copy of another. | |
virtual HardwareVertexBufferSharedPtr | allocateVertexBufferCopy (const HardwareVertexBufferSharedPtr &sourceBuffer, BufferLicenseType licenseType, HardwareBufferLicensee *licensee, bool copyData=false) |
Allocates a copy of a given vertex buffer. | |
virtual void | releaseVertexBufferCopy (const HardwareVertexBufferSharedPtr &bufferCopy) |
Manually release a vertex buffer copy for others to subsequently use. | |
virtual void | _releaseBufferCopies (void) |
Internal method for releasing all temporary buffers which have been allocated using BLT_AUTOMATIC_RELEASE; is called by OGRE. | |
virtual void | _forceReleaseBufferCopies (const HardwareVertexBufferSharedPtr &sourceBuffer) |
Internal method that forces the release of copies of a given buffer. | |
Static Public Methods | |
HardwareBufferManager & | getSingleton (void) |
Override standard Singleton retrieval. | |
HardwareBufferManager * | getSingletonPtr (void) |
Override standard Singleton retrieval. | |
Protected Types | |
typedef std::list< VertexDeclaration * > | VertexDeclarationList |
typedef std::list< VertexBufferBinding * > | VertexBufferBindingList |
typedef std::set< HardwareVertexBuffer * > | VertexBufferList |
typedef std::set< HardwareIndexBuffer * > | IndexBufferList |
typedef std::vector< HardwareVertexBufferSharedPtr > | FreeTemporaryVertexBufferList |
List of free temporary vertex buffers. | |
typedef std::map< HardwareVertexBuffer *, FreeTemporaryVertexBufferList * > | FreeTemporaryVertexBufferMap |
Map from original buffer to list of temporary buffers. | |
typedef std::vector< VertexBufferLicense > | TemporaryVertexBufferLicenseList |
List of currently licensed temp buffers. | |
Protected Methods | |
virtual void | destroyVertexBuffer (HardwareVertexBuffer *buf)=0 |
Destroy a hardware vertex buffer, do not call direct. | |
virtual void | destroyIndexBuffer (HardwareIndexBuffer *buf)=0 |
Destroy a hardware index buffer, do not call direct. | |
virtual void | destroyAllDeclarations (void) |
virtual void | destroyAllBindings (void) |
HardwareVertexBufferSharedPtr | makeBufferCopy (const HardwareVertexBufferSharedPtr &source, HardwareBuffer::Usage usage, bool useShadowBuffer) |
Creates a new buffer as a copy of the source, does not copy data. | |
Protected Attributes | |
VertexDeclarationList | mVertexDeclarations |
VertexBufferBindingList | mVertexBufferBindings |
VertexBufferList | mVertexBuffers |
IndexBufferList | mIndexBuffers |
FreeTemporaryVertexBufferMap | mFreeTempVertexBufferMap |
Map of current available temp buffers. | |
TemporaryVertexBufferLicenseList | mTempVertexBufferLicenses |
List of currently licensed temp buffers. | |
Static Protected Attributes | |
HardwareBufferManager * | ms_Singleton = 0 |
Friends | |
class | HardwareVertexBufferSharedPtr |
class | HardwareIndexBufferSharedPtr |
Definition at line 85 of file OgreHardwareBufferManager.h.
|
List of free temporary vertex buffers.
Definition at line 138 of file OgreHardwareBufferManager.h. Referenced by allocateVertexBufferCopy(), and registerVertexBufferSourceAndCopy(). |
|
Map from original buffer to list of temporary buffers.
Definition at line 140 of file OgreHardwareBufferManager.h. |
|
Definition at line 93 of file OgreHardwareBufferManager.h. |
|
List of currently licensed temp buffers.
Definition at line 144 of file OgreHardwareBufferManager.h. |
|
Definition at line 91 of file OgreHardwareBufferManager.h. |
|
Definition at line 92 of file OgreHardwareBufferManager.h. |
|
Definition at line 90 of file OgreHardwareBufferManager.h. |
|
Definition at line 111 of file OgreHardwareBufferManager.h. |
|
Definition at line 43 of file OgreHardwareBufferManager.cpp. |
|
Definition at line 47 of file OgreHardwareBufferManager.cpp. References destroyAllBindings(), destroyAllDeclarations(), and mFreeTempVertexBufferMap. |
|
Internal method that forces the release of copies of a given buffer.
Definition at line 237 of file OgreHardwareBufferManager.cpp. References Ogre::HardwareBufferManager::VertexBufferLicense::buffer, Ogre::SharedPtr< HardwareVertexBuffer >::get(), Ogre::HardwareBufferManager::VertexBufferLicense::licensee, Ogre::HardwareBufferLicensee::licenseExpired(), mFreeTempVertexBufferMap, mTempVertexBufferLicenses, and Ogre::HardwareBufferManager::VertexBufferLicense::originalBufferPtr. |
|
Internal method for releasing all temporary buffers which have been allocated using BLT_AUTOMATIC_RELEASE; is called by OGRE.
Definition at line 210 of file OgreHardwareBufferManager.cpp. References BLT_AUTOMATIC_RELEASE, Ogre::HardwareBufferManager::VertexBufferLicense::buffer, Ogre::HardwareBufferManager::VertexBufferLicense::licenseType, mFreeTempVertexBufferMap, mTempVertexBufferLicenses, and Ogre::HardwareBufferManager::VertexBufferLicense::originalBufferPtr. |
|
Allocates a copy of a given vertex buffer.
Definition at line 136 of file OgreHardwareBufferManager.cpp. References FreeTemporaryVertexBufferList, Ogre::SharedPtr< HardwareVertexBuffer >::get(), Ogre::SharedPtr< HardwareVertexBuffer >::getPointer(), makeBufferCopy(), mFreeTempVertexBufferMap, and mTempVertexBufferLicenses. Referenced by Ogre::TempBlendedBufferInfo::checkoutTempCopies(). |
|
Create a hardware index buffer.
Implemented in Ogre::DefaultHardwareBufferManager, Ogre::D3D7HardwareBufferManager, Ogre::D3D9HardwareBufferManager, Ogre::GLDefaultHardwareBufferManager, and Ogre::GLHardwareBufferManager. |
|
Create a hardware vertex buffer.
Implemented in Ogre::DefaultHardwareBufferManager, Ogre::D3D9HardwareBufferManager, Ogre::GLDefaultHardwareBufferManager, and Ogre::GLHardwareBufferManager. Referenced by makeBufferCopy(). |
|
Creates a new VertexBufferBinding.
Definition at line 77 of file OgreHardwareBufferManager.cpp. References mVertexBufferBindings. |
|
Creates a vertex declaration, may be overridden by certain rendering APIs.
Reimplemented in Ogre::D3D9HardwareBufferManager, and Ogre::GLHardwareBufferManager. Definition at line 63 of file OgreHardwareBufferManager.cpp. References mVertexDeclarations. |
|
|
Reimplemented in Ogre::D3D9HardwareBufferManager. Definition at line 90 of file OgreHardwareBufferManager.cpp. References mVertexDeclarations. Referenced by Ogre::DefaultHardwareBufferManager::~DefaultHardwareBufferManager(), Ogre::GLDefaultHardwareBufferManager::~GLDefaultHardwareBufferManager(), Ogre::GLHardwareBufferManager::~GLHardwareBufferManager(), and ~HardwareBufferManager(). |
|
Destroy a hardware index buffer, do not call direct.
Implemented in Ogre::DefaultHardwareBufferManager, Ogre::D3D9HardwareBufferManager, Ogre::GLDefaultHardwareBufferManager, and Ogre::GLHardwareBufferManager. |
|
Destroy a hardware vertex buffer, do not call direct.
Implemented in Ogre::DefaultHardwareBufferManager, Ogre::D3D9HardwareBufferManager, Ogre::GLDefaultHardwareBufferManager, and Ogre::GLHardwareBufferManager. |
|
Destroys a VertexBufferBinding.
Definition at line 84 of file OgreHardwareBufferManager.cpp. References mVertexBufferBindings. |
|
Destroys a vertex declaration, may be overridden by certain rendering APIs.
Reimplemented in Ogre::D3D9HardwareBufferManager, and Ogre::GLHardwareBufferManager. Definition at line 71 of file OgreHardwareBufferManager.cpp. References mVertexDeclarations. |
|
Override standard Singleton retrieval.
Reimplemented from Ogre::Singleton< HardwareBufferManager >. Definition at line 38 of file OgreHardwareBufferManager.cpp. References Ogre::Singleton< HardwareBufferManager >::ms_Singleton. |
|
Override standard Singleton retrieval.
Reimplemented from Ogre::Singleton< HardwareBufferManager >. Definition at line 34 of file OgreHardwareBufferManager.cpp. References Ogre::Singleton< HardwareBufferManager >::ms_Singleton. |
|
Creates a new buffer as a copy of the source, does not copy data.
Definition at line 278 of file OgreHardwareBufferManager.cpp. References createVertexBuffer(). Referenced by allocateVertexBufferCopy(). |
|
Registers a vertex buffer as a copy of another.
Definition at line 111 of file OgreHardwareBufferManager.cpp. References FreeTemporaryVertexBufferList, Ogre::SharedPtr< HardwareVertexBuffer >::getPointer(), and mFreeTempVertexBufferMap. |
|
Manually release a vertex buffer copy for others to subsequently use.
Definition at line 186 of file OgreHardwareBufferManager.cpp. References Ogre::HardwareBufferManager::VertexBufferLicense::buffer, Ogre::SharedPtr< HardwareVertexBuffer >::getPointer(), mFreeTempVertexBufferMap, mTempVertexBufferLicenses, and Ogre::HardwareBufferManager::VertexBufferLicense::originalBufferPtr. |
|
Definition at line 88 of file OgreHardwareBufferManager.h. Referenced by Ogre::GLHardwareBufferManager::createIndexBuffer(), Ogre::GLDefaultHardwareBufferManager::createIndexBuffer(), Ogre::DefaultHardwareBufferManager::createIndexBuffer(), and Ogre::D3D9HardwareBufferManager::createIndexBuffer(). |
|
Definition at line 87 of file OgreHardwareBufferManager.h. Referenced by Ogre::GLHardwareBufferManager::createVertexBuffer(), Ogre::GLDefaultHardwareBufferManager::createVertexBuffer(), Ogre::DefaultHardwareBufferManager::createVertexBuffer(), and Ogre::D3D9HardwareBufferManager::createVertexBuffer(). |
|
Map of current available temp buffers.
Definition at line 142 of file OgreHardwareBufferManager.h. Referenced by _forceReleaseBufferCopies(), _releaseBufferCopies(), allocateVertexBufferCopy(), registerVertexBufferSourceAndCopy(), releaseVertexBufferCopy(), and ~HardwareBufferManager(). |
|
Definition at line 98 of file OgreHardwareBufferManager.h. Referenced by Ogre::DefaultHardwareBufferManager::createIndexBuffer(), and Ogre::DefaultHardwareBufferManager::destroyIndexBuffer(). |
|
Definition at line 33 of file OgreHardwareBufferManager.cpp. Referenced by getSingleton(), and getSingletonPtr(). |
|
List of currently licensed temp buffers.
Definition at line 146 of file OgreHardwareBufferManager.h. Referenced by _forceReleaseBufferCopies(), _releaseBufferCopies(), allocateVertexBufferCopy(), and releaseVertexBufferCopy(). |
|
Definition at line 96 of file OgreHardwareBufferManager.h. Referenced by createVertexBufferBinding(), destroyAllBindings(), and destroyVertexBufferBinding(). |
|
Definition at line 97 of file OgreHardwareBufferManager.h. Referenced by Ogre::DefaultHardwareBufferManager::createVertexBuffer(), and Ogre::DefaultHardwareBufferManager::destroyVertexBuffer(). |
|
Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:51:03 2004