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:
parent
d45fabe5cd
commit
dcecd20d3c
15
src/render.c
15
src/render.c
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user