OGRE-Next: Ogre::GL3PlusDynamicBuffer Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::GL3PlusDynamicBuffer Class Reference

GL3+ doesn't support mapping the same buffer twice even if the regions don't overlap. More...

`#include <OgreNULLDynamicBuffer.h>`

## Public Member Functions
| GL3PlusDynamicBuffer (GLuint vboName, GLuint vboSize, GL3PlusVaoManager *vaoManager, BufferType persistentMethod)
| GL3PlusDynamicBuffer (GLuint vboName, GLuint vboSize, GL3PlusVaoManager *vaoManager, BufferType persistentMethod)
| ~GL3PlusDynamicBuffer ()
| ~GL3PlusDynamicBuffer ()
void | flush (size_t ticket, size_t start, size_t count)
| Flushes the region of the given ticket. start is 0-based.
void | flush (size_t ticket, size_t start, size_t count)
| Flushes the region of the given ticket. start is 0-based.
GLuint | getVboName () const
GLuint | getVboName () const
void *RESTRICT_ALIAS_RETURN | map (size_t start, size_t count, size_t &outTicket)
| Assumes mVboName is already bound to GL_COPY_WRITE_BUFFER!!!
void *RESTRICT_ALIAS_RETURN | map (size_t start, size_t count, size_t &outTicket)
| Assumes mVboName is already bound to GL_COPY_WRITE_BUFFER!!!
void | unmap (size_t ticket)
| Unmaps given ticket (got from.
void | unmap (size_t ticket)
| Unmaps given ticket (got from.

## Detailed Description

GL3+ doesn't support mapping the same buffer twice even if the regions don't overlap.

For performance we keep many buffers as one big buffer, but for compatibility reasons (with GL3/DX10 HW) we treat them as separate buffers.

  This class takes care of mapping buffers once while allowing BufferInterface to map subregions of it as if they were separate buffers.

Remarks
  This is a very thin/lightweight wrapper around OpenGL glMapBufferRange, thus: Caller is responsible for flushing regions before unmapping. Caller is responsible for proper synchronization. No check is performed to see if two map calls overlap.

## Constructor & Destructor Documentation

## ◆ GL3PlusDynamicBuffer() [1/2]

Ogre::GL3PlusDynamicBuffer::GL3PlusDynamicBuffer | ( | GLuint | vboName,
|  | GLuint | vboSize,
|  | GL3PlusVaoManager * | vaoManager,
|  | BufferType | persistentMethod )

## ◆ ~GL3PlusDynamicBuffer() [1/2]

Ogre::GL3PlusDynamicBuffer::~GL3PlusDynamicBuffer | ( |  | ) |

## ◆ GL3PlusDynamicBuffer() [2/2]

Ogre::GL3PlusDynamicBuffer::GL3PlusDynamicBuffer | ( | GLuint | vboName,
|  | GLuint | vboSize,
|  | GL3PlusVaoManager * | vaoManager,
|  | BufferType | persistentMethod )

## ◆ ~GL3PlusDynamicBuffer() [2/2]

Ogre::GL3PlusDynamicBuffer::~GL3PlusDynamicBuffer | ( |  | ) |

## Member Function Documentation

## ◆ flush() [1/2]

void Ogre::GL3PlusDynamicBuffer::flush | ( | size_t | ticket,
|  | size_t | start,
|  | size_t | count )

Flushes the region of the given ticket. start is 0-based.

## ◆ flush() [2/2]

void Ogre::GL3PlusDynamicBuffer::flush | ( | size_t | ticket,
|  | size_t | start,
|  | size_t | count )

Flushes the region of the given ticket. start is 0-based.

## ◆ getVboName() [1/2]

GLuint Ogre::GL3PlusDynamicBuffer::getVboName | ( |  | ) | const
| inline

## ◆ getVboName() [2/2]

GLuint Ogre::GL3PlusDynamicBuffer::getVboName | ( |  | ) | const
| inline

## ◆ map() [1/2]

void *RESTRICT_ALIAS_RETURN Ogre::GL3PlusDynamicBuffer::map | ( | size_t | start,
|  | size_t | count,
|  | size_t & | outTicket )

Assumes mVboName is already bound to GL_COPY_WRITE_BUFFER!!!

References RESTRICT_ALIAS_RETURN.

## ◆ map() [2/2]

void *RESTRICT_ALIAS_RETURN Ogre::GL3PlusDynamicBuffer::map | ( | size_t | start,
|  | size_t | count,
|  | size_t & | outTicket )

Assumes mVboName is already bound to GL_COPY_WRITE_BUFFER!!!

References RESTRICT_ALIAS_RETURN.

## ◆ unmap() [1/2]

void Ogre::GL3PlusDynamicBuffer::unmap | ( | size_t | ticket | ) |

Unmaps given ticket (got from.

See also
  map). Assumes mVboName is already bound to GL_COPY_WRITE_BUFFER!!! The ticket becomes invalid after this.

## ◆ unmap() [2/2]

void Ogre::GL3PlusDynamicBuffer::unmap | ( | size_t | ticket | ) |

Unmaps given ticket (got from.

See also
  map). Assumes mVboName is already bound to GL_COPY_WRITE_BUFFER!!! The ticket becomes invalid after this.

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

- OgreGL3PlusDynamicBuffer.h
- OgreNULLDynamicBuffer.h