Vertex array objects (Vaos) are immutable objects that describe a combination of vertex buffers and index buffer with a given operation type.  
 More...
|  | 
|  | VertexArrayObject (uint32 vaoName, uint32 renderQueueId, uint16 inputLayoutId, const VertexBufferPackedVec &vertexBuffers, IndexBufferPacked *indexBuffer, OperationType operationType) | 
|  | 
| VertexArrayObject * | clone (VaoManager *vaoManager, SharedVertexBufferMap *sharedBuffers, int vertexBufferType=-1, int indexBufferType=-1) const | 
|  | Clones the vertex & index buffers and creates a new VertexArrayObject. 
 | 
|  | 
| 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. 
 | 
|  | 
| VertexBufferPacked * | getBaseVertexBuffer (void) const | 
|  | 
| IndexBufferPacked * | getIndexBuffer (void) const | 
|  | 
| uint16 | getInputLayoutId (void) const | 
|  | 
| OperationType | getOperationType (void) const | 
|  | 
| uint32 | getPrimitiveCount (void) const | 
|  | 
| uint32 | getPrimitiveStart (void) const | 
|  | 
| uint32 | getRenderQueueId (void) const | 
|  | 
| uint32 | getVaoName (void) const | 
|  | 
| const VertexBufferPackedVec & | getVertexBuffers (void) const | 
|  | 
| VertexElement2VecVec | getVertexDeclaration (void) const | 
|  | Gets the combined vertex declaration of all the vertex buffers. 
 | 
|  | 
| 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 
 | 
|  | 
| void * | operator new (size_t sz, void *ptr) | 
|  | placement operator new 
 | 
|  | 
| 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 
 | 
|  | 
| 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. 
 | 
|  | 
| void | setPrimitiveRange (uint32 primStart, uint32 primCount) | 
|  | Limits the range of triangle primitives that is rendered. 
 | 
|  | 
Vertex array objects (Vaos) are immutable objects that describe a combination of vertex buffers and index buffer with a given operation type. 
Once created, they can't be modified. You have to destroy them and create a new one. 
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 |