X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=render.h;h=5e004ef9d4fbddde45c1d882203a403889a56d9f;hp=ff6258b7b26fad304320327442a42eb111a44b15;hb=3c8da461b7565f9c6524c48aecc362270815c3ee;hpb=c2abad5db0c64852d4e807fac9d247ac220891c1 diff --git a/render.h b/render.h index ff6258b7..5e004ef9 100644 --- a/render.h +++ b/render.h @@ -405,5 +405,38 @@ void R_SetupGenericTwoTextureShader(int texturemode); void R_SetupDepthOrShadowShader(void); void R_SetupSurfaceShader(const vec3_t lightcolorbase, qboolean modellighting, float ambientscale, float diffusescale, float specularscale, rsurfacepass_t rsurfacepass); +typedef struct r_waterstate_waterplane_s +{ + rtexture_t *texture_refraction; + rtexture_t *texture_reflection; + mplane_t plane; + int materialflags; // combined flags of all water surfaces on this plane + unsigned char pvsbits[(32768+7)>>3]; // FIXME: buffer overflow on huge maps + qboolean pvsvalid; +} +r_waterstate_waterplane_t; + +#define MAX_WATERPLANES 16 + +typedef struct r_waterstate_s +{ + qboolean enabled; + + qboolean renderingscene; // true while rendering a refraction or reflection texture, disables water surfaces + + int waterwidth, waterheight; + int texturewidth, textureheight; + + int maxwaterplanes; // same as MAX_WATERPLANES + int numwaterplanes; + r_waterstate_waterplane_t waterplanes[MAX_WATERPLANES]; + + float screenscale[2]; + float screencenter[2]; +} +r_waterstate_t; + +extern r_waterstate_t r_waterstate; + #endif