29#ifndef __DefaultHardwareBufferManager_H__
30#define __DefaultHardwareBufferManager_H__
Specialisation of HardwareBufferManagerBase to emulate hardware buffers.
HardwareUniformBufferSharedPtr createUniformBuffer(size_t sizeBytes, HardwareBuffer::Usage usage=HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE, bool useShadowBuffer=false, const String &name="")
Create a hardware uniform buffer.
RenderToVertexBufferSharedPtr createRenderToVertexBuffer()
Create a hardware vertex buffer.
HardwareCounterBufferSharedPtr createCounterBuffer(size_t sizeBytes, HardwareBuffer::Usage usage=HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE, bool useShadowBuffer=false, const String &name="")
Create a hardware counter buffer.
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 index buffer.
DefaultHardwareBufferManagerBase()
~DefaultHardwareBufferManagerBase()
DefaultHardwareBufferManager as a Singleton.
~DefaultHardwareBufferManager()
DefaultHardwareBufferManager()
Specialisation of HardwareCounterBuffer for emulation.
void * lock(size_t offset, size_t length, LockOptions options)
Override HardwareBuffer to turn off all shadowing.
void writeData(size_t offset, size_t length, const void *pSource, bool discardWholeBuffer=false)
See HardwareBuffer.
void unlockImpl(void)
See HardwareBuffer.
void unlock(void)
Override HardwareBuffer to turn off all shadowing.
void readData(size_t offset, size_t length, void *pDest)
See HardwareBuffer.
~DefaultHardwareCounterBuffer()
void * lockImpl(size_t offset, size_t length, LockOptions options)
See HardwareBuffer.
DefaultHardwareCounterBuffer(HardwareBufferManagerBase *mgr, size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer=false, const String &name="")
Specialisation of HardwareIndexBuffer for emulation.
DefaultHardwareIndexBuffer(IndexType idxType, size_t numIndexes, HardwareBuffer::Usage usage)
void unlockImpl(void)
See HardwareBuffer.
void readData(size_t offset, size_t length, void *pDest)
See HardwareBuffer.
void * lock(size_t offset, size_t length, LockOptions options)
Override HardwareBuffer to turn off all shadowing.
void unlock(void)
Override HardwareBuffer to turn off all shadowing.
~DefaultHardwareIndexBuffer()
void * lockImpl(size_t offset, size_t length, LockOptions options)
See HardwareBuffer.
void writeData(size_t offset, size_t length, const void *pSource, bool discardWholeBuffer=false)
See HardwareBuffer.
Specialisation of HardwareVertexBuffer for emulation.
DefaultHardwareVertexBuffer(HardwareBufferManagerBase *mgr, size_t vertexSize, size_t numVertices, HardwareBuffer::Usage usage)
void * lockImpl(size_t offset, size_t length, LockOptions options)
See HardwareBuffer.
~DefaultHardwareVertexBuffer()
DefaultHardwareVertexBuffer(size_t vertexSize, size_t numVertices, HardwareBuffer::Usage usage)
void writeData(size_t offset, size_t length, const void *pSource, bool discardWholeBuffer=false)
See HardwareBuffer.
void unlockImpl(void)
See HardwareBuffer.
void * lock(size_t offset, size_t length, LockOptions options)
Override HardwareBuffer to turn off all shadowing.
void readData(size_t offset, size_t length, void *pDest)
See HardwareBuffer.
void unlock(void)
Override HardwareBuffer to turn off all shadowing.
Base definition of a hardware buffer manager.
Singleton wrapper for hardware buffer manager.
LockOptions
Locking options.
Usage
Enums describing buffer usage; not mutually exclusive.
Shared pointer implementation used to share counter buffers.
Specialisation of HardwareBuffer for a counter buffer.
Shared pointer implementation used to share index buffers.
Specialisation of HardwareBuffer for vertex index buffers, still abstract.
Shared pointer implementation used to share vertex buffers.
Specialisation of HardwareBuffer for a vertex buffer.
Reference-counted shared pointer, used for objects where implicit destruction is required.