|
| NULLVertexArrayObject (uint32 vaoName, uint32 renderQueueId, const VertexBufferPackedVec &vertexBuffers, IndexBufferPacked *indexBuffer, OperationType opType) |
|
VertexArrayObject * | clone (VaoManager *vaoManager, SharedVertexBufferMap *sharedBuffers, int vertexBufferType=-1, int indexBufferType=-1) const |
| Clones the vertex & index buffers and creates a new VertexArrayObject. More...
|
|
const VertexElement2 * | findBySemantic (VertexElementSemantic semantic, size_t &outIndex, size_t &outOffset, size_t repeat=0) const |
| Returns the entire VertexElement2 descriptor in the vertex buffers. More...
|
|
VertexBufferPacked * | getBaseVertexBuffer () const |
|
IndexBufferPacked * | getIndexBuffer () const |
|
uint16 | getInputLayoutId () const |
|
OperationType | getOperationType () const |
|
uint32 | getPrimitiveCount () const |
|
uint32 | getPrimitiveStart () const |
|
uint32 | getRenderQueueId () const |
|
uint32 | getVaoName () const |
|
const VertexBufferPackedVec & | getVertexBuffers () const |
|
VertexElement2VecVec | getVertexDeclaration () const |
| Gets the combined vertex declaration of all the vertex buffers. More...
|
|
void | operator delete (void *ptr) |
|
void | operator delete (void *ptr, const char *, int, const char *) |
|
void | operator delete (void *ptr, void *) |
|
void | operator delete[] (void *ptr) |
|
void | operator delete[] (void *ptr, const char *, int, const char *) |
|
void * | operator new (size_t sz) |
|
void * | operator new (size_t sz, const char *file, int line, const char *func) |
| operator new, with debug line info More...
|
|
void * | operator new (size_t sz, void *ptr) |
| placement operator new More...
|
|
void * | operator new[] (size_t sz) |
|
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
| array operator new, with debug line info More...
|
|
void | readRequests (ReadRequestsArray &requests, size_t elementStart=0, size_t elementCount=0, bool skipRequestIfBufferHasShadowCopy=false) |
| Utility to get multiple pointers & read specific elements of the vertex, even if they're in separate buffers. More...
|
|
void | setPrimitiveRange (uint32 primStart, uint32 primCount) |
| Limits the range of triangle primitives that is rendered. More...
|
|
void Ogre::VertexArrayObject::readRequests |
( |
ReadRequestsArray & |
requests, |
|
|
size_t |
elementStart = 0 , |
|
|
size_t |
elementCount = 0 , |
|
|
bool |
skipRequestIfBufferHasShadowCopy = false |
|
) |
| |
|
inherited |
Utility to get multiple pointers & read specific elements of the vertex, even if they're in separate buffers.
When two elements share the same buffer, only one ticket is created.
Example usage: VertexArrayObject::ReadRequestsArray requests; requests.push_back( VertexArrayObject::ReadRequests( VES_POSITION ) ); requests.push_back( VertexArrayObject::ReadRequests( VES_NORMALS ) ); vao->readRequests( requests ); vao->mapAsyncTickets( requests );
for( size_t i=0; i<numVertices; ++i ) { float const position = reinterpret_cast<const float>( requests[0].data ); float const normals = reinterpret_cast<const float>( requests[1].data );
requests[0].data += requests[0].vertexBuffer->getBytesPerElement(); requests[1].data += requests[1].vertexBuffer->getBytesPerElement(); }
vao->unmapAsyncTickets( requests );
- Parameters
-
requests | [in/out] Array filled with the semantic. |
skipRequestIfBufferHasShadowCopy | Avoid generating the AsyncTicket if the buffer has a shadow copy. Useful if you want to read directly from the shadow copy instead of downloading from the GPU. The 'data' variable will be filled immediately if there's a shadow copy available, and mapAsyncTickets can be safely called even if skipRequestIfBufferHasShadowCopy=true |