|  | OGRE
    1.11.6
    Object-Oriented Graphics Rendering Engine | 
Implementation of HardwareBufferManager for OpenGL. More...
#include <OgreGL3PlusHardwareBufferManager.h>
 Inheritance diagram for Ogre::GL3PlusHardwareBufferManager:
 Inheritance diagram for Ogre::GL3PlusHardwareBufferManager:| Public Types | |
| enum | BufferLicenseType { BLT_MANUAL_RELEASE, BLT_AUTOMATIC_RELEASE } | 
| Public Member Functions | |
| GL3PlusHardwareBufferManager () | |
| ~GL3PlusHardwareBufferManager () | |
| void | _forceReleaseBufferCopies (const HardwareVertexBufferSharedPtr &sourceBuffer) | 
| Internal method that forces the release of copies of a given buffer.  More... | |
| void | _forceReleaseBufferCopies (HardwareVertexBuffer *sourceBuffer) | 
| Internal method that forces the release of copies of a given buffer.  More... | |
| void | _freeUnusedBufferCopies (void) | 
| Free all unused vertex buffer copies.  More... | |
| void | _notifyCounterBufferDestroyed (HardwareCounterBuffer *buf) | 
| Notification that at hardware counter buffer has been destroyed.  More... | |
| void | _notifyIndexBufferDestroyed (HardwareIndexBuffer *buf) | 
| Notification that a hardware index buffer has been destroyed.  More... | |
| void | _notifyUniformBufferDestroyed (HardwareUniformBuffer *buf) | 
| Notification that at hardware uniform buffer has been destroyed.  More... | |
| void | _notifyVertexBufferDestroyed (HardwareVertexBuffer *buf) | 
| Notification that a hardware vertex buffer has been destroyed.  More... | |
| void | _releaseBufferCopies (bool forceFreeUnused=false) | 
| Internal method for releasing all temporary buffers which have been allocated using BLT_AUTOMATIC_RELEASE; is called by OGRE.  More... | |
| void * | allocateScratch (uint32 size) | 
| Allocator method to allow us to use a pool of memory as a scratch area for hardware buffers.  More... | |
| HardwareVertexBufferSharedPtr | allocateVertexBufferCopy (const HardwareVertexBufferSharedPtr &sourceBuffer, BufferLicenseType licenseType, HardwareBufferLicensee *licensee, bool copyData=false) | 
| Allocates a copy of a given vertex buffer.  More... | |
| HardwareCounterBufferSharedPtr | createCounterBuffer (size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer, const String &name="") | 
| Create a counter buffer.  More... | |
| HardwareIndexBufferSharedPtr | createIndexBuffer (HardwareIndexBuffer::IndexType itype, size_t numIndexes, HardwareBuffer::Usage usage, bool useShadowBuffer=false) | 
| Create a hardware vertex buffer.  More... | |
| RenderToVertexBufferSharedPtr | createRenderToVertexBuffer () | 
| Create a render to vertex buffer.  More... | |
| HardwareUniformBufferSharedPtr | createShaderStorageBuffer (size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer, const String &name="") | 
| Create a shader storage buffer.  More... | |
| HardwareUniformBufferSharedPtr | createUniformBuffer (size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer, const String &name="") | 
| Create a uniform buffer.  More... | |
| HardwareVertexBufferSharedPtr | createVertexBuffer (size_t vertexSize, size_t numVerts, HardwareBuffer::Usage usage, bool useShadowBuffer=false) | 
| Creates a vertex buffer.  More... | |
| VertexBufferBinding * | createVertexBufferBinding (void) | 
| Creates a new VertexBufferBinding.  More... | |
| VertexDeclaration * | createVertexDeclaration (void) | 
| Creates a new vertex declaration.  More... | |
| void | deallocateScratch (void *ptr) | 
| void | destroyVertexBufferBinding (VertexBufferBinding *binding) | 
| Destroys a VertexBufferBinding.  More... | |
| void | destroyVertexDeclaration (VertexDeclaration *decl) | 
| Destroys a vertex declaration.  More... | |
| size_t | getGLMapBufferThreshold () const | 
| Threshold after which glMapBuffer is used and not glBufferSubData.  More... | |
| GL3PlusStateCacheManager * | getStateCacheManager () | 
| void | notifyContextDestroyed (GLContext *context) | 
| virtual void | registerVertexBufferSourceAndCopy (const HardwareVertexBufferSharedPtr &sourceBuffer, const HardwareVertexBufferSharedPtr ©) | 
| Registers a vertex buffer as a copy of another.  More... | |
| void | releaseVertexBufferCopy (const HardwareVertexBufferSharedPtr &bufferCopy) | 
| Manually release a vertex buffer copy for others to subsequently use.  More... | |
| void | setGLMapBufferThreshold (const size_t value) | 
| void | touchVertexBufferCopy (const HardwareVertexBufferSharedPtr &bufferCopy) | 
| Tell engine that the vertex buffer copy intent to reuse.  More... | |
| Static Public Member Functions | |
| static GLenum | getGLType (VertexElementType type) | 
| Utility function to get the correct GL type based on VET's.  More... | |
| static HardwareBufferManager & | getSingleton (void) | 
| Get the singleton instance.  More... | |
| static HardwareBufferManager * | getSingletonPtr (void) | 
| Get the singleton instance.  More... | |
Implementation of HardwareBufferManager for OpenGL.
| 
 | inherited | 
