mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
fix d9d9 clear issues on windows xp
This commit is contained in:
parent
37c8dc1d91
commit
a5aa71ff3a
@ -286,6 +286,7 @@ static BOOL d3d9_set_states()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
D3DVIEWPORT9 view_data = {
|
D3DVIEWPORT9 view_data = {
|
||||||
g_ddraw->render.viewport.x,
|
g_ddraw->render.viewport.x,
|
||||||
g_ddraw->render.viewport.y,
|
g_ddraw->render.viewport.y,
|
||||||
@ -295,7 +296,7 @@ static BOOL d3d9_set_states()
|
|||||||
1.0f };
|
1.0f };
|
||||||
|
|
||||||
err = err || FAILED(IDirect3DDevice9_SetViewport(g_d3d9.device, &view_data));
|
err = err || FAILED(IDirect3DDevice9_SetViewport(g_d3d9.device, &view_data));
|
||||||
|
*/
|
||||||
return !err;
|
return !err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,6 +338,7 @@ DWORD WINAPI d3d9_render_main(void)
|
|||||||
fpsl_init();
|
fpsl_init();
|
||||||
|
|
||||||
BOOL needs_update = FALSE;
|
BOOL needs_update = FALSE;
|
||||||
|
LONG clear_count = 0;
|
||||||
|
|
||||||
DWORD timeout = g_ddraw->render.minfps > 0 ? g_ddraw->render.minfps_tick_len : 200;
|
DWORD timeout = g_ddraw->render.minfps > 0 ? g_ddraw->render.minfps_tick_len : 200;
|
||||||
|
|
||||||
@ -349,6 +351,9 @@ DWORD WINAPI d3d9_render_main(void)
|
|||||||
|
|
||||||
static int tex_index = 0, pal_index = 0;
|
static int tex_index = 0, pal_index = 0;
|
||||||
|
|
||||||
|
if (InterlockedExchange(&g_ddraw->render.clear_screen, FALSE))
|
||||||
|
clear_count = 10;
|
||||||
|
|
||||||
fpsl_frame_start();
|
fpsl_frame_start();
|
||||||
|
|
||||||
EnterCriticalSection(&g_ddraw->cs);
|
EnterCriticalSection(&g_ddraw->cs);
|
||||||
@ -416,11 +421,6 @@ DWORD WINAPI d3d9_render_main(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (InterlockedExchange(&g_ddraw->render.clear_screen, FALSE))
|
|
||||||
{
|
|
||||||
IDirect3DDevice9_Clear(g_d3d9.device, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_ddraw->fixchilds)
|
if (g_ddraw->fixchilds)
|
||||||
{
|
{
|
||||||
g_ddraw->child_window_exists = FALSE;
|
g_ddraw->child_window_exists = FALSE;
|
||||||
@ -446,6 +446,12 @@ DWORD WINAPI d3d9_render_main(void)
|
|||||||
|
|
||||||
LeaveCriticalSection(&g_ddraw->cs);
|
LeaveCriticalSection(&g_ddraw->cs);
|
||||||
|
|
||||||
|
if (clear_count > 0)
|
||||||
|
{
|
||||||
|
clear_count--;
|
||||||
|
IDirect3DDevice9_Clear(g_d3d9.device, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
|
||||||
|
}
|
||||||
|
|
||||||
IDirect3DDevice9_BeginScene(g_d3d9.device);
|
IDirect3DDevice9_BeginScene(g_d3d9.device);
|
||||||
IDirect3DDevice9_DrawPrimitive(g_d3d9.device, D3DPT_TRIANGLESTRIP, 0, 2);
|
IDirect3DDevice9_DrawPrimitive(g_d3d9.device, D3DPT_TRIANGLESTRIP, 0, 2);
|
||||||
IDirect3DDevice9_EndScene(g_d3d9.device);
|
IDirect3DDevice9_EndScene(g_d3d9.device);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user