]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - r_shadow.c
fix stupid typo in Cvar_RegisterVariable call
[xonotic/darkplaces.git] / r_shadow.c
index fe2e6af389819823b8006e676ebfdd3285a28405..20836366d6203756ef8a0288c5e2362a2fb0edff 100644 (file)
@@ -223,7 +223,7 @@ cvar_t r_shadow_glsl = {0, "r_shadow_glsl", "1"};
 cvar_t r_shadow_glsl_offsetmapping = {0, "r_shadow_glsl_offsetmapping", "0"};
 cvar_t r_shadow_glsl_offsetmapping_scale = {0, "r_shadow_glsl_offsetmapping_scale", "-0.04"};
 cvar_t r_shadow_glsl_offsetmapping_bias = {0, "r_shadow_glsl_offsetmapping_bias", "0.04"};
-cvar_t r_shadow_glsl_geforcefxlowquality = {0, "r_shadow_glsl_geforcefxlowquality", "1"};
+cvar_t r_shadow_glsl_usehalffloat = {0, "r_shadow_glsl_usehalffloat", "0"};
 cvar_t r_shadow_glsl_surfacenormalize = {0, "r_shadow_glsl_surfacenormalize", "1"};
 cvar_t gl_ext_stenciltwoside = {0, "gl_ext_stenciltwoside", "1"};
 cvar_t r_editlights = {0, "r_editlights", "0"};
@@ -427,9 +427,9 @@ const char *builtinshader_light_frag =
 void r_shadow_start(void)
 {
        int i;
-       // if not a GeForce FX, turn off the lowquality cvar
-       if (strncmp(gl_renderer, "GeForce FX ", strlen("GeForce FX ")))
-               Cvar_SetValue("r_shadow_glsl_geforcefxlowquality", 0);
+       // use half float math where available (speed gain on NVIDIA GFFX and GF6)
+       if (gl_support_half_float)
+               Cvar_SetValue("r_shadow_glsl_usehalffloat", 1);
        // allocate vertex processing arrays
        numcubemaps = 0;
        r_shadow_attenuation2dtexture = NULL;
@@ -620,7 +620,7 @@ void R_Shadow_Help_f(void)
 "r_shadow_glsl_offsetmapping : enables Offset Mapping bumpmap enhancement\n"
 "r_shadow_glsl_offsetmapping_scale : controls depth of Offset Mapping\n"
 "r_shadow_glsl_offsetmapping_bias : should be negative half of scale\n"
-"r_shadow_glsl_geforcefxlowquality : use lower quality lighting\n"
+"r_shadow_glsl_usehalffloat : use lower quality lighting\n"
 "r_shadow_glsl_surfacenormalize : makes bumpmapping slightly higher quality\n"
 "r_shadow_scissor : use scissor optimization\n"
 "r_shadow_shadow_polygonfactor : nudge shadow volumes closer/further\n"
@@ -668,7 +668,7 @@ void R_Shadow_Init(void)
        Cvar_RegisterVariable(&r_shadow_glsl_offsetmapping);
        Cvar_RegisterVariable(&r_shadow_glsl_offsetmapping_scale);
        Cvar_RegisterVariable(&r_shadow_glsl_offsetmapping_bias);
-       Cvar_RegisterVariable(&r_shadow_glsl_geforcefxlowquality);
+       Cvar_RegisterVariable(&r_shadow_glsl_usehalffloat);
        Cvar_RegisterVariable(&r_shadow_glsl_surfacenormalize);
        Cvar_RegisterVariable(&gl_ext_stenciltwoside);
        if (gamemode == GAME_TENEBRAE)
@@ -1224,7 +1224,7 @@ void R_Shadow_Stage_Lighting(int stenciltest)
                        r_shadow_lightpermutation |= SHADERPERMUTATION_OFFSETMAPPING;
                if (r_shadow_glsl_surfacenormalize.integer && r_shadow_program_light[r_shadow_lightpermutation | SHADERPERMUTATION_SURFACENORMALIZE])
                        r_shadow_lightpermutation |= SHADERPERMUTATION_SURFACENORMALIZE;
-               if (r_shadow_glsl_geforcefxlowquality.integer && r_shadow_program_light[r_shadow_lightpermutation | SHADERPERMUTATION_GEFORCEFX])
+               if (r_shadow_glsl_usehalffloat.integer && r_shadow_program_light[r_shadow_lightpermutation | SHADERPERMUTATION_GEFORCEFX])
                        r_shadow_lightpermutation |= SHADERPERMUTATION_GEFORCEFX;
                r_shadow_lightprog = r_shadow_program_light[r_shadow_lightpermutation];
                qglUseProgramObjectARB(r_shadow_lightprog);CHECKGLERROR
@@ -3363,7 +3363,7 @@ void R_Shadow_LoadWorldLights(void)
 void R_Shadow_SaveWorldLights(void)
 {
        dlight_t *light;
-       int bufchars, bufmaxchars;
+       size_t bufchars, bufmaxchars;
        char *buf, *oldbuf;
        char name[MAX_QPATH];
        char line[1024];
@@ -3386,7 +3386,7 @@ void R_Shadow_SaveWorldLights(void)
                        sprintf(line, "%s%f %f %f %f %f %f %f %d \"%s\" %f %f %f %f\n", light->shadow ? "" : "!", light->origin[0], light->origin[1], light->origin[2], light->radius, light->color[0], light->color[1], light->color[2], light->style, light->cubemapname, light->corona, light->angles[0], light->angles[1], light->angles[2]);
                else
                        sprintf(line, "%s%f %f %f %f %f %f %f %d\n", light->shadow ? "" : "!", light->origin[0], light->origin[1], light->origin[2], light->radius, light->color[0], light->color[1], light->color[2], light->style);
-               if (bufchars + (int) strlen(line) > bufmaxchars)
+               if (bufchars + strlen(line) > bufmaxchars)
                {
                        bufmaxchars = bufchars + strlen(line) + 2048;
                        oldbuf = buf;
@@ -3405,7 +3405,7 @@ void R_Shadow_SaveWorldLights(void)
                }
        }
        if (bufchars)
-               FS_WriteFile(name, buf, bufchars);
+               FS_WriteFile(name, buf, (fs_offset_t)bufchars);
        if (buf)
                Mem_Free(buf);
 }