OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
Interface used to by the Terrain instance to allocate GPU buffers. More...
#include <OgreTerrain.h>
Public Member Functions | |
GpuBufferAllocator () | |
virtual | ~GpuBufferAllocator () |
virtual void | allocateVertexBuffers (Terrain *forTerrain, size_t numVertices, HardwareVertexBufferSharedPtr &destPos, HardwareVertexBufferSharedPtr &destDelta)=0 |
Allocate (or reuse) vertex buffers for a terrain LOD. | |
virtual void | freeAllBuffers ()=0 |
Free any buffers we're holding. | |
virtual void | freeVertexBuffers (const HardwareVertexBufferSharedPtr &posbuf, const HardwareVertexBufferSharedPtr &deltabuf)=0 |
Free (or return to the pool) vertex buffers for terrain. | |
virtual HardwareIndexBufferSharedPtr | getSharedIndexBuffer (uint16 batchSize, uint16 vdatasize, size_t vertexIncrement, uint16 xoffset, uint16 yoffset, uint16 numSkirtRowsCols, uint16 skirtRowColSkip)=0 |
Get a shared index buffer for a given number of settings. | |
Interface used to by the Terrain instance to allocate GPU buffers.
|
inline |
|
inlinevirtual |
|
pure virtual |
Allocate (or reuse) vertex buffers for a terrain LOD.
forTerrain | |
numVertices | The total number of vertices |
destPos | Pointer to a vertex buffer for positions, to be bound |
destDelta | Pointer to a vertex buffer for deltas, to be bound |
Implemented in Ogre::Terrain::DefaultGpuBufferAllocator.
|
pure virtual |
Free (or return to the pool) vertex buffers for terrain.
Implemented in Ogre::Terrain::DefaultGpuBufferAllocator.
|
pure virtual |
Get a shared index buffer for a given number of settings.
Since all index structures are the same at the same LOD level and relative position, we can share index buffers. Therefore the buffer returned from this method does not need to be 'freed' like the vertex buffers since it is never owned.
batchSize | The batch size along one edge |
vdatasize | The size of the referenced vertex data along one edge |
vertexIncrement | The number of vertices to increment for each new indexed row / column |
xoffset | The x offset from the start of vdatasize, at that resolution |
yoffset | The y offset from the start of vdatasize, at that resolution |
numSkirtRowsCols | Number of rows and columns of skirts |
skirtRowColSkip | The number of rows / cols to skip in between skirts |
Implemented in Ogre::Terrain::DefaultGpuBufferAllocator.
Free any buffers we're holding.
Implemented in Ogre::Terrain::DefaultGpuBufferAllocator.