- r_vertexmesh_t *data_vertexmesh; // interleaved arrays for D3D
- // vertex buffer object (stores geometry in video memory)
- r_meshbuffer_t *vbo_vertexbuffer;
- int vbooffset_vertex3f;
- int vbooffset_svector3f;
- int vbooffset_tvector3f;
- int vbooffset_normal3f;
- int vbooffset_texcoordtexture2f;
- int vbooffset_texcoordlightmap2f;
- int vbooffset_lightmapcolor4f;
- int vbooffset_skeletalindex4ub;
- int vbooffset_skeletalweight4ub;
- int vbooffset_vertexmesh;
+ // index buffer - only one of these will be non-NULL
+ r_meshbuffer_t *data_element3i_indexbuffer;
+ int data_element3i_bufferoffset;
+ unsigned short *data_element3s; // unsigned short[tris*3] triangles of the mesh in unsigned short format (NULL if num_vertices > 65536)
+ r_meshbuffer_t *data_element3s_indexbuffer;
+ int data_element3s_bufferoffset;
+ // vertex buffers
+ r_meshbuffer_t *data_vertex3f_vertexbuffer;
+ int data_vertex3f_bufferoffset;
+ r_meshbuffer_t *data_svector3f_vertexbuffer;
+ int data_svector3f_bufferoffset;
+ r_meshbuffer_t *data_tvector3f_vertexbuffer;
+ int data_tvector3f_bufferoffset;
+ r_meshbuffer_t *data_normal3f_vertexbuffer;
+ int data_normal3f_bufferoffset;
+ r_meshbuffer_t *data_texcoordtexture2f_vertexbuffer;
+ int data_texcoordtexture2f_bufferoffset;
+ r_meshbuffer_t *data_texcoordlightmap2f_vertexbuffer;
+ int data_texcoordlightmap2f_bufferoffset;
+ r_meshbuffer_t *data_lightmapcolor4f_vertexbuffer;
+ int data_lightmapcolor4f_bufferoffset;
+ r_meshbuffer_t *data_skeletalindex4ub_vertexbuffer;
+ int data_skeletalindex4ub_bufferoffset;
+ r_meshbuffer_t *data_skeletalweight4ub_vertexbuffer;
+ int data_skeletalweight4ub_bufferoffset;