mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
#111 clear multiple times with opengl
This commit is contained in:
parent
aed6deb4ff
commit
062f622ecd
@ -548,6 +548,7 @@ static void ogl_init_scale_program()
|
|||||||
static void ogl_render()
|
static void ogl_render()
|
||||||
{
|
{
|
||||||
BOOL needs_update = FALSE;
|
BOOL needs_update = FALSE;
|
||||||
|
LONG clear_count = 0;
|
||||||
|
|
||||||
glViewport(
|
glViewport(
|
||||||
g_ddraw->render.viewport.x, g_ddraw->render.viewport.y,
|
g_ddraw->render.viewport.x, g_ddraw->render.viewport.y,
|
||||||
@ -578,6 +579,9 @@ static void ogl_render()
|
|||||||
|
|
||||||
BOOL scale_changed = FALSE;
|
BOOL scale_changed = FALSE;
|
||||||
|
|
||||||
|
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);
|
||||||
@ -652,17 +656,11 @@ static void ogl_render()
|
|||||||
|
|
||||||
if (error_check_count < 20)
|
if (error_check_count < 20)
|
||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
error_check_count++;
|
error_check_count++;
|
||||||
|
|
||||||
if (glGetError() != GL_NO_ERROR)
|
if (glGetError() != GL_NO_ERROR)
|
||||||
g_ogl.use_opengl = FALSE;
|
g_ogl.use_opengl = FALSE;
|
||||||
}
|
}
|
||||||
else if (g_ddraw->wine || InterlockedExchange(&g_ddraw->render.clear_screen, FALSE))
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_ddraw->child_window_exists = FALSE;
|
g_ddraw->child_window_exists = FALSE;
|
||||||
EnumChildWindows(g_ddraw->hwnd, util_enum_child_proc, (LPARAM)g_ddraw->primary);
|
EnumChildWindows(g_ddraw->hwnd, util_enum_child_proc, (LPARAM)g_ddraw->primary);
|
||||||
@ -692,6 +690,16 @@ static void ogl_render()
|
|||||||
|
|
||||||
LeaveCriticalSection(&g_ddraw->cs);
|
LeaveCriticalSection(&g_ddraw->cs);
|
||||||
|
|
||||||
|
if (g_ddraw->wine)
|
||||||
|
{
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
}
|
||||||
|
else if (clear_count > 0)
|
||||||
|
{
|
||||||
|
clear_count--;
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
}
|
||||||
|
|
||||||
if (scale_changed)
|
if (scale_changed)
|
||||||
{
|
{
|
||||||
if (g_ogl.scale_program && g_ogl.main_program)
|
if (g_ogl.scale_program && g_ogl.main_program)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user