mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +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)
|
if (ddraw->render.width != ddraw->width || ddraw->render.height != ddraw->height)
|
||||||
{
|
{
|
||||||
|
static BOOL needsUpdate;
|
||||||
|
|
||||||
if (ChildWindowExists)
|
if (ChildWindowExists)
|
||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
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(
|
glViewport(
|
||||||
ddraw->render.viewport.x, ddraw->render.viewport.y,
|
ddraw->render.viewport.x, ddraw->render.viewport.y,
|
||||||
ddraw->render.viewport.width, ddraw->render.viewport.height);
|
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)
|
if (ddraw->render.width != ddraw->width || ddraw->render.height != ddraw->height)
|
||||||
{
|
{
|
||||||
|
static BOOL needsUpdate;
|
||||||
|
|
||||||
if (ChildWindowExists)
|
if (ChildWindowExists)
|
||||||
{
|
{
|
||||||
IDirect3DDevice9_Clear(D3dDev, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
|
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