mirror of
https://github.com/vcmi/vcmi.git
synced 2025-07-15 01:24:45 +02:00
Implemented lazy totalRedraw to prevent multiple redraws on single frame
This commit is contained in:
@ -99,6 +99,12 @@ bool WindowHandler::isTopWindow(IShowActivatable * window) const
|
||||
|
||||
void WindowHandler::totalRedraw()
|
||||
{
|
||||
totalRedrawRequested = true;
|
||||
}
|
||||
|
||||
void WindowHandler::totalRedrawImpl()
|
||||
{
|
||||
logGlobal->debug("totalRedraw requested!");
|
||||
CSDL_Ext::fillSurface(screen2, Colors::BLACK);
|
||||
|
||||
Canvas target = Canvas::createFromSurface(screen2);
|
||||
@ -109,6 +115,16 @@ void WindowHandler::totalRedraw()
|
||||
}
|
||||
|
||||
void WindowHandler::simpleRedraw()
|
||||
{
|
||||
if (totalRedrawRequested)
|
||||
totalRedrawImpl();
|
||||
else
|
||||
simpleRedrawImpl();
|
||||
|
||||
totalRedrawRequested = false;
|
||||
}
|
||||
|
||||
void WindowHandler::simpleRedrawImpl()
|
||||
{
|
||||
//update only top interface and draw background
|
||||
if(windowsStack.size() > 1)
|
||||
|
Reference in New Issue
Block a user