mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-11 07:11:39 +00:00
Polymer: factor out polymer_invalidatesprite(), use when viewscreen tex changed.
Also, rewrite invalidatetile() for clarity. git-svn-id: https://svn.eduke32.com/eduke32@4303 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
a37c31cab7
commit
e379cd3655
4 changed files with 28 additions and 31 deletions
|
@ -332,6 +332,14 @@ void polymer_texinvalidate(void);
|
||||||
void polymer_definehighpalookup(char basepalnum, char palnum, char *fn);
|
void polymer_definehighpalookup(char basepalnum, char palnum, char *fn);
|
||||||
int32_t polymer_havehighpalookup(int32_t basepalnum, int32_t palnum);
|
int32_t polymer_havehighpalookup(int32_t basepalnum, int32_t palnum);
|
||||||
|
|
||||||
|
static inline void polymer_invalidatesprite(int32_t i)
|
||||||
|
{
|
||||||
|
extern _prsprite *prsprites[MAXSPRITES];
|
||||||
|
|
||||||
|
if (prsprites[i])
|
||||||
|
prsprites[i]->crc = 0xDEADBEEF;
|
||||||
|
}
|
||||||
|
|
||||||
# ifdef POLYMER_C
|
# ifdef POLYMER_C
|
||||||
|
|
||||||
// CORE
|
// CORE
|
||||||
|
|
|
@ -17363,36 +17363,26 @@ void setrollangle(int32_t rolla)
|
||||||
//
|
//
|
||||||
void invalidatetile(int16_t tilenume, int32_t pal, int32_t how)
|
void invalidatetile(int16_t tilenume, int32_t pal, int32_t how)
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGL
|
#if !defined USE_OPENGL
|
||||||
int32_t numpal, firstpal, np;
|
|
||||||
int32_t hp;
|
|
||||||
|
|
||||||
if (getrendermode() < REND_POLYMOST) return;
|
|
||||||
|
|
||||||
if (pal < 0)
|
|
||||||
{
|
|
||||||
numpal = MAXPALOOKUPS;
|
|
||||||
firstpal = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
numpal = 1;
|
|
||||||
firstpal = pal % MAXPALOOKUPS;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (hp = 0; hp < 8; hp+=4)
|
|
||||||
{
|
|
||||||
if (!(how & pow2long[hp])) continue;
|
|
||||||
|
|
||||||
for (np = firstpal; np < firstpal+numpal; np++)
|
|
||||||
{
|
|
||||||
gltexinvalidate(tilenume, np, hp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
UNREFERENCED_PARAMETER(tilenume);
|
UNREFERENCED_PARAMETER(tilenume);
|
||||||
UNREFERENCED_PARAMETER(pal);
|
UNREFERENCED_PARAMETER(pal);
|
||||||
UNREFERENCED_PARAMETER(how);
|
UNREFERENCED_PARAMETER(how);
|
||||||
|
#else
|
||||||
|
if (getrendermode() >= REND_POLYMOST)
|
||||||
|
{
|
||||||
|
int32_t hp, np;
|
||||||
|
|
||||||
|
const int32_t firstpal = (pal < 0) ? 0 : pal;
|
||||||
|
const int32_t numpals = (pal < 0) ? MAXPALOOKUPS : 1;
|
||||||
|
|
||||||
|
for (hp = 0; hp <= 4; hp+=4)
|
||||||
|
{
|
||||||
|
if (how & pow2long[hp])
|
||||||
|
for (np = firstpal; np < firstpal+numpals; np++)
|
||||||
|
gltexinvalidate(tilenume, np, hp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1622,8 +1622,7 @@ void polymer_texinvalidate(void)
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
||||||
while (i < MAXSPRITES) {
|
while (i < MAXSPRITES) {
|
||||||
if (prsprites[i])
|
polymer_invalidatesprite(i);
|
||||||
prsprites[i]->crc = 0xDEADBEEF;
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -373,9 +373,9 @@ void G_AnimateCamSprite(void)
|
||||||
|
|
||||||
G_SetupCamTile(OW, TILE_VIEWSCR);
|
G_SetupCamTile(OW, TILE_VIEWSCR);
|
||||||
#ifdef POLYMER
|
#ifdef POLYMER
|
||||||
// HACK: force texture update on viewscreen sprite in Polymer!
|
// Force texture update on viewscreen sprite in Polymer!
|
||||||
if (getrendermode() == REND_POLYMER)
|
if (getrendermode() == REND_POLYMER)
|
||||||
sprite[i].filler ^= (1<<1);
|
polymer_invalidatesprite(i);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue