Speed up level loading

Don't flush every texture just because the palette MAY have changed
This commit is contained in:
Jaime Passos 2019-12-08 22:28:13 -03:00
parent c6769e7220
commit 5c02bc59db
2 changed files with 11 additions and 19 deletions

View file

@ -566,18 +566,13 @@ EXPORT void HWRAPI(FinishUpdate) (INT32 waitvbl)
// -----------------+
EXPORT void HWRAPI(SetPalette) (RGBA_t *pal)
{
INT32 i;
for (i = 0; i < 256; i++)
{
myPaletteData[i].s.red = pal[i].s.red;
myPaletteData[i].s.green = pal[i].s.green;
myPaletteData[i].s.blue = pal[i].s.blue;
myPaletteData[i].s.alpha = pal[i].s.alpha;
}
size_t palsize = (sizeof(RGBA_t) * 256);
// on a palette change, you have to reload all of the textures
Flush();
if (memcmp(&myPaletteData, pal, palsize))
{
memcpy(&myPaletteData, pal, palsize);
Flush();
}
}
#endif

View file

@ -224,16 +224,13 @@ void OglSdlFinishUpdate(boolean waitvbl)
EXPORT void HWRAPI( OglSdlSetPalette) (RGBA_t *palette)
{
INT32 i;
for (i = 0; i < 256; i++)
size_t palsize = (sizeof(RGBA_t) * 256);
// on a palette change, you have to reload all of the textures
if (memcmp(&myPaletteData, palette, palsize))
{
myPaletteData[i].s.red = palette[i].s.red;
myPaletteData[i].s.green = palette[i].s.green;
myPaletteData[i].s.blue = palette[i].s.blue;
myPaletteData[i].s.alpha = palette[i].s.alpha;
memcpy(&myPaletteData, palette, palsize);
Flush();
}
Flush();
}
#endif //HWRENDER