29#ifndef __DefaultHardwareBufferManager_H__
30#define __DefaultHardwareBufferManager_H__
62 void readData(
size_t offset,
size_t length,
void* pDest);
64 void writeData(
size_t offset,
size_t length,
const void* pSource,
65 bool discardWholeBuffer =
false);
87 void readData(
size_t offset,
size_t length,
void* pDest);
89 void writeData(
size_t offset,
size_t length,
const void* pSource,
90 bool discardWholeBuffer =
false);
114 void readData(
size_t offset,
size_t length,
void* pDest);
116 void writeData(
size_t offset,
size_t length,
const void* pSource,
117 bool discardWholeBuffer =
false);
140 void readData(
size_t offset,
size_t length,
void* pDest);
142 void writeData(
size_t offset,
size_t length,
const void* pSource,
143 bool discardWholeBuffer =
false);
175 bool useShadowBuffer =
false,
const String& name =
"");
179 bool useShadowBuffer =
false,
const String& name =
"");
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()
DefaultHardwareBufferManager()
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="")
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.
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.
HardwareBufferManagerBase()
friend class HardwareVertexBufferSharedPtr
friend class HardwareIndexBufferSharedPtr
HardwareBufferManager(HardwareBufferManagerBase *imp)
HardwareBufferManagerBase * mImpl
LockOptions
Locking options.
Usage
Enums describing buffer usage; not mutually exclusive.
@ HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE
Combination of HBU_DYNAMIC, HBU_WRITE_ONLY and HBU_DISCARDABLE.
Shared pointer implementation used to share counter buffers.
HardwareIndexBuffer(HardwareBufferManagerBase *mgr, IndexType idxType, size_t numIndexes, HardwareBuffer::Usage usage, bool useSystemMemory, bool useShadowBuffer)
Should be called by HardwareBufferManager.
HardwareVertexBuffer(HardwareBufferManagerBase *mgr, size_t vertexSize, size_t numVertices, HardwareBuffer::Usage usage, bool useSystemMemory, bool useShadowBuffer)
Should be called by HardwareBufferManager.
SharedPtr< RenderToVertexBuffer > RenderToVertexBufferSharedPtr
HardwareCounterBuffer(HardwareBufferManagerBase *mgr, size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer=false, const String &name="")
Should be called by HardwareBufferManager.
HardwareUniformBuffer(HardwareBufferManagerBase *mgr, size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer=false, const String &name="")
Should be called by HardwareBufferManager.