diff --git a/src/swrenderer/r_swcanvas.cpp b/src/swrenderer/r_swcanvas.cpp index 564fa8ca5..5522d89dc 100644 --- a/src/swrenderer/r_swcanvas.cpp +++ b/src/swrenderer/r_swcanvas.cpp @@ -401,7 +401,7 @@ void SWCanvas::DrawLine(DCanvas *canvas, int x0, int y0, int x1, int y1, int pal palColor = PalFromRGB(realcolor); } - canvas->Lock(true); + canvas->Lock(); int deltaX, deltaY, xDir; if (y0 > y1) diff --git a/src/swrenderer/r_swrenderer.cpp b/src/swrenderer/r_swrenderer.cpp index 25b3539d1..9f842d38e 100644 --- a/src/swrenderer/r_swrenderer.cpp +++ b/src/swrenderer/r_swrenderer.cpp @@ -207,6 +207,7 @@ void FSoftwareRenderer::WriteSavePic (player_t *player, FileWriter *file, int wi PalEntry palette[256]; // Take a snapshot of the player's view + pic.Lock (); if (r_polyrenderer) { PolyRenderer::Instance()->Viewpoint = r_viewpoint; @@ -225,6 +226,7 @@ void FSoftwareRenderer::WriteSavePic (player_t *player, FileWriter *file, int wi } screen->GetFlashedPalette (palette); M_CreatePNG (file, pic.GetBuffer(), palette, SS_PAL, width, height, pic.GetPitch(), Gamma); + pic.Unlock (); } void FSoftwareRenderer::DrawRemainingPlayerSprites() diff --git a/src/swrenderer/scene/r_scene.cpp b/src/swrenderer/scene/r_scene.cpp index b229367ee..0fd292d69 100644 --- a/src/swrenderer/scene/r_scene.cpp +++ b/src/swrenderer/scene/r_scene.cpp @@ -380,7 +380,9 @@ namespace swrenderer R_ExecuteSetViewSize(MainThread()->Viewport->viewpoint, MainThread()->Viewport->viewwindow); float trueratio; ActiveRatio(width, height, &trueratio); + screen->Lock(true); viewport->SetViewport(MainThread(), width, height, trueratio); + screen->Unlock(); viewactive = savedviewactive; } @@ -393,7 +395,9 @@ namespace swrenderer int height = SCREENHEIGHT; float trueratio; ActiveRatio(width, height, &trueratio); + screen->Lock(true); viewport->SetViewport(MainThread(), SCREENWIDTH, SCREENHEIGHT, trueratio); + screen->Unlock(); } void RenderScene::Init()