typedef struct q3shaderinfo_s
{
char name[Q3PATHLENGTH];
+#define Q3SHADERINFO_COMPARE_START surfaceparms
int surfaceparms;
int textureflags;
int numlayers;
float reflectfactor; // amount of reflection distort (1.0 = like the cvar specifies)
vec4_t reflectcolor4f; // color tint of reflection (including alpha factor)
float r_water_wateralpha; // additional wateralpha to apply when r_water is active
+#define Q3SHADERINFO_COMPARE_END r_water_wateralpha
}
q3shaderinfo_t;
struct texture_s *currentframe;
// current texture transform matrix (used for water scrolling)
matrix4x4_t currenttexmatrix;
+ matrix4x4_t currentbackgroundtexmatrix;
// various q3 shader features
q3shaderinfo_layer_rgbgen_t rgbgen;
q3shaderinfo_layer_alphagen_t alphagen;
q3shaderinfo_layer_tcgen_t tcgen;
q3shaderinfo_layer_tcmod_t tcmods[Q3MAXTCMODS];
+ q3shaderinfo_layer_tcmod_t backgroundtcmods[Q3MAXTCMODS];
q3shaderinfo_deform_t deforms[Q3MAXDEFORMS];
qboolean colormapping;
struct q3deffect_s *effect; // q3bsp
// FIXME: collisionmarkframe should be kept in a separate array
int collisionmarkframe; // q3bsp // don't collide twice in one trace
+
+ // optimization...
+ float *data_collisionbbox6f; // collision optimization - contains combined bboxes of every data_collisionstride triangles
+ int num_collisionbboxstride;
+ float *data_bbox6f; // collision optimization - contains combined bboxes of every data_collisionstride triangles
+ int num_bboxstride;
}
msurface_t;