1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

don't update vertices/viewport on every frame to improve the performance

This commit is contained in:
FunkyFr3sh 2018-11-16 07:02:27 +01:00
parent d45fabe5cd
commit dcecd20d3c
2 changed files with 23 additions and 5 deletions

View File

@ -652,15 +652,26 @@ static void Render()
if (ddraw->render.width != ddraw->width || ddraw->render.height != ddraw->height)
{
static BOOL needsUpdate;
if (ChildWindowExists)
{
glClear(GL_COLOR_BUFFER_BIT);
glViewport(0, ddraw->render.height - ddraw->height, ddraw->width, ddraw->height);
if (!needsUpdate)
{
glViewport(0, ddraw->render.height - ddraw->height, ddraw->width, ddraw->height);
needsUpdate = TRUE;
}
}
else
else if (needsUpdate)
{
glViewport(
ddraw->render.viewport.x, ddraw->render.viewport.y,
ddraw->render.viewport.width, ddraw->render.viewport.height);
needsUpdate = FALSE;
}
}
}
}

View File

@ -383,13 +383,20 @@ DWORD WINAPI render_d3d9_main(void)
if (ddraw->render.width != ddraw->width || ddraw->render.height != ddraw->height)
{
static BOOL needsUpdate;
if (ChildWindowExists)
{
IDirect3DDevice9_Clear(D3dDev, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
UpdateVertices(FALSE, FALSE);
if (!needsUpdate && UpdateVertices(FALSE, FALSE))
needsUpdate = TRUE;
}
else if (needsUpdate)
{
if (UpdateVertices(FALSE, TRUE))
needsUpdate = FALSE;
}
else
UpdateVertices(FALSE, TRUE);
}
}
}