mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +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()
|
||||
{
|
||||
BOOL needs_update = FALSE;
|
||||
LONG clear_count = 0;
|
||||
|
||||
glViewport(
|
||||
g_ddraw->render.viewport.x, g_ddraw->render.viewport.y,
|
||||
@ -578,6 +579,9 @@ static void ogl_render()
|
||||
|
||||
BOOL scale_changed = FALSE;
|
||||
|
||||
if (InterlockedExchange(&g_ddraw->render.clear_screen, FALSE))
|
||||
clear_count = 10;
|
||||
|
||||
fpsl_frame_start();
|
||||
|
||||
EnterCriticalSection(&g_ddraw->cs);
|
||||
@ -652,17 +656,11 @@ static void ogl_render()
|
||||
|
||||
if (error_check_count < 20)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
error_check_count++;
|
||||
|
||||
if (glGetError() != GL_NO_ERROR)
|
||||
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;
|
||||
EnumChildWindows(g_ddraw->hwnd, util_enum_child_proc, (LPARAM)g_ddraw->primary);
|
||||
@ -692,6 +690,16 @@ static void ogl_render()
|
||||
|
||||
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 (g_ogl.scale_program && g_ogl.main_program)
|
||||
|
Loading…
x
Reference in New Issue
Block a user