OGRE-Next  3.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::GLES2VaoManager Class Reference

#include <OgreGLES2VaoManager.h>

+ Inheritance diagram for Ogre::GLES2VaoManager:

Classes

struct  Block
 
struct  StrideChanger
 

Public Types

typedef vector< Block >::type BlockVec
 
typedef vector< StrideChanger >::type StrideChangerVec
 
- Public Types inherited from Ogre::VaoManager
typedef vector< MemoryStatsEntry >::type MemoryStatsEntryVec
 

Public Member Functions

 GLES2VaoManager ()
 
virtual ~GLES2VaoManager ()
 
virtual void _update ()
 
void bindDrawId ()
 Binds the Draw ID to the currently bound vertex array object. More...
 
virtual AsyncTicketPtr createAsyncTicket (BufferPacked *creator, StagingBuffer *stagingBuffer, size_t elementStart, size_t elementCount)
 
virtual StagingBuffercreateStagingBuffer (size_t sizeBytes, bool forUpload)
 Creates a new staging buffer and adds it to the pool. More...
 
GLint getMaxVertexAttribs () const
 
virtual bool isFrameFinished (uint32 frameCount)
 See VaoManager::isFrameFinished. More...
 
bool supportsArbBufferStorage () const
 
virtual void waitForSpecificFrameToFinish (uint32 frameCount)
 See VaoManager::waitForSpecificFrameToFinish. More...
 
virtual uint8 waitForTailFrameToFinish ()
 See VaoManager::waitForTailFrameToFinish. More...
 
- Public Member Functions inherited from Ogre::VaoManager
 VaoManager (const NameValuePairList *params)
 
virtual ~VaoManager ()
 
virtual void _beginFrame ()
 
uint8 _getDynamicBufferCurrentFrameNoWait () const
 
void _notifyStagingBufferEnteredZeroRef (StagingBuffer *stagingBuffer)
 
void _notifyStagingBufferLeftZeroRef (StagingBuffer *stagingBuffer)
 
virtual void _waitUntilCommitedCommandBufferCompleted ()
 Waits for the last committed command buffer completion instead of the last frame completion with command buffer switching, so we can continue to work with current command buffer. More...
 
virtual void cleanupEmptyPools ()=0
 Frees GPU memory if there are empty, unused pools. More...
 
ConstBufferPackedcreateConstBuffer (size_t sizeBytes, BufferType bufferType, void *initialData, bool keepAsShadow)
 Creates an constant buffer based on the given parameters. More...
 
IndexBufferPackedcreateIndexBuffer (IndexBufferPacked::IndexType indexType, size_t numIndices, BufferType bufferType, void *initialData, bool keepAsShadow)
 Creates an index buffer based on the given parameters. More...
 
IndirectBufferPackedcreateIndirectBuffer (size_t sizeBytes, BufferType bufferType, void *initialData, bool keepAsShadow)
 Creates an indirect buffer. More...
 
ReadOnlyBufferPackedcreateReadOnlyBuffer (PixelFormatGpu pixelFormat, size_t sizeBytes, BufferType bufferType, void *initialData, bool keepAsShadow)
 Creates a read-only buffer based on the given parameters. More...
 
TexBufferPackedcreateTexBuffer (PixelFormatGpu pixelFormat, size_t sizeBytes, BufferType bufferType, void *initialData, bool keepAsShadow)
 Creates an constant buffer based on the given parameters. More...
 
UavBufferPackedcreateUavBuffer (size_t numElements, uint32 bytesPerElement, uint32 bindFlags, void *initialData, bool keepAsShadow)
 Creates an UAV buffer based on the given parameters. More...
 
VertexArrayObjectcreateVertexArrayObject (const VertexBufferPackedVec &vertexBuffers, IndexBufferPacked *indexBuffer, OperationType opType)
 Creates a VertexArrayObject that binds all the vertex buffers with their respective declarations, and the index buffers. More...
 
VertexBufferPackedcreateVertexBuffer (const VertexElement2Vec &vertexElements, size_t numVertices, BufferType bufferType, void *initialData, bool keepAsShadow)
 Creates a vertex buffer based on the given parameters. More...
 
void deleteStagingBuffers ()
 
void destroyConstBuffer (ConstBufferPacked *constBuffer)
 Destroys the given constant buffer created with createConstBuffer. More...
 
void destroyIndexBuffer (IndexBufferPacked *indexBuffer)
 Destroys the given index buffer created with createIndexBuffer. More...
 
void destroyIndirectBuffer (IndirectBufferPacked *indirectBuffer)
 Destroys the given indirect buffer created with createIndirectBuffer. More...
 
void destroyReadOnlyBuffer (ReadOnlyBufferPacked *readOnlyBuffer)
 Destroys the given texture buffer created with createReadOnlyBuffer. More...
 
void destroyTexBuffer (TexBufferPacked *texBuffer)
 Destroys the given texture buffer created with createTexBuffer. More...
 
void destroyUavBuffer (UavBufferPacked *uavBuffer)
 Destroys the given UAV buffer created with createUavBuffer. More...
 
void destroyVertexArrayObject (VertexArrayObject *vao)
 Destroys the input pointer. More...
 
