}
texture_shaderpass_t;
-typedef enum texturelayertype_e
-{
- TEXTURELAYERTYPE_INVALID,
- TEXTURELAYERTYPE_LITTEXTURE,
- TEXTURELAYERTYPE_TEXTURE,
- TEXTURELAYERTYPE_FOG
-}
-texturelayertype_t;
-
-typedef struct texturelayer_s
-{
- texturelayertype_t type;
- qboolean depthmask;
- int blendfunc1;
- int blendfunc2;
- rtexture_t *texture;
- matrix4x4_t texmatrix;
- vec4_t color;
-}
-texturelayer_t;
-
typedef struct texture_s
{
// q1bsp
void *update_lastrenderentity;
// the current alpha of this texture (may be affected by r_wateralpha, also basealpha, and ent->alpha)
float currentalpha;
+ // current value of blendfunc - one of:
+ // {GL_SRC_ALPHA, GL_ONE}
+ // {GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA}
+ // {customblendfunc[0], customblendfunc[1]}
+ // {GL_ONE, GL_ZERO}
+ int currentblendfunc[2];
// the current texture frame in animation
struct texture_s *currentframe;
// current texture transform matrix (used for water scrolling)
// from q3 shaders
int customblendfunc[2];
- int currentnumlayers;
- texturelayer_t currentlayers[16];
-
// q3bsp
char name[64];
int surfaceflags;
vec4_t reflectcolor4f; // color tint of reflection (including alpha factor)
float r_water_wateralpha; // additional wateralpha to apply when r_water is active
float r_water_waterscroll[2]; // scale and speed
+ float refractive_index; // used by r_shadow_bouncegrid for bending photons for refracted light
int camera_entity; // entity number for use by cameras
// offsetmapping
// diffuse and ambient
float rtlightambient;
+
+ // used by Mod_Mesh_GetTexture for drawflag overrides, to disambiguate the same texture with different drawflags
+ int drawflag;
}
texture_t;
// texture fullbrights
extern cvar_t r_fullbrights;
+extern cvar_t mod_noshader_default_offsetmapping;
+extern cvar_t mod_q3shader_default_offsetmapping;
+extern cvar_t mod_q3shader_default_offsetmapping_scale;
+extern cvar_t mod_q3shader_default_offsetmapping_bias;
+extern cvar_t mod_q3shader_default_polygonoffset;
+extern cvar_t mod_q3shader_default_polygonfactor;
+extern cvar_t mod_q3shader_default_refractive_index;
+extern cvar_t mod_q3shader_force_addalpha;
+extern cvar_t mod_q3shader_force_terrain_alphaflag;
+
void Mod_Init (void);
void Mod_Reload (void);
dp_model_t *Mod_LoadModel(dp_model_t *mod, qboolean crash, qboolean checkdisk);