From 9e2b58ca29f82fcdcb57ea0e7159e7d604ce7f4a Mon Sep 17 00:00:00 2001 From: havoc Date: Mon, 17 Dec 2007 08:51:45 +0000 Subject: [PATCH] don't R_UpdateAllTextureInfo when doing shadows or lighting on world, because its texture info only really needs to be updated once per frame, it doesn't change because it is not instanced and can not have alternate textures or colormod git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7814 d7cf8633-e32d-0410-b094-e92efae38249 --- gl_rsurf.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gl_rsurf.c b/gl_rsurf.c index b333d16f..9dd089fe 100644 --- a/gl_rsurf.c +++ b/gl_rsurf.c @@ -899,7 +899,8 @@ void R_Q1BSP_GetLightInfo(entity_render_t *ent, vec3_t relativelightorigin, floa info.pvs = info.model->brush.GetPVS(info.model, info.relativelightorigin); else info.pvs = NULL; - R_UpdateAllTextureInfo(ent); + if (ent != r_refdef.worldentity) + R_UpdateAllTextureInfo(ent); if (r_shadow_frontsidecasting.integer && r_shadow_compilingrtlight && r_shadow_realtime_world_compileportalculling.integer) { @@ -962,7 +963,8 @@ void R_Q1BSP_DrawShadowVolume(entity_render_t *ent, vec3_t relativelightorigin, // check the box in modelspace, it was already checked in worldspace if (!BoxesOverlap(model->normalmins, model->normalmaxs, lightmins, lightmaxs)) return; - R_UpdateAllTextureInfo(ent); + if (ent != r_refdef.worldentity) + R_UpdateAllTextureInfo(ent); if (ent->model->brush.submodel) GL_PolygonOffset(r_refdef.shadowpolygonfactor + r_polygonoffset_submodel_factor.value, r_refdef.shadowpolygonoffset + r_polygonoffset_submodel_offset.value); if (model->brush.shadowmesh) @@ -1042,8 +1044,13 @@ void R_Q1BSP_DrawLight(entity_render_t *ent, int numsurfaces, const int *surface int batchelements[BATCHSIZE*3]; texture_t *tex; CHECKGLERROR - RSurf_ActiveModelEntity(ent, true, true); - R_UpdateAllTextureInfo(ent); + if (ent == r_refdef.worldentity) + RSurf_ActiveWorldEntity(); + else + { + RSurf_ActiveModelEntity(ent, true, true); + R_UpdateAllTextureInfo(ent); + } CHECKGLERROR culltriangles = r_shadow_culltriangles.integer && !(ent->flags & RENDER_NOSELFSHADOW); element3i = rsurface.modelelement3i; -- 2.39.2