]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_brush.h
draw models which have no textures using the notexture checkerboard
[xonotic/darkplaces.git] / model_brush.h
index 30296c1b7114dc4adefec7d6c1120b16f7e8a313..fdc69165e7ec50614a0c04f36a331799318ad88f 100644 (file)
@@ -70,6 +70,8 @@ typedef struct texture_s
        rtexture_t *glowtexture;
        // alpha texture (used for fogging), NULL if opaque
        rtexture_t *fogtexture;
+       // detail texture (usually not used if transparent)
+       rtexture_t *detailtexture;
 
        // total frames in sequence and alternate sequence
        int anim_total[2];
@@ -116,6 +118,8 @@ typedef struct surfvertex_s
        float st[2];
        // lightmap coordinates
        float uv[2];
+       // detail texture coordinates
+       float ab[2];
 }
 surfvertex_t;
 
@@ -172,6 +176,8 @@ typedef struct msurface_s
        // no texcoord info (that can be generated from these)
        int                     poly_numverts;
        float           *poly_verts;
+       // the center is useful for sorting
+       float           poly_center[3];
 
        // these are regenerated every frame
        // lighting info
@@ -200,10 +206,11 @@ msurface_t;
 #define SHADERSTAGE_NORMAL 1
 #define SHADERSTAGE_COUNT 2
 
+struct entity_render_s;
 // change this stuff when real shaders are added
 typedef struct Cshader_s
 {
-       void (*shaderfunc[SHADERSTAGE_COUNT])(msurface_t *firstsurf);
+       void (*shaderfunc[SHADERSTAGE_COUNT])(const struct entity_render_s *ent, const msurface_t *firstsurf);
        // list of surfaces using this shader (used during surface rendering)
        msurface_t *chain;
 }