aboutsummaryrefslogtreecommitdiffstats
path: root/WinQuake/gl_rlight.c
diff options
context:
space:
mode:
Diffstat (limited to 'WinQuake/gl_rlight.c')
-rw-r--r--WinQuake/gl_rlight.c236
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++)