]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_shared.h
reworked the MOVETYPE_WALK and MOVETYPE_STEP sticking logic so that it
[xonotic/darkplaces.git] / model_shared.h
index 1604c5fb923068e88524aad3459a9ba0b6ae0103..dd5d5e07ba5665d6dfa28345855af7f4ab653d54 100644 (file)
@@ -163,17 +163,19 @@ typedef struct surfmesh_s
        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;
-       size_t vbooffset_vertex3f;
-       size_t vbooffset_svector3f;
-       size_t vbooffset_tvector3f;
-       size_t vbooffset_normal3f;
-       size_t vbooffset_texcoordtexture2f;
-       size_t vbooffset_texcoordlightmap2f;
-       size_t vbooffset_lightmapcolor4f;
-       size_t vbooffset_skeletalindex4ub;
-       size_t vbooffset_skeletalweight4ub;
+       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;
        // morph blending, these are zero if model is skeletal or static
        int num_morphframes;
        struct md3vertex_s *data_morphmd3vertex;
@@ -190,9 +192,7 @@ typedef struct surfmesh_s
        qboolean isanimated;
 
        // vertex and index buffers for rendering
-       r_vertexmesh_t *vertexmesh;
-       r_meshbuffer_t *vertex3fbuffer;
-       r_meshbuffer_t *vertexmeshbuffer;
+       r_meshbuffer_t *vertexmesh_vertexbuffer;
 }
 surfmesh_t;
 
@@ -224,10 +224,13 @@ typedef struct shadowmesh_s
        // used always
        int *element3i;
        r_meshbuffer_t *element3i_indexbuffer;
-       size_t element3i_bufferoffset;
+       int element3i_bufferoffset;
        unsigned short *element3s;
        r_meshbuffer_t *element3s_indexbuffer;
-       size_t element3s_bufferoffset;
+       int element3s_bufferoffset;
+       // vertex/index buffers for rendering
+       // (created by Mod_ShadowMesh_Finish if possible)
+       r_vertexmesh_t *vertexmesh; // usually NULL
        // used for shadow mapping cubemap side partitioning
        int sideoffsets[6], sidetotals[6];
        // used for shadow mesh (NULL on light mesh)
@@ -236,16 +239,12 @@ typedef struct shadowmesh_s
        // while building meshes
        shadowmeshvertexhash_t **vertexhashtable, *vertexhashentries;
        r_meshbuffer_t *vbo_vertexbuffer;
-       size_t vbooffset_vertex3f;
-       size_t vbooffset_svector3f;
-       size_t vbooffset_tvector3f;
-       size_t vbooffset_normal3f;
-       size_t vbooffset_texcoord2f;
-       // vertex/index buffers for rendering
-       // (created by Mod_ShadowMesh_Finish if possible)
-       r_vertexmesh_t *vertexmesh; // usually NULL
-       r_meshbuffer_t *vertex3fbuffer;
-       r_meshbuffer_t *vertexmeshbuffer; // usually NULL
+       int vbooffset_vertex3f;
+       int vbooffset_svector3f;
+       int vbooffset_tvector3f;
+       int vbooffset_normal3f;
+       int vbooffset_texcoord2f;
+       int vbooffset_vertexmesh;
 }
 shadowmesh_t;