}
blendweights_t;
-typedef struct r_vertexgeneric_s
-{
- // 36 bytes
- float vertex3f[3];
- float color4f[4];
- float texcoord2f[2];
-}
-r_vertexgeneric_t;
-
-typedef struct r_vertexmesh_s
-{
- // 88 bytes
- float vertex3f[3];
- float color4f[4];
- float texcoordtexture2f[2];
- float texcoordlightmap2f[2];
- float svector3f[3];
- float tvector3f[3];
- float normal3f[3];
- unsigned char skeletalindex4ub[4];
- unsigned char skeletalweight4ub[4];
-}
-r_vertexmesh_t;
-
typedef struct r_meshbuffer_s
{
int bufferobject; // OpenGL
unsigned char *data_skeletalindex4ub;
unsigned char *data_skeletalweight4ub;
int *data_lightmapoffsets; // index into surface's lightmap samples for vertex lighting
- 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_lightmapcolor4f;
int vbooffset_skeletalindex4ub;
int vbooffset_skeletalweight4ub;
- int vbooffset_vertexmesh;
// morph blending, these are zero if model is skeletal or static
int num_morphframes;
struct md3vertex_s *data_morphmd3vertex;
// set if there is some kind of animation on this model
qboolean isanimated;
- // vertex and index buffers for rendering
- r_meshbuffer_t *vertexmesh_vertexbuffer;
-
// dynamic mesh building support (Mod_Mesh_*)
int num_vertexhashsize; // always pow2 for simple masking
int *data_vertexhash; // hash table - wrapping buffer for storing index of similar vertex with -1 as terminator