]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_shared.h
huge (16%) speed gain on surface rendering by eliminating the surfmesh chain in q1bsp...
[xonotic/darkplaces.git] / model_shared.h
index 8a296f3d9dfcdff4c80d7ab4dd6595a63f02de86..92a42aeebe2b2b58a4ff252d231ce3e562e00600 100644 (file)
@@ -202,7 +202,6 @@ typedef struct model_brushq1_s
        int                             *surfacepvsframes;
        msurface_t              *surfacepvsnext;
        surfmesh_t              *entiremesh;
-       surfmesh_t              *surfmeshes;
 
        int                             numsurfedges;
        int                             *surfedges;
@@ -269,6 +268,7 @@ model_brushq2_t;
 */
 
 #define Q3MTEXTURERENDERFLAGS_NODRAW 1
+#define Q3MTEXTURERENDERFLAGS_SKY 2
 
 typedef struct q3mtexture_s
 {
@@ -357,9 +357,7 @@ typedef struct q3mface_s
        int collisionmarkframe; // don't collide twice in one trace
        int type;
        int firstvertex;
-       int numvertices;
        int firstelement;
-       int numelements;
        int patchsize[2];
        // used for processing
        int markframe;
@@ -369,6 +367,8 @@ typedef struct q3mface_s
        float mins[3];
        float maxs[3];
 
+       int num_vertices;
+       int num_triangles;
        float *data_vertex3f;
        float *data_texcoordtexture2f;
        float *data_texcoordlightmap2f;
@@ -376,7 +376,6 @@ typedef struct q3mface_s
        float *data_tvector3f;
        float *data_normal3f;
        float *data_color4f;
-       int numtriangles;
        int *data_element3i;
        int *data_neighbor3i;
 }
@@ -514,8 +513,6 @@ typedef struct model_s
        void(*DrawSky)(struct entity_render_s *ent);
        // draw the model using lightmap/dlight shading
        void(*Draw)(struct entity_render_s *ent);
-       // draw a fake shadow for the model
-       void(*DrawFakeShadow)(struct entity_render_s *ent);
        // draw a shadow volume for the model based on light source
        void(*DrawShadowVolume)(struct entity_render_s *ent, vec3_t relativelightorigin, float lightradius);
        // draw the lighting on a model (through stencil)
@@ -543,6 +540,8 @@ extern rtexture_t *mod_shared_detailtextures[NUM_DETAILTEXTURES];
 // every texture must be in a pool...
 extern rtexturepool_t *mod_shared_texturepool;
 
+extern rtexture_t *mod_shared_distorttexture;
+
 // model loading
 extern model_t *loadmodel;
 extern qbyte *mod_base;