diff options
| author | wyatt8740 <wyatt8740@yahoo.com> | 2014-01-06 12:02:16 -0500 |
|---|---|---|
| committer | wyatt8740 <wyatt8740@yahoo.com> | 2014-01-06 12:02:16 -0500 |
| commit | a8f828a066773a59fdf646299359d35ae0e845af (patch) | |
| tree | 86123409fc6f231cf4136e81159b63cb1e9ec102 /WinQuake/gl_rlight.c | |
| parent | b2951690415054ae8705c07f8df7a4ba7cde382a (diff) | |
| download | quake-pum-a8f828a066773a59fdf646299359d35ae0e845af.tar.gz | |
Removed accidental upload of copyrighted map files
Diffstat (limited to 'WinQuake/gl_rlight.c')
| -rw-r--r-- | WinQuake/gl_rlight.c | 236 |
1 files changed, 118 insertions, 118 deletions
diff --git a/WinQuake/gl_rlight.c b/WinQuake/gl_rlight.c index 80ada45..6155001 100644 --- a/WinQuake/gl_rlight.c +++ b/WinQuake/gl_rlight.c @@ -1,25 +1,25 @@ -/* -Copyright (C) 1996-1997 Id Software, Inc. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ +/*
+Copyright (C) 1996-1997 Id Software, Inc.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+*/
// r_light.c -#include "quakedef.h" +#include "quakedef.h"
int r_dlightframecount; @@ -51,96 +51,96 @@ void R_AnimateLight (void) } } -/* -============================================================================= - -DYNAMIC LIGHTS BLEND RENDERING - -============================================================================= -*/ - -void AddLightBlend (float r, float g, float b, float a2) -{ - float a; - - v_blend[3] = a = v_blend[3] + a2*(1-v_blend[3]); - - a2 = a2/a; - - v_blend[0] = v_blend[1]*(1-a2) + r*a2; - v_blend[1] = v_blend[1]*(1-a2) + g*a2; - v_blend[2] = v_blend[2]*(1-a2) + b*a2; -} - -void R_RenderDlight (dlight_t *light) -{ - int i, j; - float a; - vec3_t v; - float rad; - - rad = light->radius * 0.35; - - VectorSubtract (light->origin, r_origin, v); - if (Length (v) < rad) - { // view is inside the dlight - AddLightBlend (1, 0.5, 0, light->radius * 0.0003); - return; - } - - glBegin (GL_TRIANGLE_FAN); - glColor3f (0.2,0.1,0.0); - for (i=0 ; i<3 ; i++) - v[i] = light->origin[i] - vpn[i]*rad; - glVertex3fv (v); - glColor3f (0,0,0); - for (i=16 ; i>=0 ; i--) - { - a = i/16.0 * M_PI*2; - for (j=0 ; j<3 ; j++) - v[j] = light->origin[j] + vright[j]*cos(a)*rad - + vup[j]*sin(a)*rad; - glVertex3fv (v); - } - glEnd (); -} - -/* -============= -R_RenderDlights -============= -*/ -void R_RenderDlights (void) -{ - int i; - dlight_t *l; - - if (!gl_flashblend.value) - return; - - r_dlightframecount = r_framecount + 1; // because the count hasn't - // advanced yet for this frame - glDepthMask (0); - glDisable (GL_TEXTURE_2D); - glShadeModel (GL_SMOOTH); - glEnable (GL_BLEND); - glBlendFunc (GL_ONE, GL_ONE); - - l = cl_dlights; - for (i=0 ; i<MAX_DLIGHTS ; i++, l++) - { - if (l->die < cl.time || !l->radius) - continue; - R_RenderDlight (l); - } - - glColor3f (1,1,1); - glDisable (GL_BLEND); - glEnable (GL_TEXTURE_2D); - glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glDepthMask (1); -} - +/*
+=============================================================================
+
+DYNAMIC LIGHTS BLEND RENDERING
+
+=============================================================================
+*/
+
+void AddLightBlend (float r, float g, float b, float a2)
+{
+ float a;
+
+ v_blend[3] = a = v_blend[3] + a2*(1-v_blend[3]);
+
+ a2 = a2/a;
+
+ v_blend[0] = v_blend[1]*(1-a2) + r*a2;
+ v_blend[1] = v_blend[1]*(1-a2) + g*a2;
+ v_blend[2] = v_blend[2]*(1-a2) + b*a2;
+}
+
+void R_RenderDlight (dlight_t *light)
+{
+ int i, j;
+ float a;
+ vec3_t v;
+ float rad;
+
+ rad = light->radius * 0.35;
+
+ VectorSubtract (light->origin, r_origin, v);
+ if (Length (v) < rad)
+ { // view is inside the dlight
+ AddLightBlend (1, 0.5, 0, light->radius * 0.0003);
+ return;
+ }
+
+ glBegin (GL_TRIANGLE_FAN);
+ glColor3f (0.2,0.1,0.0);
+ for (i=0 ; i<3 ; i++)
+ v[i] = light->origin[i] - vpn[i]*rad;
+ glVertex3fv (v);
+ glColor3f (0,0,0);
+ for (i=16 ; i>=0 ; i--)
+ {
+ a = i/16.0 * M_PI*2;
+ for (j=0 ; j<3 ; j++)
+ v[j] = light->origin[j] + vright[j]*cos(a)*rad
+ + vup[j]*sin(a)*rad;
+ glVertex3fv (v);
+ }
+ glEnd ();
+}
+
+/*
+=============
+R_RenderDlights
+=============
+*/
+void R_RenderDlights (void)
+{
+ int i;
+ dlight_t *l;
+
+ if (!gl_flashblend.value)
+ return;
+
+ r_dlightframecount = r_framecount + 1; // because the count hasn't
+ // advanced yet for this frame
+ glDepthMask (0);
+ glDisable (GL_TEXTURE_2D);
+ glShadeModel (GL_SMOOTH);
+ glEnable (GL_BLEND);
+ glBlendFunc (GL_ONE, GL_ONE);
+
+ l = cl_dlights;
+ for (i=0 ; i<MAX_DLIGHTS ; i++, l++)
+ {
+ if (l->die < cl.time || !l->radius)
+ continue;
+ R_RenderDlight (l);
+ }
+
+ glColor3f (1,1,1);
+ glDisable (GL_BLEND);
+ glEnable (GL_TEXTURE_2D);
+ glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glDepthMask (1);
+}
+
/* ============================================================================= @@ -205,9 +205,9 @@ void R_PushDlights (void) { int i; dlight_t *l; - - if (gl_flashblend.value) - return; +
+ if (gl_flashblend.value)
+ return;
r_dlightframecount = r_framecount + 1; // because the count hasn't // advanced yet for this frame @@ -229,9 +229,9 @@ LIGHT SAMPLING ============================================================================= */ - -mplane_t *lightplane; -vec3_t lightspot; +
+mplane_t *lightplane;
+vec3_t lightspot;
int RecursiveLightPoint (mnode_t *node, vec3_t start, vec3_t end) { @@ -276,8 +276,8 @@ int RecursiveLightPoint (mnode_t *node, vec3_t start, vec3_t end) return -1; // didn't hit anuthing // check for impact on this node - VectorCopy (mid, lightspot); - lightplane = plane; + VectorCopy (mid, lightspot);
+ lightplane = plane;
surf = cl.worldmodel->surfaces + node->firstsurface; for (i=0 ; i<node->numsurfaces ; i++, surf++) |
