]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - render.h
new cvars: r_drawparticles_nearclip_min and r_drawparticles_nearclip_max, use a range...
[xonotic/darkplaces.git] / render.h
index 23b6b31400ad67a91251624df0dc47f6d0b58499..ea72d28229f7ca99577271d64a87505c6a158435 100644 (file)
--- a/render.h
+++ b/render.h
@@ -114,7 +114,10 @@ extern cvar_t r_showdisabledepthtest;
 // view origin
 //
 extern cvar_t r_drawentities;
+extern cvar_t r_draw2d;
+extern qboolean r_draw2d_force;
 extern cvar_t r_drawviewmodel;
+extern cvar_t r_drawworld;
 extern cvar_t r_speeds;
 extern cvar_t r_fullbright;
 extern cvar_t r_wateralpha;
@@ -211,7 +214,7 @@ extern rtexture_t *r_texture_notexture;
 extern rtexture_t *r_texture_whitecube;
 extern rtexture_t *r_texture_normalizationcube;
 extern rtexture_t *r_texture_fogattenuation;
-//extern rtexture_t *r_texture_fogintensity;
+extern rtexture_t *r_texture_fogheighttexture;
 
 extern unsigned int r_queries[MAX_OCCLUSION_QUERIES];
 extern unsigned int r_numqueries;
@@ -377,6 +380,9 @@ typedef struct rsurfacestate_s
        // this transforms only the Z to S, and T is always 0.5
        matrix4x4_t entitytoattenuationz;
 
+       // user wavefunc parameters (from csqc)
+       float userwavefunc_param[Q3WAVEFUNC_USER_COUNT];
+
        // pointer to an entity_render_t used only by R_GetCurrentTexture and
        // RSurf_ActiveWorldEntity/RSurf_ActiveModelEntity as a unique id within
        // each frame (see r_frame also)
@@ -433,7 +439,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
@@ -452,9 +458,9 @@ typedef enum gl20_texunit_e
        GL20TU_SHADOWMAPCUBE = 11,
        GL20TU_SHADOWMAP2D = 11,
        GL20TU_CUBEPROJECTION = 12,
-       // orthographic-projection shadowmapping, reuses prepass screenspace depth, so must fix later if the two could ever coexist during final deferred lighting pass
-       GL20TU_SHADOWMAPORTHORECT = 13,
-       GL20TU_SHADOWMAPORTHO2D = 13,
+       // orthographic-projection shadowmapping
+       GL20TU_SHADOWMAPORTHORECT = 15,
+       GL20TU_SHADOWMAPORTHO2D = 15,
        // rtlight prepass data (screenspace depth and normalmap)
        GL20TU_SCREENDEPTH = 13,
        GL20TU_SCREENNORMALMAP = 14,
@@ -462,8 +468,9 @@ typedef enum gl20_texunit_e
        GL20TU_SCREENDIFFUSE = 11,
        GL20TU_SCREENSPECULAR = 12,
        // fake reflections
-       GL20TU_REFLECTMASK = 14,
-       GL20TU_REFLECTCUBE = 15
+       GL20TU_REFLECTMASK = 5,
+       GL20TU_REFLECTCUBE = 6,
+       GL20TU_FOGHEIGHTTEXTURE = 14
 }
 gl20_texunit;
 
@@ -477,10 +484,12 @@ 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;
 
@@ -489,9 +498,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;