30 #ifndef __GLESDefaultHardwareBufferManager_H__
31 #define __GLESDefaultHardwareBufferManager_H__
45 void* lockImpl(
size_t offset,
size_t length,
LockOptions options);
47 void unlockImpl(
void);
56 void readData(
size_t offset,
size_t length,
void* pDest);
58 void writeData(
size_t offset,
size_t length,
const void* pSource,
59 bool discardWholeBuffer =
false);
61 void* lock(
size_t offset,
size_t length,
LockOptions options);
65 void*
getDataPtr(
size_t offset)
const {
return (
void*)(mData + offset); }
74 void* lockImpl(
size_t offset,
size_t length,
LockOptions options);
76 void unlockImpl(
void);
82 void readData(
size_t offset,
size_t length,
void* pDest);
84 void writeData(
size_t offset,
size_t length,
const void* pSource,
85 bool discardWholeBuffer =
false);
87 void* lock(
size_t offset,
size_t length,
LockOptions options);
91 void*
getDataPtr(
size_t offset)
const {
return (
void*)(mData + offset); }
108 createVertexBuffer(
size_t vertexSize,
size_t numVerts,
120 "GLES does not support uniform buffer objects",
121 "GLESDefaultHardwareBufferManagerBase::createUniformBuffer");
125 bool useShadowBuffer =
false,
const String& name =
"")
128 "GLES does not support atomic counter buffers",
129 "GLESDefaultHardwareBufferManagerBase::createCounterBuffer");
150 "GLES does not support render to vertex buffer objects",
151 "GLESDefaultHardwareBufferManager::createUniformBuffer");
HardwareUniformBufferSharedPtr createUniformBuffer(size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer, const String &name="")
Create uniform buffer.
void * getDataPtr(size_t offset) const
Singleton wrapper for hardware buffer manager.
GLESDefaultHardwareBufferManager()
HardwareCounterBufferSharedPtr createCounterBuffer(size_t sizeBytes, HardwareBuffer::Usage usage=HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE, bool useShadowBuffer=false, const String &name="")
Create counter buffer.
void * getDataPtr(size_t offset) const
~GLESDefaultHardwareBufferManager()
Specialisation of HardwareBuffer for vertex index buffers, still abstract.
Shared pointer implementation used to share vertex buffers.
HardwareUniformBufferSharedPtr createUniformBuffer(size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer, const String &name="")
Create uniform buffer.
Combination of HBU_DYNAMIC, HBU_WRITE_ONLY and HBU_DISCARDABLE.
Shared pointer implementation used to share index buffers.
LockOptions
Locking options.
Base definition of a hardware buffer manager.
Usage
Enums describing buffer usage; not mutually exclusive.
Specialisation of HardwareIndexBuffer for emulation.
#define OGRE_EXCEPT(code, desc, src)
Shared pointer implementation used to share counter buffers.
Specialisation of HardwareVertexBuffer for emulation.
Specialisation of HardwareBuffer for a vertex buffer.
Reference-counted shared pointer, used for objects where implicit destruction is required.
GLESDefaultHardwareBufferManagerBase as a Singleton.
Specialisation of HardwareBufferManager to emulate hardware buffers.