void destroyVertexBuffer (VertexBufferPacked *vertexBuffer)
 Destroys the given vertex buffer created with createVertexBuffer. More...
 
uint32 getConstBufferAlignment () const
 
size_t getConstBufferMaxSize () const
 
uint32 getDefaultStagingBufferLifetime () const
 
uint32 getDefaultStagingBufferUnfencedTime () const
 
uint8 getDynamicBufferMultiplier () const
 
uint32 getFrameCount ()
 
virtual void getMemoryStats (MemoryStatsEntryVec &outStats, size_t &outCapacityBytes, size_t &outFreeBytes, Log *log, bool &outIncludesTextures) const =0
 Retrieves memory stats about our GPU pools being managed. More...
 
size_t getReadOnlyBufferMaxSize () const
 
StagingBuffergetStagingBuffer (size_t minSizeBytes, bool forUpload)
 Retrieves a staging buffer for use. More...
 
uint32 getTexBufferAlignment () const
 
size_t getTexBufferMaxSize () const
 
TimergetTimer ()
 
uint32 getUavBufferAlignment () const
 
size_t getUavBufferMaxSize () const
 
bool readOnlyIsTexBuffer () const
 When true, ReadOnlyBufferPacked behaves like TexBufferPacked, i.e. More...
 
void setDefaultStagingBufferlifetime (uint32 lifetime, uint32 unfencedTime)
 Sets the default time for staging buffers. More...
 
bool supportsBaseInstance () const
 
bool supportsIndirectBuffers () const
 When false, IndirectBufferPacked will emulate the mapping behavior, and we need to use the emulated calls in RenderSystem. More...
 
bool supportsPersistentMapping () const
 

Static Public Member Functions

static GLuint getAttributeIndexFor (VertexElementSemantic semantic)
 
static void mergeContiguousBlocks (BlockVec::iterator blockToMerge, BlockVec &blocks)
 
static GLsync waitFor (GLsync fenceName)
 Will stall undefinitely until GPU finishes (signals the sync object). More...
 
- Static Public Member Functions inherited from Ogre::VaoManager
static uint32 calculateVertexSize (const VertexElement2Vec &vertexElements)
 Returns the size of a single vertex buffer source with the given declaration, in bytes. More...
 

Member Typedef Documentation

◆ BlockVec

typedef vector<Block>::type Ogre::GLES2VaoManager::BlockVec

◆ StrideChangerVec

Constructor & Destructor Documentation

◆ GLES2VaoManager()

Ogre::GLES2VaoManager::GLES2VaoManager ( )

◆ ~GLES2VaoManager()

virtual Ogre::GLES2VaoManager::~GLES2VaoManager ( )
virtual

Member Function Documentation

◆ _update()

virtual void Ogre::GLES2VaoManager::_update ( )
virtual

Reimplemented from Ogre::VaoManager.

◆ bindDrawId()

void Ogre::GLES2VaoManager::bindDrawId ( )

Binds the Draw ID to the currently bound vertex array object.

◆ createAsyncTicket()

virtual AsyncTicketPtr Ogre::GLES2VaoManager::createAsyncTicket ( BufferPacked creator,
StagingBuffer stagingBuffer,
size_t  elementStart,
size_t  elementCount 
)
virtual

Implements Ogre::VaoManager.

◆ createStagingBuffer()

virtual StagingBuffer* Ogre::GLES2VaoManager::createStagingBuffer ( size_t  sizeBytes,
bool  forUpload 
)
virtual

Creates a new staging buffer and adds it to the pool.

See also
getStagingBuffer.
Remarks
The returned buffer starts with a reference count of 1. You should decrease it when you're done using it.

Implements Ogre::VaoManager.

◆ getAttributeIndexFor()

static GLuint Ogre::GLES2VaoManager::getAttributeIndexFor ( VertexElementSemantic  semantic)
static

◆ getMaxVertexAttribs()

GLint Ogre::GLES2VaoManager::getMaxVertexAttribs ( ) const
inline

◆ isFrameFinished()

virtual bool Ogre::GLES2VaoManager::isFrameFinished ( uint32  frameCount)
virtual

◆ mergeContiguousBlocks()

static void Ogre::GLES2VaoManager::mergeContiguousBlocks ( BlockVec::iterator  blockToMerge,
BlockVec blocks 
)
static
See also
StagingBuffer::mergeContiguousBlocks

◆ supportsArbBufferStorage()

bool Ogre::GLES2VaoManager::supportsArbBufferStorage ( ) const
inline

◆ waitFor()

static GLsync Ogre::GLES2VaoManager::waitFor ( GLsync  fenceName)
static

Will stall undefinitely until GPU finishes (signals the sync object).

Parameters
fenceNameSync object to wait for. Will be deleted on success. On failure, throws an exception and fenceName will not be deleted.
Returns
Null ptr on success. Should throw on failure, but if this function for some strange reason doesn't throw, it is programmed to return 'fenceName'

◆ waitForSpecificFrameToFinish()

virtual void Ogre::GLES2VaoManager::waitForSpecificFrameToFinish ( uint32  frameCount)
virtual

◆ waitForTailFrameToFinish()

virtual uint8 Ogre::GLES2VaoManager::waitForTailFrameToFinish ( )
virtual

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