diff --git a/config/visual-studio/renderer.vcxproj b/config/visual-studio/renderer.vcxproj
index 47dc83e..6e4d52f 100644
--- a/config/visual-studio/renderer.vcxproj
+++ b/config/visual-studio/renderer.vcxproj
@@ -107,7 +107,6 @@
-
diff --git a/config/visual-studio/renderer.vcxproj.filters b/config/visual-studio/renderer.vcxproj.filters
index a04a56f..a8a9384 100644
--- a/config/visual-studio/renderer.vcxproj.filters
+++ b/config/visual-studio/renderer.vcxproj.filters
@@ -29,9 +29,6 @@
Source Files
-
- Source Files
-
Source Files
diff --git a/src/engine/renderer/tr_backend.c b/src/engine/renderer/tr_backend.c
index a90ef75..687e141 100644
--- a/src/engine/renderer/tr_backend.c
+++ b/src/engine/renderer/tr_backend.c
@@ -608,9 +608,6 @@ void RB_RenderDrawSurfList( drawSurf_t *drawSurfs, int numDrawSurfs ) {
// darken down any stencil shadows
RB_ShadowFinish();
-
- // add light flares on lights that aren't obscured
- RB_RenderFlares();
}
diff --git a/src/engine/renderer/tr_cmds.c b/src/engine/renderer/tr_cmds.c
index 12eef54..7127cc1 100644
--- a/src/engine/renderer/tr_cmds.c
+++ b/src/engine/renderer/tr_cmds.c
@@ -64,11 +64,6 @@ void R_PerformanceCounters( void ) {
{
ri.Printf( PRINT_ALL, "zFar: %.0f\n", tr.viewParms.zFar );
}
- else if (r_speeds->integer == 6 )
- {
- ri.Printf( PRINT_ALL, "flare adds:%i tests:%i renders:%i\n",
- backEnd.pc.c_flareAdds, backEnd.pc.c_flareTests, backEnd.pc.c_flareRenders );
- }
Com_Memset( &tr.pc, 0, sizeof( tr.pc ) );
Com_Memset( &backEnd.pc, 0, sizeof( backEnd.pc ) );
@@ -310,7 +305,6 @@ void RE_BeginFrame( stereoFrame_t stereoFrame ) {
}
tr.frameCount++;
- tr.frameSceneNum = 0;
//
// texturemode stuff
diff --git a/src/engine/renderer/tr_flares.c b/src/engine/renderer/tr_flares.c
deleted file mode 100644
index 27dd1f8..0000000
--- a/src/engine/renderer/tr_flares.c
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
-===========================================================================
-Copyright (C) 1999-2005 Id Software, Inc.
-
-This file is part of Quake III Arena source code.
-
-Quake III Arena source code 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.
-
-Quake III Arena source code 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 Foobar; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-===========================================================================
-*/
-// tr_flares.c
-
-#include "tr_local.h"
-
-/*
-=============================================================================
-
-LIGHT FLARES
-
-A light flare is an effect that takes place inside the eye when bright light
-sources are visible. The size of the flare reletive to the screen is nearly
-constant, irrespective of distance, but the intensity should be proportional to the
-projected area of the light source.
-
-A surface that has been flagged as having a light flare will calculate the depth
-buffer value that it's midpoint should have when the surface is added.
-
-After all opaque surfaces have been rendered, the depth buffer is read back for
-each flare in view. If the point has not been obscured by a closer surface, the
-flare should be drawn.
-
-Surfaces that have a repeated texture should never be flagged as flaring, because
-there will only be a single flare added at the midpoint of the polygon.
-
-To prevent abrupt popping, the intensity of the flare is interpolated up and
-down as it changes visibility. This involves scene to scene state, unlike almost
-all other aspects of the renderer, and is complicated by the fact that a single
-frame may have multiple scenes.
-
-RB_RenderFlares() will be called once per view (twice in a mirrored scene, potentially
-up to five or more times in a frame with 3D status bar icons).
-
-=============================================================================
-*/
-
-
-// flare states maintain visibility over multiple frames for fading
-// layers: view, mirror, menu
-typedef struct flare_s {
- struct flare_s *next; // for active chain
-
- int addedFrame;
-
- qboolean inPortal; // true if in a portal view of the scene
- int frameSceneNum;
- void *surface;
- int fogNum;
-
- int fadeTime;
-
- qboolean visible; // state of last test
- float drawIntensity; // may be non 0 even if !visible due to fading
-
- int windowX, windowY;
- float eyeZ;
-
- vec3_t color;
-} flare_t;
-
-#define MAX_FLARES 128
-
-flare_t r_flareStructs[MAX_FLARES];
-flare_t *r_activeFlares, *r_inactiveFlares;
-
-/*
-==================
-R_ClearFlares
-==================
-*/
-void R_ClearFlares( void ) {
- int i;
-
- Com_Memset( r_flareStructs, 0, sizeof( r_flareStructs ) );
- r_activeFlares = NULL;
- r_inactiveFlares = NULL;
-
- for ( i = 0 ; i < MAX_FLARES ; i++ ) {
- r_flareStructs[i].next = r_inactiveFlares;
- r_inactiveFlares = &r_flareStructs[i];
- }
-}
-
-
-/*
-==================
-RB_AddFlare
-
-This is called at surface tesselation time
-==================
-*/
-void RB_AddFlare( void *surface, int fogNum, vec3_t point, vec3_t color, vec3_t normal ) {
- int i;
- flare_t *f, *oldest;
- vec3_t local;
- float d;
- vec4_t eye, clip, normalized, window;
-
- backEnd.pc.c_flareAdds++;
-
- // if the point is off the screen, don't bother adding it
- // calculate screen coordinates and depth
- R_TransformModelToClip( point, backEnd.or.modelMatrix,
- backEnd.viewParms.projectionMatrix, eye, clip );
-
- // check to see if the point is completely off screen
- for ( i = 0 ; i < 3 ; i++ ) {
- if ( clip[i] >= clip[3] || clip[i] <= -clip[3] ) {
- return;
- }
- }
-
- R_TransformClipToWindow( clip, &backEnd.viewParms, normalized, window );
-
- if ( window[0] < 0 || window[0] >= backEnd.viewParms.viewportWidth
- || window[1] < 0 || window[1] >= backEnd.viewParms.viewportHeight ) {
- return; // shouldn't happen, since we check the clip[] above, except for FP rounding
- }
-
- // see if a flare with a matching surface, scene, and view exists
- oldest = r_flareStructs;
- for ( f = r_activeFlares ; f ; f = f->next ) {
- if ( f->surface == surface && f->frameSceneNum == backEnd.viewParms.frameSceneNum
- && f->inPortal == backEnd.viewParms.isPortal ) {
- break;
- }
- }
-
- // allocate a new one
- if (!f ) {
- if ( !r_inactiveFlares ) {
- // the list is completely full
- return;
- }
- f = r_inactiveFlares;
- r_inactiveFlares = r_inactiveFlares->next;
- f->next = r_activeFlares;
- r_activeFlares = f;
-
- f->surface = surface;
- f->frameSceneNum = backEnd.viewParms.frameSceneNum;
- f->inPortal = backEnd.viewParms.isPortal;
- f->addedFrame = -1;
- }
-
- if ( f->addedFrame != backEnd.viewParms.frameCount - 1 ) {
- f->visible = qfalse;
- f->fadeTime = backEnd.refdef.time - 2000;
- }
-
- f->addedFrame = backEnd.viewParms.frameCount;
- f->fogNum = fogNum;
-
- VectorCopy( color, f->color );
-
- // fade the intensity of the flare down as the
- // light surface turns away from the viewer
- if ( normal ) {
- VectorSubtract( backEnd.viewParms.or.origin, point, local );
- VectorNormalizeFast( local );
- d = DotProduct( local, normal );
- VectorScale( f->color, d, f->color );
- }
-
- // save info needed to test
- f->windowX = backEnd.viewParms.viewportX + window[0];
- f->windowY = backEnd.viewParms.viewportY + window[1];
-
- f->eyeZ = eye[2];
-}
-
-/*
-==================
-RB_AddDlightFlares
-==================
-*/
-void RB_AddDlightFlares( void ) {
- dlight_t *l;
- int i, j, k;
- fog_t *fog;
-
- if ( !r_flares->integer ) {
- return;
- }
-
- l = backEnd.refdef.dlights;
- fog = tr.world->fogs;
- for (i=0 ; inumfogs ; j++ ) {
- fog = &tr.world->fogs[j];
- for ( k = 0 ; k < 3 ; k++ ) {
- if ( l->origin[k] < fog->bounds[0][k] || l->origin[k] > fog->bounds[1][k] ) {
- break;
- }
- }
- if ( k == 3 ) {
- break;
- }
- }
- if ( j == tr.world->numfogs ) {
- j = 0;
- }
-
- RB_AddFlare( (void *)l, j, l->origin, l->color, NULL );
- }
-}
-
-/*
-===============================================================================
-
-FLARE BACK END
-
-===============================================================================
-*/
-
-/*
-==================
-RB_TestFlare
-==================
-*/
-void RB_TestFlare( flare_t *f ) {
- float depth;
- qboolean visible;
- float fade;
- float screenZ;
-
- backEnd.pc.c_flareTests++;
-
- // read back the z buffer contents
- qglReadPixels( f->windowX, f->windowY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth );
-
- screenZ = backEnd.viewParms.projectionMatrix[14] /
- ( ( 2*depth - 1 ) * backEnd.viewParms.projectionMatrix[11] - backEnd.viewParms.projectionMatrix[10] );
-
- visible = (qboolean) (( -f->eyeZ - -screenZ ) < 24);
-
- if ( visible ) {
- if ( !f->visible ) {
- f->visible = qtrue;
- f->fadeTime = backEnd.refdef.time - 1;
- }
- fade = ( ( backEnd.refdef.time - f->fadeTime ) /1000.0f ) * r_flareFade->value;
- } else {
- if ( f->visible ) {
- f->visible = qfalse;
- f->fadeTime = backEnd.refdef.time - 1;
- }
- fade = 1.0f - ( ( backEnd.refdef.time - f->fadeTime ) / 1000.0f ) * r_flareFade->value;
- }
-
- if ( fade < 0 ) {
- fade = 0;
- }
- if ( fade > 1 ) {
- fade = 1;
- }
-
- f->drawIntensity = fade;
-}
-
-
-/*
-==================
-RB_RenderFlare
-==================
-*/
-void RB_RenderFlare( flare_t *f ) {
- float size;
- vec3_t color;
- int iColor[3];
-
- backEnd.pc.c_flareRenders++;
-
- VectorScale( f->color, f->drawIntensity*tr.identityLight, color );
- iColor[0] = color[0] * 255;
- iColor[1] = color[1] * 255;
- iColor[2] = color[2] * 255;
-
- size = backEnd.viewParms.viewportWidth * ( r_flareSize->value/640.0f + 8 / -f->eyeZ );
-
- RB_BeginSurface( tr.flareShader, f->fogNum );
-
- // FIXME: use quadstamp?
- tess.xyz[tess.numVertexes][0] = f->windowX - size;
- tess.xyz[tess.numVertexes][1] = f->windowY - size;
- tess.texCoords[tess.numVertexes][0][0] = 0;
- tess.texCoords[tess.numVertexes][0][1] = 0;
- tess.vertexColors[tess.numVertexes][0] = iColor[0];
- tess.vertexColors[tess.numVertexes][1] = iColor[1];
- tess.vertexColors[tess.numVertexes][2] = iColor[2];
- tess.vertexColors[tess.numVertexes][3] = 255;
- tess.numVertexes++;
-
- tess.xyz[tess.numVertexes][0] = f->windowX - size;
- tess.xyz[tess.numVertexes][1] = f->windowY + size;
- tess.texCoords[tess.numVertexes][0][0] = 0;
- tess.texCoords[tess.numVertexes][0][1] = 1;
- tess.vertexColors[tess.numVertexes][0] = iColor[0];
- tess.vertexColors[tess.numVertexes][1] = iColor[1];
- tess.vertexColors[tess.numVertexes][2] = iColor[2];
- tess.vertexColors[tess.numVertexes][3] = 255;
- tess.numVertexes++;
-
- tess.xyz[tess.numVertexes][0] = f->windowX + size;
- tess.xyz[tess.numVertexes][1] = f->windowY + size;
- tess.texCoords[tess.numVertexes][0][0] = 1;
- tess.texCoords[tess.numVertexes][0][1] = 1;
- tess.vertexColors[tess.numVertexes][0] = iColor[0];
- tess.vertexColors[tess.numVertexes][1] = iColor[1];
- tess.vertexColors[tess.numVertexes][2] = iColor[2];
- tess.vertexColors[tess.numVertexes][3] = 255;
- tess.numVertexes++;
-
- tess.xyz[tess.numVertexes][0] = f->windowX + size;
- tess.xyz[tess.numVertexes][1] = f->windowY - size;
- tess.texCoords[tess.numVertexes][0][0] = 1;
- tess.texCoords[tess.numVertexes][0][1] = 0;
- tess.vertexColors[tess.numVertexes][0] = iColor[0];
- tess.vertexColors[tess.numVertexes][1] = iColor[1];
- tess.vertexColors[tess.numVertexes][2] = iColor[2];
- tess.vertexColors[tess.numVertexes][3] = 255;
- tess.numVertexes++;
-
- tess.indexes[tess.numIndexes++] = 0;
- tess.indexes[tess.numIndexes++] = 1;
- tess.indexes[tess.numIndexes++] = 2;
- tess.indexes[tess.numIndexes++] = 0;
- tess.indexes[tess.numIndexes++] = 2;
- tess.indexes[tess.numIndexes++] = 3;
-
- RB_EndSurface();
-}
-
-/*
-==================
-RB_RenderFlares
-
-Because flares are simulating an occular effect, they should be drawn after
-everything (all views) in the entire frame has been drawn.
-
-Because of the way portals use the depth buffer to mark off areas, the
-needed information would be lost after each view, so we are forced to draw
-flares after each view.
-
-The resulting artifact is that flares in mirrors or portals don't dim properly
-when occluded by something in the main view, and portal flares that should
-extend past the portal edge will be overwritten.
-==================
-*/
-void RB_RenderFlares (void) {
- flare_t *f;
- flare_t **prev;
- qboolean draw;
-
- if ( !r_flares->integer ) {
- return;
- }
-
-// RB_AddDlightFlares();
-
- // perform z buffer readback on each flare in this view
- draw = qfalse;
- prev = &r_activeFlares;
- while ( ( f = *prev ) != NULL ) {
- // throw out any flares that weren't added last frame
- if ( f->addedFrame < backEnd.viewParms.frameCount - 1 ) {
- *prev = f->next;
- f->next = r_inactiveFlares;
- r_inactiveFlares = f;
- continue;
- }
-
- // don't draw any here that aren't from this scene / portal
- f->drawIntensity = 0;
- if ( f->frameSceneNum == backEnd.viewParms.frameSceneNum
- && f->inPortal == backEnd.viewParms.isPortal ) {
- RB_TestFlare( f );
- if ( f->drawIntensity ) {
- draw = qtrue;
- } else {
- // this flare has completely faded out, so remove it from the chain
- *prev = f->next;
- f->next = r_inactiveFlares;
- r_inactiveFlares = f;
- continue;
- }
- }
-
- prev = &f->next;
- }
-
- if ( !draw ) {
- return; // none visible
- }
-
- if ( backEnd.viewParms.isPortal ) {
- qglDisable (GL_CLIP_PLANE0);
- }
-
- qglPushMatrix();
- qglLoadIdentity();
- qglMatrixMode( GL_PROJECTION );
- qglPushMatrix();
- qglLoadIdentity();
- qglOrtho( backEnd.viewParms.viewportX, backEnd.viewParms.viewportX + backEnd.viewParms.viewportWidth,
- backEnd.viewParms.viewportY, backEnd.viewParms.viewportY + backEnd.viewParms.viewportHeight,
- -99999, 99999 );
-
- for ( f = r_activeFlares ; f ; f = f->next ) {
- if ( f->frameSceneNum == backEnd.viewParms.frameSceneNum
- && f->inPortal == backEnd.viewParms.isPortal
- && f->drawIntensity ) {
- RB_RenderFlare( f );
- }
- }
-
- qglPopMatrix();
- qglMatrixMode( GL_MODELVIEW );
- qglPopMatrix();
-}
-
diff --git a/src/engine/renderer/tr_init.c b/src/engine/renderer/tr_init.c
index 540ca12..7c69e73 100644
--- a/src/engine/renderer/tr_init.c
+++ b/src/engine/renderer/tr_init.c
@@ -35,9 +35,6 @@ static void GfxInfo_f( void );
cvar_t *r_renderAPI;
cvar_t *r_twinMode;
-cvar_t *r_flareSize;
-cvar_t *r_flareFade;
-
cvar_t *r_railWidth;
cvar_t *r_railCoreWidth;
cvar_t *r_railSegmentLength;
@@ -95,7 +92,6 @@ cvar_t *r_lightmap;
cvar_t *r_vertexLight;
cvar_t *r_uiFullScreen;
cvar_t *r_shadows;
-cvar_t *r_flares;
cvar_t *r_mode;
cvar_t *r_nobind;
cvar_t *r_singleShader;
@@ -892,7 +888,6 @@ void R_Register( void )
//
r_lodCurveError = ri.Cvar_Get( "r_lodCurveError", "250", CVAR_ARCHIVE|CVAR_CHEAT );
r_lodbias = ri.Cvar_Get( "r_lodbias", "0", CVAR_ARCHIVE );
- r_flares = ri.Cvar_Get ("r_flares", "0", CVAR_ARCHIVE );
r_znear = ri.Cvar_Get( "r_znear", "4", CVAR_CHEAT );
AssertCvarRange( r_znear, 0.001f, 200, qtrue );
r_ignoreGLErrors = ri.Cvar_Get( "r_ignoreGLErrors", "1", CVAR_ARCHIVE );
@@ -927,9 +922,6 @@ void R_Register( void )
r_lightmap = ri.Cvar_Get ("r_lightmap", "0", 0 );
r_portalOnly = ri.Cvar_Get ("r_portalOnly", "0", CVAR_CHEAT );
- r_flareSize = ri.Cvar_Get ("r_flareSize", "40", CVAR_CHEAT);
- r_flareFade = ri.Cvar_Get ("r_flareFade", "7", CVAR_CHEAT);
-
r_showSmp = ri.Cvar_Get ("r_showSmp", "0", CVAR_CHEAT);
r_skipBackEnd = ri.Cvar_Get ("r_skipBackEnd", "0", CVAR_CHEAT);
diff --git a/src/engine/renderer/tr_local.h b/src/engine/renderer/tr_local.h
index d9cc16f..4db2d0e 100644
--- a/src/engine/renderer/tr_local.h
+++ b/src/engine/renderer/tr_local.h
@@ -480,7 +480,6 @@ typedef struct {
vec3_t pvsOrigin; // may be different than or.origin for portals
qboolean isPortal; // true if this view is through a portal
qboolean isMirror; // the portal is a mirror, invert the face culling
- int frameSceneNum; // copied from tr.frameSceneNum
int frameCount; // copied from tr.frameCount
cplane_t portalPlane; // clip anything behind this if mirroring
int viewportX, viewportY, viewportWidth, viewportHeight;
@@ -814,10 +813,6 @@ typedef struct {
int c_dlightVertexes;
int c_dlightIndexes;
- int c_flareAdds;
- int c_flareTests;
- int c_flareRenders;
-
int msec; // total msec for backend run
} backEndCounters_t;
@@ -850,14 +845,11 @@ typedef struct {
int visCount; // incremented every time a new vis cluster is entered
int frameCount; // incremented every frame
- int sceneCount; // incremented every scene
int viewCount; // incremented every view (twice a scene if portaled)
// and every R_MarkFragments call
int smpFrame; // toggles from 0 to 1 every endFrame
- int frameSceneNum; // zeroed at RE_BeginFrame
-
qboolean worldMapLoaded;
world_t *world;
@@ -867,7 +859,6 @@ typedef struct {
image_t *scratchImage[32];
image_t *fogImage;
image_t *dlightImage; // inverse-quare highlight for projective adding
- image_t *flareImage;
image_t *whiteImage; // full of 0xff
image_t *identityLightImage; // full of tr.identityLightByte
@@ -876,8 +867,6 @@ typedef struct {
shader_t *shadowShader;
shader_t *projectionShadowShader;
- shader_t *flareShader;
-
int numLightmaps;
image_t *lightmaps[MAX_LIGHTMAPS];
@@ -952,9 +941,6 @@ extern cvar_t *r_twinMode; // If enabled, renderer creates two separate wind
// The first window uses rendering API specified by r_renderAPI,
// the second window uses rendering API corresponding to (1 - r_renderAPI).
-extern cvar_t *r_flareSize;
-extern cvar_t *r_flareFade;
-
extern cvar_t *r_railWidth;
extern cvar_t *r_railCoreWidth;
extern cvar_t *r_railSegmentLength;
@@ -1027,7 +1013,6 @@ extern cvar_t *r_showsky; // forces sky in front of all surfaces
extern cvar_t *r_shownormals; // draws wireframe normals
extern cvar_t *r_shadows; // controls shadows: 0 = none, 1 = blur, 2 = stencil, 3 = black planar projection
-extern cvar_t *r_flares; // light flares
extern cvar_t *r_intensity;
@@ -1284,21 +1269,6 @@ void R_AddBrushModelSurfaces( trRefEntity_t *e );
void R_AddWorldSurfaces( void );
qboolean R_inPVS( const vec3_t p1, const vec3_t p2 );
-
-/*
-============================================================
-
-FLARES
-
-============================================================
-*/
-
-void R_ClearFlares( void );
-
-void RB_AddFlare( void *surface, int fogNum, vec3_t point, vec3_t color, vec3_t normal );
-void RB_AddDlightFlares( void );
-void RB_RenderFlares (void);
-
/*
============================================================
@@ -1397,7 +1367,6 @@ void RB_SurfaceAnim( md4Surface_t *surfType );
*/
void R_TransformModelToClip( const vec3_t src, const float *modelMatrix, const float *projectionMatrix,
vec4_t eye, vec4_t dst );
-void R_TransformClipToWindow( const vec4_t clip, const viewParms_t *view, vec4_t normalized, vec4_t window );
void RB_DeformTessGeometry( void );
diff --git a/src/engine/renderer/tr_main.c b/src/engine/renderer/tr_main.c
index 9827dc2..c52b402 100644
--- a/src/engine/renderer/tr_main.c
+++ b/src/engine/renderer/tr_main.c
@@ -218,26 +218,6 @@ void R_TransformModelToClip( const vec3_t src, const float *modelMatrix, const f
}
}
-/*
-==========================
-R_TransformClipToWindow
-
-==========================
-*/
-void R_TransformClipToWindow( const vec4_t clip, const viewParms_t *view, vec4_t normalized, vec4_t window ) {
- normalized[0] = clip[0] / clip[3];
- normalized[1] = clip[1] / clip[3];
- normalized[2] = ( clip[2] + clip[3] ) / ( 2 * clip[3] );
-
- window[0] = 0.5f * ( 1.0f + normalized[0] ) * view->viewportWidth;
- window[1] = 0.5f * ( 1.0f + normalized[1] ) * view->viewportHeight;
- window[2] = normalized[2];
-
- window[0] = (int) ( window[0] + 0.5 );
- window[1] = (int) ( window[1] + 0.5 );
-}
-
-
/*
==========================
myGlMultMatrix
@@ -1467,7 +1447,6 @@ void R_RenderView (viewParms_t *parms) {
tr.viewCount++;
tr.viewParms = *parms;
- tr.viewParms.frameSceneNum = tr.frameSceneNum;
tr.viewParms.frameCount = tr.frameCount;
firstDrawSurf = tr.refdef.numDrawSurfs;
diff --git a/src/engine/renderer/tr_model.c b/src/engine/renderer/tr_model.c
index da1882b..60327b1 100644
--- a/src/engine/renderer/tr_model.c
+++ b/src/engine/renderer/tr_model.c
@@ -535,7 +535,6 @@ void RE_BeginRegistration( glconfig_t *glconfigOut ) {
R_SyncRenderThread();
tr.viewCluster = -1; // force markleafs to regenerate
- R_ClearFlares();
RE_ClearScene();
tr.registered = qtrue;
diff --git a/src/engine/renderer/tr_scene.c b/src/engine/renderer/tr_scene.c
index dc15cfb..337fc53 100644
--- a/src/engine/renderer/tr_scene.c
+++ b/src/engine/renderer/tr_scene.c
@@ -354,14 +354,6 @@ void RE_RenderScene( const refdef_t *fd ) {
tr.refdef.num_dlights = 0;
}
- // a single frame may have multiple scenes draw inside it --
- // a 3D game view, 3D status bar renderings, 3D menus, etc.
- // They need to be distinguished by the light flare code, because
- // the visibility state for a given surface may be different in
- // each scene / view.
- tr.frameSceneNum++;
- tr.sceneCount++;
-
// setup view parms for the initial view
//
// set up viewport
diff --git a/src/engine/renderer/tr_shader.c b/src/engine/renderer/tr_shader.c
index 90eafff..b28b603 100644
--- a/src/engine/renderer/tr_shader.c
+++ b/src/engine/renderer/tr_shader.c
@@ -2918,7 +2918,6 @@ static void CreateInternalShaders( void ) {
static void CreateExternalShaders( void ) {
tr.projectionShadowShader = R_FindShader( "projectionShadow", LIGHTMAP_NONE, qtrue );
- tr.flareShader = R_FindShader( "flareShader", LIGHTMAP_NONE, qtrue );
}
/*