]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_brush.h
a rather hefty 6% speed gain by getting rid of the R_Mesh_UpdateFarClip function...
[xonotic/darkplaces.git] / model_brush.h
index 40ea1a64bbffd69de9199805b9323205f73e00c3..30296c1b7114dc4adefec7d6c1120b16f7e8a313 100644 (file)
@@ -18,6 +18,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 */
 
+#ifndef MODEL_BRUSH_H
+#define MODEL_BRUSH_H
+
 /*
 ==============================================================================
 
@@ -54,28 +57,36 @@ mplane_t;
 
 typedef struct texture_s
 {
-       char                            name[16];
-       unsigned                        width, height;
-       int                                     flags;                          // LordHavoc: SURF_ flags
-
-       rtexture_t                      *texture;
-       rtexture_t                      *glowtexture;
-       rtexture_t                      *fogtexture;            // alpha-only version of main texture
-
-       int                                     anim_total;                     // total frames in sequence (< 2 = not animated)
-       struct texture_s        *anim_frames[10];       // LordHavoc: direct pointers to each of the frames in the sequence
-       struct texture_s        *alternate_anims;       // bmodels in frame 1 use these
+       // name
+       char name[16];
+       // size
+       unsigned int width, height;
+       // SURF_ flags
+       unsigned int flags;
+
+       // base texture without fullbrights, never NULL
+       rtexture_t *texture;
+       // fullbrights texture, NULL if no fullbrights used
+       rtexture_t *glowtexture;
+       // alpha texture (used for fogging), NULL if opaque
+       rtexture_t *fogtexture;
+
+       // total frames in sequence and alternate sequence
+       int anim_total[2];
+       // direct pointers to each of the frames in the sequences
+       // (indexed as [alternate][frame])
+       struct texture_s *anim_frames[2][10];
+       // set if animated or there is an alternate frame set
+       // (this is an optimization in the renderer)
+       int animated;
 }
 texture_t;
 
 
 #define        SURF_PLANEBACK          2
 #define        SURF_DRAWSKY            4
-//#define SURF_DRAWSPRITE              8
 #define SURF_DRAWTURB          0x10
 #define SURF_LIGHTMAP          0x20
-//#define SURF_DRAWBACKGROUND  0x40
-//#define SURF_UNDERWATER              0x80
 #define SURF_DRAWNOALPHA       0x100
 #define SURF_DRAWFULLBRIGHT    0x200
 #define SURF_LIGHTBOTHSIDES    0x400
@@ -300,3 +311,6 @@ struct model_s;
 void Mod_LoadBrushModel (struct model_s *mod, void *buffer);
 void Mod_BrushInit(void);
 void Mod_FindNonSolidLocation(vec3_t pos, struct model_s *mod);
+
+#endif
+