Remove multithreading RenderState as that seemed to be a poor approach

This commit is contained in:
dpjudas 2023-10-09 03:20:19 +02:00
commit 411b281e7c
19 changed files with 64 additions and 237 deletions

View file

@ -104,7 +104,7 @@ void CollectLights(FLevelLocals* Level)
sector_t* RenderViewpoint(FRenderViewpoint& mainvp, AActor* camera, IntRect* bounds, float fov, float ratio, float fovratio, bool mainview, bool toscreen)
{
auto& RenderState = *screen->RenderState(0);
auto& RenderState = *screen->RenderState();
R_SetupFrame(mainvp, r_viewwindow, camera);
@ -170,7 +170,7 @@ sector_t* RenderViewpoint(FRenderViewpoint& mainvp, AActor* camera, IntRect* bou
vp.Pos += eye.GetViewShift(vp.HWAngles.Yaw.Degrees());
di->SetupView(RenderState, vp.Pos.X, vp.Pos.Y, vp.Pos.Z, false, false);
di->ProcessScene(toscreen, *screen->RenderState(0));
di->ProcessScene(toscreen, *screen->RenderState());
if (mainview)
{
@ -266,7 +266,7 @@ void WriteSavePic(player_t* player, FileWriter* file, int width, int height)
bounds.top = 0;
bounds.width = width;
bounds.height = height;
auto& RenderState = *screen->RenderState(0);
auto& RenderState = *screen->RenderState();
// we must be sure the GPU finished reading from the buffer before we fill it with new data.
screen->WaitForCommands(false);
@ -313,7 +313,7 @@ static void CheckTimer(FRenderState &state, uint64_t ShaderStartTime)
sector_t* RenderView(player_t* player)
{
auto RenderState = screen->RenderState(0);
auto RenderState = screen->RenderState();
RenderState->SetFlatVertexBuffer();
RenderState->ResetVertices();
hw_postprocess.SetTonemapMode(level.info ? level.info->tonemap : ETonemapMode::None);
@ -355,7 +355,7 @@ sector_t* RenderView(player_t* player)
screen->RenderTextureView(canvas->Tex, [=](IntRect& bounds)
{
screen->SetViewportRects(&bounds);
Draw2D(&canvas->Drawer, *screen->RenderState(0), 0, 0, canvas->Tex->GetWidth(), canvas->Tex->GetHeight());
Draw2D(&canvas->Drawer, *screen->RenderState(), 0, 0, canvas->Tex->GetWidth(), canvas->Tex->GetHeight());
canvas->Drawer.Clear();
});
canvas->Tex->SetUpdated(true);

View file

@ -316,7 +316,7 @@ void hw_PrecacheTexture(uint8_t *texhitlist, TMap<PClassActor*, bool> &actorhitl
FImageSource::EndPrecaching();
// cache all used models
FModelRenderer* renderer = new FHWModelRenderer(nullptr, *screen->RenderState(0), -1);
FModelRenderer* renderer = new FHWModelRenderer(nullptr, *screen->RenderState(), -1);
for (unsigned i = 0; i < Models.Size(); i++)
{
if (modellist[i])

View file

@ -108,7 +108,7 @@ void HWDrawInfo::WorkerThread()
{
sector_t *front, *back;
FRenderState& state = *screen->RenderState(0);
FRenderState& state = *screen->RenderState();
WTTotal.Clock();
isWorkerThread = true; // for adding asserts in GL API code. The worker thread may never call any GL API.