]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
small beginnings of GLSL support, doesn't do anything yet
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Thu, 25 Nov 2004 16:18:04 +0000 (16:18 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Thu, 25 Nov 2004 16:18:04 +0000 (16:18 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4790 d7cf8633-e32d-0410-b094-e92efae38249

r_shadow.c

index ba4f461b8575ba8a7be0a008f5b0b2d66a9a16c9..5a01184e99dfdacce7a7b72d49d6534db215a7e5 100644 (file)
@@ -226,6 +226,10 @@ cubemapinfo_t;
 static int numcubemaps;
 static cubemapinfo_t cubemaps[MAX_CUBEMAPS];
 
+GLhandleARB r_shadow_program_light_diffusegloss = 0;
+GLhandleARB r_shadow_program_light_diffuse = 0;
+GLhandleARB r_shadow_program_light_gloss = 0;
+
 void R_Shadow_UncompileWorldLights(void);
 void R_Shadow_ClearWorldLights(void);
 void R_Shadow_SaveWorldLights(void);
@@ -237,6 +241,16 @@ void R_Shadow_ValidateCvars(void);
 static void R_Shadow_MakeTextures(void);
 void R_Shadow_DrawWorldLightShadowVolume(matrix4x4_t *matrix, dlight_t *light);
 
+// beginnings of GL_ARB_shaders support, not done yet
+GLhandleARB GL_Backend_LoadProgram(const char *vertexshaderfilename, const char *fragmentshaderfilename)
+{
+       return 0;
+}
+
+void GL_Backend_FreeProgram(GLhandleARB prog)
+{
+}
+
 void r_shadow_start(void)
 {
        // allocate vertex processing arrays
@@ -268,11 +282,23 @@ void r_shadow_start(void)
        r_shadow_buffer_numsurfacepvsbytes = 0;
        r_shadow_buffer_surfacepvs = NULL;
        r_shadow_buffer_surfacelist = NULL;
+       if (gl_support_fragment_shader)
+       {
+               r_shadow_program_light_diffusegloss = GL_Backend_LoadProgram("glsl/diffusegloss.vert", "glsl/diffusegloss.frag");
+               r_shadow_program_light_diffuse = GL_Backend_LoadProgram("glsl/diffuse.vert", "glsl/diffuse.frag");
+               r_shadow_program_light_gloss = GL_Backend_LoadProgram("glsl/gloss.vert", "glsl/gloss.frag");
+       }
 }
 
 void r_shadow_shutdown(void)
 {
        R_Shadow_UncompileWorldLights();
+       GL_Backend_FreeProgram(r_shadow_program_light_diffusegloss);
+       r_shadow_program_light_diffusegloss = 0;
+       GL_Backend_FreeProgram(r_shadow_program_light_diffuse);
+       r_shadow_program_light_diffuse = 0;
+       GL_Backend_FreeProgram(r_shadow_program_light_gloss);
+       r_shadow_program_light_gloss = 0;
        numcubemaps = 0;
        r_shadow_normalcubetexture = NULL;
        r_shadow_attenuation2dtexture = NULL;