| Ogre::GL3PlusHardwareBufferManager::GL3PlusHardwareBufferManager | ( | ) | 
| Ogre::GL3PlusHardwareBufferManager::~GL3PlusHardwareBufferManager | ( | ) | 
| 
 | virtual | 
Creates a vertex buffer.
Implements Ogre::HardwareBufferManagerBase.
| 
 | virtual | 
Create a hardware vertex buffer.
Implements Ogre::HardwareBufferManagerBase.
| 
 | virtual | 
Create a uniform buffer.
Implements Ogre::HardwareBufferManagerBase.
| HardwareUniformBufferSharedPtr Ogre::GL3PlusHardwareBufferManager::createShaderStorageBuffer | ( | size_t | sizeBytes, | 
| HardwareBuffer::Usage | usage, | ||
| bool | useShadowBuffer, | ||
| const String & | name = "" | ||
| ) | 
Create a shader storage buffer.
| 
 | virtual | 
Create a counter buffer.
Implements Ogre::HardwareBufferManagerBase.
| 
 | virtual | 
Create a render to vertex buffer.
Implements Ogre::HardwareBufferManagerBase.
| 
 | static | 
Utility function to get the correct GL type based on VET's.
| GL3PlusStateCacheManager* Ogre::GL3PlusHardwareBufferManager::getStateCacheManager | ( | ) | 
| void Ogre::GL3PlusHardwareBufferManager::notifyContextDestroyed | ( | GLContext * | context | ) | 
| void* Ogre::GL3PlusHardwareBufferManager::allocateScratch | ( | uint32 | size | ) | 
Allocator method to allow us to use a pool of memory as a scratch area for hardware buffers.
This is because glMapBuffer is incredibly inefficient, seemingly no matter what options we give it. So for the period of lock/unlock, we will instead allocate a section of a local memory pool, and use glBufferSubDataARB / glGetBufferSubDataARB instead.
| void Ogre::GL3PlusHardwareBufferManager::deallocateScratch | ( | void * | ptr | ) | 
| size_t Ogre::GL3PlusHardwareBufferManager::getGLMapBufferThreshold | ( | ) | const | 
Threshold after which glMapBuffer is used and not glBufferSubData.
| void Ogre::GL3PlusHardwareBufferManager::setGLMapBufferThreshold | ( | const size_t | value | ) | 
| 
 | staticinherited | 
Get the singleton instance.
Referenced by Ogre::Lod0Stripifier::~Lod0Stripifier().
| 
 | staticinherited | 
Get the singleton instance.
| 
 | inherited | 
Creates a new vertex declaration.
| 
 | inherited | 
Destroys a vertex declaration.
| 
 | inherited | 
Creates a new VertexBufferBinding.
| 
 | inherited | 
Destroys a VertexBufferBinding.
| 
 | virtualinherited | 
Registers a vertex buffer as a copy of another.
| 
 | inherited | 
Allocates a copy of a given vertex buffer.
| sourceBuffer | The source buffer to use as a copy. | 
| licenseType | The type of license required on this buffer - automatic release causes this class to release licenses every frame so that they can be reallocated anew. | 
| licensee | Pointer back to the class requesting the copy, which must implement HardwareBufferLicense in order to be notified when the license expires. | 
| copyData | If true, the current data is copied as well as the structure of the buffer/ | 
| 
 | inherited | 
Manually release a vertex buffer copy for others to subsequently use.
| bufferCopy | The buffer copy. The caller is expected to delete or at least no longer use this reference, since another user may well begin to modify the contents of the buffer. | 
| 
 | inherited | 
Tell engine that the vertex buffer copy intent to reuse.
| bufferCopy | The buffer copy. The caller is expected to keep this buffer copy for use. | 
| 
 | inherited | 
Free all unused vertex buffer copies.
| 
 | inherited | 
Internal method for releasing all temporary buffers which have been allocated using BLT_AUTOMATIC_RELEASE; is called by OGRE.
| forceFreeUnused | If true, free all unused temporary buffers. Iffalse, auto detect and free all unused temporary buffers based on temporary buffers utilization. | 
| 
 | inherited | 
Internal method that forces the release of copies of a given buffer.
| sourceBuffer | The source buffer as a shared pointer. Any buffer copies created from the source buffer are deleted. | 
| 
 | inherited | 
Internal method that forces the release of copies of a given buffer.
| sourceBuffer | The source buffer as a pointer. Any buffer copies created from the source buffer are deleted. | 
| 
 | inherited | 
Notification that a hardware vertex buffer has been destroyed.
| 
 | inherited | 
Notification that a hardware index buffer has been destroyed.
| 
 | inherited | 
Notification that at hardware uniform buffer has been destroyed.
| 
 | inherited | 
Notification that at hardware counter buffer has been destroyed.