Cache Shadows and make them PU_STATIC
By just doing this performanc has shot up.
This commit is contained in:
parent
3e070a9cb0
commit
2424c2ccb8
2 changed files with 16 additions and 2 deletions
|
|
@ -3205,6 +3205,8 @@ static boolean HWR_DoCulling(line_t *cullheight, line_t *viewcullheight, float v
|
|||
return false;
|
||||
}
|
||||
|
||||
static patch_t *shadowpatch = NULL;
|
||||
|
||||
static void HWR_DrawDropShadow(mobj_t *thing, fixed_t scale)
|
||||
{
|
||||
patch_t *gpatch;
|
||||
|
|
@ -3243,7 +3245,12 @@ static void HWR_DrawDropShadow(mobj_t *thing, fixed_t scale)
|
|||
|
||||
groundz = R_GetShadowZ(thing, &groundslope);
|
||||
|
||||
gpatch = (patch_t *)W_CachePatchName("DSHADOW", PU_SPRITE);
|
||||
if (shadowpatch == NULL)
|
||||
{
|
||||
shadowpatch = (patch_t *)W_CachePatchName("DSHADOW", PU_STATIC);
|
||||
}
|
||||
|
||||
gpatch = shadowpatch;
|
||||
if (!(gpatch && ((GLPatch_t *)gpatch->hardware)->mipmap->format)) return;
|
||||
HWR_GetPatch(gpatch);
|
||||
|
||||
|
|
|
|||
|
|
@ -1443,6 +1443,8 @@ static void R_SkewShadowSprite(
|
|||
*shadowskew = xslope;
|
||||
}
|
||||
|
||||
static patch_t *shadowpatch = NULL;
|
||||
|
||||
static void R_ProjectDropShadow(
|
||||
mobj_t *thing, vissprite_t *vis,
|
||||
fixed_t scale, fixed_t tx, fixed_t tz)
|
||||
|
|
@ -1468,7 +1470,12 @@ static void R_ProjectDropShadow(
|
|||
R_InterpolateMobjState(thing, FRACUNIT, &interp);
|
||||
}
|
||||
|
||||
patch = static_cast<patch_t*>(W_CachePatchName("DSHADOW", PU_SPRITE));
|
||||
if (shadowpatch == NULL)
|
||||
{
|
||||
shadowpatch = static_cast<patch_t*>(W_CachePatchName("DSHADOW", PU_STATIC));
|
||||
}
|
||||
|
||||
patch = shadowpatch;
|
||||
xscale = FixedDiv(projection[viewssnum], tz);
|
||||
yscale = FixedDiv(projectiony[viewssnum], tz);
|
||||
shadowxscale = FixedMul(thing->radius*2, scale);
|
||||
|
|
|
|||
Loading…
Reference in a new issue