Share R_MarkSurfaceLights between all renders
This commit is contained in:
parent
a124953432
commit
4dbb6eb4bc
|
@ -593,3 +593,92 @@ store:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
R_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node, int r_dlightframecount,
|
||||||
|
msurface_t *surfaces)
|
||||||
|
{
|
||||||
|
msurface_t *surf;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* mark the polygons */
|
||||||
|
surf = surfaces + node->firstsurface;
|
||||||
|
|
||||||
|
for (i = 0; i < node->numsurfaces; i++, surf++)
|
||||||
|
{
|
||||||
|
int sidebit;
|
||||||
|
float dist;
|
||||||
|
|
||||||
|
if (surf->dlightframe != r_dlightframecount)
|
||||||
|
{
|
||||||
|
surf->dlightbits = 0;
|
||||||
|
surf->dlightframe = r_dlightframecount;
|
||||||
|
}
|
||||||
|
|
||||||
|
dist = DotProduct(light->origin, surf->plane->normal) - surf->plane->dist;
|
||||||
|
|
||||||
|
if (dist >= 0)
|
||||||
|
{
|
||||||
|
sidebit = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sidebit = SURF_PLANEBACK;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((surf->flags & SURF_PLANEBACK) != sidebit)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
surf->dlightbits |= bit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
=============
|
||||||
|
R_MarkLights
|
||||||
|
|
||||||
|
bit: 1 << i for light number i, will be or'ed into msurface_t::dlightbits
|
||||||
|
if surface is affected by this light
|
||||||
|
=============
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
R_MarkLights(dlight_t *light, int bit, mnode_t *node, int r_dlightframecount,
|
||||||
|
msurface_t *surfaces)
|
||||||
|
{
|
||||||
|
cplane_t *splitplane;
|
||||||
|
float dist;
|
||||||
|
int intensity;
|
||||||
|
|
||||||
|
if (node->contents != CONTENTS_NODE)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
splitplane = node->plane;
|
||||||
|
dist = DotProduct(light->origin, splitplane->normal) - splitplane->dist;
|
||||||
|
|
||||||
|
intensity = light->intensity;
|
||||||
|
|
||||||
|
if (dist > (intensity - DLIGHT_CUTOFF)) // (dist > light->intensity)
|
||||||
|
{
|
||||||
|
R_MarkLights(light, bit, node->children[0], r_dlightframecount,
|
||||||
|
surfaces);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dist < (-intensity + DLIGHT_CUTOFF)) // (dist < -light->intensity)
|
||||||
|
{
|
||||||
|
R_MarkLights(light, bit, node->children[1], r_dlightframecount,
|
||||||
|
surfaces);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
R_MarkSurfaceLights(light, bit, node, r_dlightframecount, surfaces);
|
||||||
|
|
||||||
|
R_MarkLights(light, bit, node->children[0], r_dlightframecount,
|
||||||
|
surfaces);
|
||||||
|
R_MarkLights(light, bit, node->children[1], r_dlightframecount,
|
||||||
|
surfaces);
|
||||||
|
}
|
||||||
|
|
|
@ -73,52 +73,6 @@ R_AreaVisible(const byte *areabits, mleaf_t *pleaf)
|
||||||
return false; // not visible
|
return false; // not visible
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
=============
|
|
||||||
R_MarkLights
|
|
||||||
|
|
||||||
bit: 1 << i for light number i, will be or'ed into msurface_t::dlightbits
|
|
||||||
if surface is affected by this light
|
|
||||||
=============
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
R_MarkLights(dlight_t *light, int bit, mnode_t *node, int r_dlightframecount,
|
|
||||||
marksurfacelights_t mark_surface_lights)
|
|
||||||
{
|
|
||||||
cplane_t *splitplane;
|
|
||||||
float dist;
|
|
||||||
int intensity;
|
|
||||||
|
|
||||||
if (node->contents != CONTENTS_NODE)
|
|
||||||
return;
|
|
||||||
|
|
||||||
splitplane = node->plane;
|
|
||||||
dist = DotProduct(light->origin, splitplane->normal) - splitplane->dist;
|
|
||||||
|
|
||||||
intensity = light->intensity;
|
|
||||||
|
|
||||||
if (dist > intensity - DLIGHT_CUTOFF) // (dist > light->intensity)
|
|
||||||
{
|
|
||||||
R_MarkLights (light, bit, node->children[0], r_dlightframecount,
|
|
||||||
mark_surface_lights);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dist < -intensity + DLIGHT_CUTOFF) // (dist < -light->intensity)
|
|
||||||
{
|
|
||||||
R_MarkLights(light, bit, node->children[1], r_dlightframecount,
|
|
||||||
mark_surface_lights);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mark_surface_lights(light, bit, node, r_dlightframecount);
|
|
||||||
|
|
||||||
R_MarkLights(light, bit, node->children[0], r_dlightframecount,
|
|
||||||
mark_surface_lights);
|
|
||||||
R_MarkLights(light, bit, node->children[1], r_dlightframecount,
|
|
||||||
mark_surface_lights);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns true if the box is completely outside the frustom
|
* Returns true if the box is completely outside the frustom
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -115,46 +115,6 @@ R_RenderDlights(void)
|
||||||
glDepthMask(1);
|
glDepthMask(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
R_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node, int r_dlightframecount)
|
|
||||||
{
|
|
||||||
msurface_t *surf;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* mark the polygons */
|
|
||||||
surf = r_worldmodel->surfaces + node->firstsurface;
|
|
||||||
|
|
||||||
for (i = 0; i < node->numsurfaces; i++, surf++)
|
|
||||||
{
|
|
||||||
int sidebit;
|
|
||||||
float dist;
|
|
||||||
|
|
||||||
if (surf->dlightframe != r_dlightframecount)
|
|
||||||
{
|
|
||||||
surf->dlightbits = 0;
|
|
||||||
surf->dlightframe = r_dlightframecount;
|
|
||||||
}
|
|
||||||
|
|
||||||
dist = DotProduct(light->origin, surf->plane->normal) - surf->plane->dist;
|
|
||||||
|
|
||||||
if (dist >= 0)
|
|
||||||
{
|
|
||||||
sidebit = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sidebit = SURF_PLANEBACK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((surf->flags & SURF_PLANEBACK) != sidebit)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
surf->dlightbits |= bit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
R_PushDlights(void)
|
R_PushDlights(void)
|
||||||
{
|
{
|
||||||
|
@ -174,7 +134,7 @@ R_PushDlights(void)
|
||||||
for (i = 0; i < r_newrefdef.num_dlights; i++, l++)
|
for (i = 0; i < r_newrefdef.num_dlights; i++, l++)
|
||||||
{
|
{
|
||||||
R_MarkLights(l, 1 << i, r_worldmodel->nodes, r_dlightframecount,
|
R_MarkLights(l, 1 << i, r_worldmodel->nodes, r_dlightframecount,
|
||||||
R_MarkSurfaceLights);
|
r_worldmodel->surfaces);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -646,7 +646,7 @@ R_DrawInlineBModel(entity_t *currententity, const model_t *currentmodel)
|
||||||
{
|
{
|
||||||
R_MarkLights(lt, 1 << k,
|
R_MarkLights(lt, 1 << k,
|
||||||
currentmodel->nodes + currentmodel->firstnode,
|
currentmodel->nodes + currentmodel->firstnode,
|
||||||
r_dlightframecount, R_MarkSurfaceLights);
|
r_dlightframecount, currentmodel->surfaces);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -260,8 +260,6 @@ void R_EmitWaterPolys(msurface_t *fa);
|
||||||
void RE_AddSkySurface(msurface_t *fa);
|
void RE_AddSkySurface(msurface_t *fa);
|
||||||
void RE_ClearSkyBox(void);
|
void RE_ClearSkyBox(void);
|
||||||
void R_DrawSkyBox(void);
|
void R_DrawSkyBox(void);
|
||||||
void R_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node,
|
|
||||||
int r_dlightframecount);
|
|
||||||
|
|
||||||
void R_SwapBuffers(int);
|
void R_SwapBuffers(int);
|
||||||
|
|
||||||
|
|
|
@ -32,46 +32,6 @@ extern gl3lightmapstate_t gl3_lms;
|
||||||
int r_dlightframecount;
|
int r_dlightframecount;
|
||||||
vec3_t lightspot;
|
vec3_t lightspot;
|
||||||
|
|
||||||
void
|
|
||||||
GL3_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node, int r_dlightframecount)
|
|
||||||
{
|
|
||||||
msurface_t *surf;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* mark the polygons */
|
|
||||||
surf = gl3_worldmodel->surfaces + node->firstsurface;
|
|
||||||
|
|
||||||
for (i = 0; i < node->numsurfaces; i++, surf++)
|
|
||||||
{
|
|
||||||
int sidebit;
|
|
||||||
float dist;
|
|
||||||
|
|
||||||
if (surf->dlightframe != r_dlightframecount)
|
|
||||||
{
|
|
||||||
surf->dlightbits = 0;
|
|
||||||
surf->dlightframe = r_dlightframecount;
|
|
||||||
}
|
|
||||||
|
|
||||||
dist = DotProduct(light->origin, surf->plane->normal) - surf->plane->dist;
|
|
||||||
|
|
||||||
if (dist >= 0)
|
|
||||||
{
|
|
||||||
sidebit = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sidebit = SURF_PLANEBACK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((surf->flags & SURF_PLANEBACK) != sidebit)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
surf->dlightbits |= bit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
GL3_PushDlights(void)
|
GL3_PushDlights(void)
|
||||||
{
|
{
|
||||||
|
@ -88,7 +48,8 @@ GL3_PushDlights(void)
|
||||||
for (i = 0; i < gl3_newrefdef.num_dlights; i++, l++)
|
for (i = 0; i < gl3_newrefdef.num_dlights; i++, l++)
|
||||||
{
|
{
|
||||||
gl3UniDynLight* udl = &gl3state.uniLightsData.dynLights[i];
|
gl3UniDynLight* udl = &gl3state.uniLightsData.dynLights[i];
|
||||||
R_MarkLights(l, 1 << i, gl3_worldmodel->nodes, r_dlightframecount, GL3_MarkSurfaceLights);
|
R_MarkLights(l, 1 << i, gl3_worldmodel->nodes, r_dlightframecount,
|
||||||
|
gl3_worldmodel->surfaces);
|
||||||
|
|
||||||
VectorCopy(l->origin, udl->origin);
|
VectorCopy(l->origin, udl->origin);
|
||||||
VectorCopy(l->color, udl->color);
|
VectorCopy(l->color, udl->color);
|
||||||
|
|
|
@ -492,7 +492,7 @@ DrawInlineBModel(entity_t *currententity, gl3model_t *currentmodel)
|
||||||
for (k = 0; k < gl3_newrefdef.num_dlights; k++, lt++)
|
for (k = 0; k < gl3_newrefdef.num_dlights; k++, lt++)
|
||||||
{
|
{
|
||||||
R_MarkLights(lt, 1 << k, currentmodel->nodes + currentmodel->firstnode,
|
R_MarkLights(lt, 1 << k, currentmodel->nodes + currentmodel->firstnode,
|
||||||
r_dlightframecount, GL3_MarkSurfaceLights);
|
r_dlightframecount, currentmodel->surfaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
psurf = ¤tmodel->surfaces[currentmodel->firstmodelsurface];
|
psurf = ¤tmodel->surfaces[currentmodel->firstmodelsurface];
|
||||||
|
|
|
@ -456,8 +456,6 @@ extern void GL3_ImageList_f(void);
|
||||||
|
|
||||||
// gl3_light.c
|
// gl3_light.c
|
||||||
extern int r_dlightframecount;
|
extern int r_dlightframecount;
|
||||||
extern void GL3_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node,
|
|
||||||
int r_dlightframecount);
|
|
||||||
extern void GL3_PushDlights(void);
|
extern void GL3_PushDlights(void);
|
||||||
extern void GL3_BuildLightMap(msurface_t *surf, int offsetInLMbuf, int stride);
|
extern void GL3_BuildLightMap(msurface_t *surf, int offsetInLMbuf, int stride);
|
||||||
|
|
||||||
|
|
|
@ -32,46 +32,6 @@ extern gl4lightmapstate_t gl4_lms;
|
||||||
int r_dlightframecount;
|
int r_dlightframecount;
|
||||||
vec3_t lightspot;
|
vec3_t lightspot;
|
||||||
|
|
||||||
void
|
|
||||||
GL4_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node, int r_dlightframecount)
|
|
||||||
{
|
|
||||||
msurface_t *surf;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* mark the polygons */
|
|
||||||
surf = gl4_worldmodel->surfaces + node->firstsurface;
|
|
||||||
|
|
||||||
for (i = 0; i < node->numsurfaces; i++, surf++)
|
|
||||||
{
|
|
||||||
int sidebit;
|
|
||||||
float dist;
|
|
||||||
|
|
||||||
if (surf->dlightframe != r_dlightframecount)
|
|
||||||
{
|
|
||||||
surf->dlightbits = 0;
|
|
||||||
surf->dlightframe = r_dlightframecount;
|
|
||||||
}
|
|
||||||
|
|
||||||
dist = DotProduct(light->origin, surf->plane->normal) - surf->plane->dist;
|
|
||||||
|
|
||||||
if (dist >= 0)
|
|
||||||
{
|
|
||||||
sidebit = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sidebit = SURF_PLANEBACK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((surf->flags & SURF_PLANEBACK) != sidebit)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
surf->dlightbits |= bit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
GL4_PushDlights(void)
|
GL4_PushDlights(void)
|
||||||
{
|
{
|
||||||
|
@ -88,7 +48,8 @@ GL4_PushDlights(void)
|
||||||
for (i = 0; i < gl4_newrefdef.num_dlights; i++, l++)
|
for (i = 0; i < gl4_newrefdef.num_dlights; i++, l++)
|
||||||
{
|
{
|
||||||
gl4UniDynLight* udl = &gl4state.uniLightsData.dynLights[i];
|
gl4UniDynLight* udl = &gl4state.uniLightsData.dynLights[i];
|
||||||
R_MarkLights(l, 1 << i, gl4_worldmodel->nodes, r_dlightframecount, GL4_MarkSurfaceLights);
|
R_MarkLights(l, 1 << i, gl4_worldmodel->nodes, r_dlightframecount,
|
||||||
|
gl4_worldmodel->surfaces);
|
||||||
|
|
||||||
VectorCopy(l->origin, udl->origin);
|
VectorCopy(l->origin, udl->origin);
|
||||||
VectorCopy(l->color, udl->color);
|
VectorCopy(l->color, udl->color);
|
||||||
|
|
|
@ -492,7 +492,7 @@ DrawInlineBModel(entity_t *currententity, gl4model_t *currentmodel)
|
||||||
for (k = 0; k < gl4_newrefdef.num_dlights; k++, lt++)
|
for (k = 0; k < gl4_newrefdef.num_dlights; k++, lt++)
|
||||||
{
|
{
|
||||||
R_MarkLights(lt, 1 << k, currentmodel->nodes + currentmodel->firstnode,
|
R_MarkLights(lt, 1 << k, currentmodel->nodes + currentmodel->firstnode,
|
||||||
r_dlightframecount, GL4_MarkSurfaceLights);
|
r_dlightframecount, currentmodel->surfaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
psurf = ¤tmodel->surfaces[currentmodel->firstmodelsurface];
|
psurf = ¤tmodel->surfaces[currentmodel->firstmodelsurface];
|
||||||
|
|
|
@ -456,8 +456,6 @@ extern void GL4_ImageList_f(void);
|
||||||
|
|
||||||
// gl4_light.c
|
// gl4_light.c
|
||||||
extern int r_dlightframecount;
|
extern int r_dlightframecount;
|
||||||
extern void GL4_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node,
|
|
||||||
int r_dlightframecount);
|
|
||||||
extern void GL4_PushDlights(void);
|
extern void GL4_PushDlights(void);
|
||||||
extern void GL4_BuildLightMap(msurface_t *surf, int offsetInLMbuf, int stride);
|
extern void GL4_BuildLightMap(msurface_t *surf, int offsetInLMbuf, int stride);
|
||||||
|
|
||||||
|
|
|
@ -362,10 +362,8 @@ extern int Mod_LoadFile(char *name, void **buffer);
|
||||||
/* Surface logic */
|
/* Surface logic */
|
||||||
#define DLIGHT_CUTOFF 64
|
#define DLIGHT_CUTOFF 64
|
||||||
|
|
||||||
typedef void (*marksurfacelights_t)(dlight_t *light, int bit, mnode_t *node,
|
|
||||||
int r_dlightframecount);
|
|
||||||
extern void R_MarkLights (dlight_t *light, int bit, mnode_t *node, int r_dlightframecount,
|
extern void R_MarkLights (dlight_t *light, int bit, mnode_t *node, int r_dlightframecount,
|
||||||
marksurfacelights_t mark_surface_lights);
|
msurface_t *surfaces);
|
||||||
extern struct image_s *R_TextureAnimation(const entity_t *currententity,
|
extern struct image_s *R_TextureAnimation(const entity_t *currententity,
|
||||||
const mtexinfo_t *tex);
|
const mtexinfo_t *tex);
|
||||||
extern qboolean R_AreaVisible(const byte *areabits, mleaf_t *pleaf);
|
extern qboolean R_AreaVisible(const byte *areabits, mleaf_t *pleaf);
|
||||||
|
|
|
@ -32,25 +32,6 @@ DYNAMIC LIGHTS
|
||||||
=============================================================================
|
=============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void
|
|
||||||
R_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node, int r_dlightframecount)
|
|
||||||
{
|
|
||||||
msurface_t *surf;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
// mark the polygons
|
|
||||||
surf = r_worldmodel->surfaces + node->firstsurface;
|
|
||||||
for (i = 0; i < node->numsurfaces; i++, surf++)
|
|
||||||
{
|
|
||||||
if (surf->dlightframe != r_dlightframecount)
|
|
||||||
{
|
|
||||||
surf->dlightbits = 0;
|
|
||||||
surf->dlightframe = r_dlightframecount;
|
|
||||||
}
|
|
||||||
surf->dlightbits |= bit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=============
|
=============
|
||||||
R_PushDlights
|
R_PushDlights
|
||||||
|
@ -66,7 +47,7 @@ R_PushDlights(const model_t *model)
|
||||||
{
|
{
|
||||||
R_MarkLights(l, 1<<i,
|
R_MarkLights(l, 1<<i,
|
||||||
model->nodes + model->firstnode,
|
model->nodes + model->firstnode,
|
||||||
r_framecount, R_MarkSurfaceLights);
|
r_framecount, model->surfaces);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -205,8 +205,6 @@ void EmitWaterPolys(msurface_t *fa, image_t *texture,
|
||||||
void RE_AddSkySurface(msurface_t *fa);
|
void RE_AddSkySurface(msurface_t *fa);
|
||||||
void RE_ClearSkyBox(void);
|
void RE_ClearSkyBox(void);
|
||||||
void R_DrawSkyBox(void);
|
void R_DrawSkyBox(void);
|
||||||
void R_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node,
|
|
||||||
int r_dlightframecount);
|
|
||||||
|
|
||||||
struct image_s *RE_Draw_FindPic (const char *name);
|
struct image_s *RE_Draw_FindPic (const char *name);
|
||||||
|
|
||||||
|
|
|
@ -105,46 +105,6 @@ R_RenderDlights(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
R_MarkSurfaceLights(dlight_t *light, int bit, mnode_t *node, int r_dlightframecount)
|
|
||||||
{
|
|
||||||
msurface_t *surf;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* mark the polygons */
|
|
||||||
surf = r_worldmodel->surfaces + node->firstsurface;
|
|
||||||
|
|
||||||
for (i = 0; i < node->numsurfaces; i++, surf++)
|
|
||||||
{
|
|
||||||
int sidebit;
|
|
||||||
float dist;
|
|
||||||
|
|
||||||
if (surf->dlightframe != r_dlightframecount)
|
|
||||||
{
|
|
||||||
surf->dlightbits = 0;
|
|
||||||
surf->dlightframe = r_dlightframecount;
|
|
||||||
}
|
|
||||||
|
|
||||||
dist = DotProduct(light->origin, surf->plane->normal) - surf->plane->dist;
|
|
||||||
|
|
||||||
if (dist >= 0)
|
|
||||||
{
|
|
||||||
sidebit = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sidebit = SURF_PLANEBACK;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((surf->flags & SURF_PLANEBACK) != sidebit)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
surf->dlightbits |= bit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
R_PushDlights(void)
|
R_PushDlights(void)
|
||||||
{
|
{
|
||||||
|
@ -164,7 +124,7 @@ R_PushDlights(void)
|
||||||
for (i = 0; i < r_newrefdef.num_dlights; i++, l++)
|
for (i = 0; i < r_newrefdef.num_dlights; i++, l++)
|
||||||
{
|
{
|
||||||
R_MarkLights(l, 1 << i, r_worldmodel->nodes, r_dlightframecount,
|
R_MarkLights(l, 1 << i, r_worldmodel->nodes, r_dlightframecount,
|
||||||
R_MarkSurfaceLights);
|
r_worldmodel->surfaces);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -612,7 +612,7 @@ R_DrawInlineBModel(entity_t *currententity, const model_t *currentmodel, float *
|
||||||
{
|
{
|
||||||
R_MarkLights(lt, 1 << k,
|
R_MarkLights(lt, 1 << k,
|
||||||
currentmodel->nodes + currentmodel->firstnode,
|
currentmodel->nodes + currentmodel->firstnode,
|
||||||
r_dlightframecount, R_MarkSurfaceLights);
|
r_dlightframecount, currentmodel->surfaces);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue