- removed the remaining calls from the FRenderer interface from the main game code.

This does not work with a setup where the same backend is driving both renderers.
Most of this is now routed through 'screen', and the decision between renderers has to be made inside the actual render functions.
The software renderer is still driven by a thin opaque interface to keep it mostly an isolated module.
This commit is contained in:
Christoph Oelckers 2018-04-04 00:21:25 +02:00
commit d474b849a5
18 changed files with 243 additions and 238 deletions

View file

@ -3427,6 +3427,8 @@ void P_GetPolySpots (MapData * map, TArray<FNodeBuilder::FPolyStart> &spots, TAr
// Preloads all relevant graphics for the level.
//
//===========================================================================
extern int currentrenderer;
void gl_PrecacheTexture(uint8_t *texhitlist, TMap<PClassActor*, bool> &actorhitlist);
static void P_PrecacheLevel()
{
@ -3501,7 +3503,11 @@ static void P_PrecacheLevel()
if (tex.Exists()) hitlist[tex.GetIndex()] |= FTextureManager::HIT_Wall;
}
Renderer->Precache(hitlist, actorhitlist);
// This is just a temporary solution, until the hardware renderer's texture manager is in a better state.
if (currentrenderer == 0)
SWRenderer->Precache(hitlist, actorhitlist);
else
gl_PrecacheTexture(hitlist, actorhitlist);
delete[] hitlist;
}