From 6763c8dc33a80d7695d7df975a2c2fd56bb77749 Mon Sep 17 00:00:00 2001 From: havoc Date: Thu, 25 Nov 2004 16:18:04 +0000 Subject: [PATCH] small beginnings of GLSL support, doesn't do anything yet git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4790 d7cf8633-e32d-0410-b094-e92efae38249 --- r_shadow.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/r_shadow.c b/r_shadow.c index ba4f461b..5a01184e 100644 --- a/r_shadow.c +++ b/r_shadow.c @@ -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; -- 2.39.2