X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=r_textures.h;h=4df426a6a4c249170651aa9be271a19ce2f6fa0b;hp=be6dbe0565087ad678815185ec9efa17f601cabf;hb=66cfa344b8aeaaaf19c3e609032807046c906d78;hpb=1c9dadb470e254303bacae8bc597a743d3265b0e diff --git a/r_textures.h b/r_textures.h index be6dbe05..4df426a6 100644 --- a/r_textures.h +++ b/r_textures.h @@ -18,17 +18,15 @@ #define TEXF_FORCELINEAR 0x00000080 // indicates texture should be affected by gl_picmip and gl_max_size cvar #define TEXF_PICMIP 0x00000100 +// indicates texture should be compressed if possible +#define TEXF_COMPRESS 0x00000200 // used for checking if textures mismatch -#define TEXF_IMPORTANTBITS (TEXF_ALPHA | TEXF_MIPMAP | TEXF_CLAMP | TEXF_FORCENEAREST | TEXF_FORCELINEAR | TEXF_PICMIP) +#define TEXF_IMPORTANTBITS (TEXF_ALPHA | TEXF_MIPMAP | TEXF_CLAMP | TEXF_FORCENEAREST | TEXF_FORCELINEAR | TEXF_PICMIP | TEXF_COMPRESS) // 8bit paletted #define TEXTYPE_PALETTE 1 -// 24bit RGB -#define TEXTYPE_RGB 2 // 32bit RGBA #define TEXTYPE_RGBA 3 -// 16bit DSDT -#define TEXTYPE_DSDT 4 // contents of this structure are mostly private to gl_textures.c typedef struct rtexture_s @@ -45,11 +43,25 @@ typedef struct rtexturepool_s } rtexturepool_t; +typedef void (*updatecallback_t)(rtexture_t *rt, void *data); + // allocate a texture pool, to be used with R_LoadTexture rtexturepool_t *R_AllocTexturePool(void); // free a texture pool (textures can not be freed individually) void R_FreeTexturePool(rtexturepool_t **rtexturepool); +// the color/normal/etc cvars should be checked by callers of R_LoadTexture* functions to decide whether to add TEXF_COMPRESS to the flags +extern cvar_t gl_texturecompression; +extern cvar_t gl_texturecompression_color; +extern cvar_t gl_texturecompression_normal; +extern cvar_t gl_texturecompression_gloss; +extern cvar_t gl_texturecompression_glow; +extern cvar_t gl_texturecompression_2d; +extern cvar_t gl_texturecompression_q3bsplightmaps; +extern cvar_t gl_texturecompression_q3bspdeluxemaps; +extern cvar_t gl_texturecompression_sky; +extern cvar_t gl_texturecompression_lightcubemaps; + // add a texture to a pool and optionally precache (upload) it // (note: data == NULL is perfectly acceptable) // (note: palette must not be NULL if using TEXTYPE_PALETTE) @@ -82,5 +94,9 @@ int R_TextureHeight(rtexture_t *rt); // frees processing buffers each frame, and may someday animate procedural textures void R_Textures_Frame(void); +// maybe rename this - sounds awful? [11/21/2007 Black] +void R_MarkDirtyTexture(rtexture_t *rt); +void R_MakeTextureDynamic(rtexture_t *rt, updatecallback_t updatecallback, void *data); + #endif