]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - render.h
this supposedly is faster on older cards (or with badly optimizing drivers)
[xonotic/darkplaces.git] / render.h
index 23b6b31400ad67a91251624df0dc47f6d0b58499..a6bc20793a6cca7ca0bd6ec15f60b5c070cd71d4 100644 (file)
--- a/render.h
+++ b/render.h
@@ -211,7 +211,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;
@@ -433,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
@@ -452,9 +452,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 +462,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 +478,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 +492,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;