remove unused light_shadows.cpp
This commit is contained in:
parent
22dd3d1719
commit
7297e8758b
|
|
@ -1,127 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright (C) 1999-2007 id Software, Inc. and contributors.
|
|
||||||
For a list of contributors, see the accompanying CONTRIBUTORS file.
|
|
||||||
|
|
||||||
This file is part of GtkRadiant.
|
|
||||||
|
|
||||||
GtkRadiant 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.
|
|
||||||
|
|
||||||
GtkRadiant 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 GtkRadiant; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define LIGHT_SHADOWS_C
|
|
||||||
|
|
||||||
#include "light.h"
|
|
||||||
#include "inout.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
ydnar: this code deals with shadow volume bsps
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
struct shadowNode_t
|
|
||||||
{
|
|
||||||
vec4_t plane;
|
|
||||||
int children[ 2 ];
|
|
||||||
};
|
|
||||||
|
|
||||||
int numShadowNodes;
|
|
||||||
shadowNode_t *shadowNodes;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
AddShadow()
|
|
||||||
adds a shadow, returning the index into the shadow list
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
MakeShadowFromPoints()
|
|
||||||
creates a shadow volume from 4 points (the first being the light origin)
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
SetupShadows()
|
|
||||||
sets up the shadow volumes for all lights in the world
|
|
||||||
*/
|
|
||||||
|
|
||||||
void SetupShadows( void ){
|
|
||||||
int i, j, s;
|
|
||||||
light_t *light;
|
|
||||||
dleaf_t *leaf;
|
|
||||||
dsurface_t *ds;
|
|
||||||
surfaceInfo_t *info;
|
|
||||||
shaderInfo_t *si;
|
|
||||||
byte *tested;
|
|
||||||
|
|
||||||
|
|
||||||
/* early out for weird cases where there are no lights */
|
|
||||||
if ( lights == NULL ) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* note it */
|
|
||||||
Sys_FPrintf( SYS_VRB, "--- SetupShadows ---\n" );
|
|
||||||
|
|
||||||
/* allocate a surface test list */
|
|
||||||
tested = safe_malloc( numDrawSurfaces / 8 + 1 );
|
|
||||||
|
|
||||||
/* walk the list of lights */
|
|
||||||
for ( light = lights; light != NULL; light = light->next )
|
|
||||||
{
|
|
||||||
/* do some early out testing */
|
|
||||||
if ( light->cluster < 0 ) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* clear surfacetest list */
|
|
||||||
memset( tested, 0, numDrawSurfaces / 8 + 1 );
|
|
||||||
|
|
||||||
/* walk the bsp leaves */
|
|
||||||
for ( i = 0, leaf = dleafs; i < numleafs; i++, leaf++ )
|
|
||||||
{
|
|
||||||
/* in pvs? */
|
|
||||||
if ( !ClusterVisible( light->cluster, leaf->cluster ) ) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* walk the surface list for this leaf */
|
|
||||||
for ( j = 0; j < leaf->numLeafSurfaces; j++ )
|
|
||||||
{
|
|
||||||
/* don't filter a surface more than once */
|
|
||||||
s = dleafsurfaces[ leaf->firstLeafSurface + j ];
|
|
||||||
if ( tested[ s >> 3 ] & ( 1 << ( s & 7 ) ) ) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
tested[ s >> 3 ] |= ( 1 << ( s & 7 ) );
|
|
||||||
|
|
||||||
/* get surface and info */
|
|
||||||
ds = &drawSurfaces[ s ];
|
|
||||||
info = &surfaceInfos[ s ];
|
|
||||||
si = info->si;
|
|
||||||
|
|
||||||
/* don't create shadow volumes from translucent surfaces */
|
|
||||||
if ( si->contents & CONTENTS_TRANSLUCENT ) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user