OGRE  master
Object-Oriented Graphics Rendering Engine
Ogre::GL3PlusHardwareBufferManager Class Reference

Implementation of HardwareBufferManager for OpenGL. More...

#include <OgreGL3PlusHardwareBufferManager.h>

+ Inheritance diagram for Ogre::GL3PlusHardwareBufferManager:

Public Member Functions

 GL3PlusHardwareBufferManager ()
 
 ~GL3PlusHardwareBufferManager ()
 
HardwareIndexBufferSharedPtr createIndexBuffer (HardwareIndexBuffer::IndexType itype, size_t numIndexes, HardwareBuffer::Usage usage, bool useShadowBuffer=false) override
 Create a hardware vertex buffer. More...
 
RenderToVertexBufferSharedPtr createRenderToVertexBuffer () override
 Create a render to vertex buffer. More...
 
HardwareBufferPtr createShaderStorageBuffer (size_t sizeBytes, HardwareBufferUsage usage=HBU_CPU_TO_GPU, bool useShadowBuffer=false)
 Create a shader storage buffer. More...
 
HardwareBufferPtr createUniformBuffer (size_t sizeBytes, HardwareBufferUsage usage=HBU_CPU_TO_GPU, bool useShadowBuffer=false) override
 Create a uniform buffer. More...
 
HardwareVertexBufferSharedPtr createVertexBuffer (size_t vertexSize, size_t numVerts, HardwareBuffer::Usage usage, bool useShadowBuffer=false) override
 Creates a vertex buffer. More...
 
size_t getShaderStorageBufferCount ()
 
size_t getUniformBufferCount ()
 
void notifyContextDestroyed (GLContext *context)
 
- Public Member Functions inherited from Ogre::HardwareBufferManager
 HardwareBufferManager ()
 
 ~HardwareBufferManager ()
 
- Public Member Functions inherited from Ogre::HardwareBufferManagerBase
 HardwareBufferManagerBase ()
 
virtual ~HardwareBufferManagerBase ()
 
void _forceReleaseBufferCopies (const HardwareVertexBufferSharedPtr &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 _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; is called by OGRE. More...
 
HardwareVertexBufferSharedPtr allocateVertexBufferCopy (const HardwareVertexBufferSharedPtr &sourceBuffer, HardwareBufferLicensee *licensee, bool copyData=false)
 Allocates a copy of a given vertex buffer. More...
 
VertexBufferBindingcreateVertexBufferBinding (void)
 Creates a new VertexBufferBinding. More...
 
VertexDeclarationcreateVertexDeclaration (void)
 Creates a new vertex declaration. More...
 
void destroyVertexBufferBinding (VertexBufferBinding *binding)
 Destroys a VertexBufferBinding. More...
 
void destroyVertexDeclaration (VertexDeclaration *decl)
 Destroys a vertex declaration. More...
 
void releaseVertexBufferCopy (const HardwareVertexBufferSharedPtr &bufferCopy)
 Manually release a vertex buffer copy for others to subsequently use. More...
 
void touchVertexBufferCopy (const HardwareVertexBufferSharedPtr &bufferCopy)
 Tell engine that the vertex buffer copy intent to reuse. More...
 
- Public Member Functions inherited from Ogre::Singleton< HardwareBufferManager >
 Singleton (void)
 
 ~Singleton (void)
 

Static Public Member Functions

static GLenum getGLType (VertexElementType type)
 Utility function to get the correct GL type based on VET's. More...
 
- Static Public Member Functions inherited from Ogre::HardwareBufferManager
static HardwareBufferManagergetSingleton (void)
 Get the singleton instance. More...
 
static HardwareBufferManagergetSingletonPtr (void)
 Get the singleton instance. More...
 
- Static Public Member Functions inherited from Ogre::Singleton< HardwareBufferManager >
static HardwareBufferManagergetSingleton (void)
 Get the singleton instance. More...
 
static HardwareBufferManagergetSingletonPtr (void)
 Get the singleton instance. More...
 

Detailed Description

Implementation of HardwareBufferManager for OpenGL.

Constructor & Destructor Documentation

◆ GL3PlusHardwareBufferManager()

Ogre::GL3PlusHardwareBufferManager::GL3PlusHardwareBufferManager ( )

◆ ~GL3PlusHardwareBufferManager()

Ogre::GL3PlusHardwareBufferManager::~GL3PlusHardwareBufferManager ( )

Member Function Documentation

◆ createVertexBuffer()

HardwareVertexBufferSharedPtr Ogre::GL3PlusHardwareBufferManager::createVertexBuffer ( size_t  vertexSize,
size_t  numVerts,
HardwareBuffer::Usage  usage,
bool  useShadowBuffer = false 
)
overridevirtual

Creates a vertex buffer.

Implements Ogre::HardwareBufferManagerBase.

◆ createIndexBuffer()

HardwareIndexBufferSharedPtr Ogre::GL3PlusHardwareBufferManager::createIndexBuffer ( HardwareIndexBuffer::IndexType  itype,
size_t  numIndexes,
HardwareBuffer::Usage  usage,
bool  useShadowBuffer = false 
)
overridevirtual

Create a hardware vertex buffer.

Implements Ogre::HardwareBufferManagerBase.

◆ createUniformBuffer()

HardwareBufferPtr Ogre::GL3PlusHardwareBufferManager::createUniformBuffer ( size_t  sizeBytes,
HardwareBufferUsage  usage = HBU_CPU_TO_GPU,
bool  useShadowBuffer = false 
)
overridevirtual

Create a uniform buffer.

Reimplemented from Ogre::HardwareBufferManagerBase.

◆ createShaderStorageBuffer()

HardwareBufferPtr Ogre::GL3PlusHardwareBufferManager::createShaderStorageBuffer ( size_t  sizeBytes,
HardwareBufferUsage  usage = HBU_CPU_TO_GPU,
bool  useShadowBuffer = false 
)

Create a shader storage buffer.

◆ createRenderToVertexBuffer()

RenderToVertexBufferSharedPtr Ogre::GL3PlusHardwareBufferManager::createRenderToVertexBuffer ( )
overridevirtual

Create a render to vertex buffer.

Reimplemented from Ogre::HardwareBufferManagerBase.

◆ getUniformBufferCount()

size_t Ogre::GL3PlusHardwareBufferManager::getUniformBufferCount ( )
inline

◆ getShaderStorageBufferCount()

size_t Ogre::GL3PlusHardwareBufferManager::getShaderStorageBufferCount ( )
inline

◆ getGLType()

static GLenum Ogre::GL3PlusHardwareBufferManager::getGLType ( VertexElementType  type)
static

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

◆ notifyContextDestroyed()

void Ogre::GL3PlusHardwareBufferManager::notifyContextDestroyed ( GLContext context)

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