X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=render.h;h=aa84b231f0863b4db569a8ad88c9c1848b2ebaaa;hb=63d72af7573ba79f1c8f5cfd95cdafa5bd9a0f1f;hp=d502447c0302047b6a42a6130e4e4bcad28cc091;hpb=f5b602ea082842a416c64c63e2b3e00585624945;p=xonotic%2Fdarkplaces.git diff --git a/render.h b/render.h index d502447c..aa84b231 100644 --- a/render.h +++ b/render.h @@ -145,6 +145,8 @@ skinframe_t *R_SkinFrame_LoadInternalQuake(const char *name, int textureflags, i skinframe_t *R_SkinFrame_LoadInternal8bit(const char *name, int textureflags, const unsigned char *skindata, int width, int height, const unsigned int *palette, const unsigned int *alphapalette); skinframe_t *R_SkinFrame_LoadMissing(void); +rtexture_t *R_GetCubemap(const char *basename); + void R_View_WorldVisibility(qboolean forcenovis); void R_DrawDecals(void); void R_DrawParticles(void); @@ -193,6 +195,12 @@ extern cvar_t r_smoothnormals_areaweighting; extern cvar_t r_test; +extern cvar_t r_texture_convertsRGB_2d; +extern cvar_t r_texture_convertsRGB_skin; +extern cvar_t r_texture_convertsRGB_cubemap; +extern cvar_t r_texture_convertsRGB_skybox; +extern cvar_t r_texture_convertsRGB_particles; + #include "gl_backend.h" extern rtexture_t *r_texture_blanknormalmap; @@ -425,7 +433,7 @@ typedef enum gl20_texunit_e // material properties for a colormapped material // conflicts with secondary material GL20TU_PANTS = 4, - GL20TU_SHIRT = 5, + GL20TU_SHIRT = 7, // fog fade in the distance GL20TU_FOGMASK = 8, // compiled ambient lightmap and deluxemap @@ -444,30 +452,37 @@ typedef enum gl20_texunit_e GL20TU_SHADOWMAPCUBE = 11, GL20TU_SHADOWMAP2D = 11, GL20TU_CUBEPROJECTION = 12, + // orthographic-projection shadowmapping + GL20TU_SHADOWMAPORTHORECT = 15, + GL20TU_SHADOWMAPORTHO2D = 15, // rtlight prepass data (screenspace depth and normalmap) GL20TU_SCREENDEPTH = 13, GL20TU_SCREENNORMALMAP = 14, // lightmap prepass data (screenspace diffuse and specular from lights) GL20TU_SCREENDIFFUSE = 11, GL20TU_SCREENSPECULAR = 12, + // fake reflections + GL20TU_REFLECTMASK = 5, + GL20TU_REFLECTCUBE = 6 } gl20_texunit; -void R_SetupGenericShader(qboolean usetexture); -void R_SetupGenericTwoTextureShader(int texturemode); -void R_SetupDepthOrShadowShader(void); -void R_SetupShowDepthShader(void); -void R_SetupSurfaceShader(const vec3_t lightcolorbase, qboolean modellighting, float ambientscale, float diffusescale, float specularscale, rsurfacepass_t rsurfacepass); -void R_SetupDeferredLightShader(const rtlight_t *rtlight); +void R_SetupShader_Generic(rtexture_t *first, rtexture_t *second, int texturemode, int rgbscale); +void R_SetupShader_DepthOrShadow(void); +void R_SetupShader_ShowDepth(void); +void R_SetupShader_Surface(const vec3_t lightcolorbase, qboolean modellighting, float ambientscale, float diffusescale, float specularscale, rsurfacepass_t rsurfacepass); +void R_SetupShader_DeferredLight(const rtlight_t *rtlight); typedef struct r_waterstate_waterplane_s { rtexture_t *texture_refraction; rtexture_t *texture_reflection; + rtexture_t *texture_camera; mplane_t plane; int materialflags; // combined flags of all water surfaces on this plane unsigned char pvsbits[(MAX_MAP_LEAFS+7)>>3]; // FIXME: buffer overflow on huge maps qboolean pvsvalid; + int camera_entity; } r_waterstate_waterplane_t; @@ -476,9 +491,11 @@ typedef struct r_waterstate_s qboolean enabled; qboolean renderingscene; // true while rendering a refraction or reflection texture, disables water surfaces + qboolean renderingrefraction; int waterwidth, waterheight; int texturewidth, textureheight; + int camerawidth, cameraheight; int maxwaterplanes; // same as MAX_WATERPLANES int numwaterplanes;