only create opengl context once per window

fixes issues on intel and improves performance
This commit is contained in:
FunkyFr3sh 2024-07-22 09:02:31 +02:00
parent 4b5ded46f1
commit e3b81f8250
4 changed files with 81 additions and 30 deletions

View file

@ -1013,6 +1013,15 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
g_ddraw.renderer = gdi_render_main;
}
}
else if (g_ddraw.renderer == ogl_render_main)
{
if (!ogl_create())
{
ogl_release();
g_ddraw.show_driver_warning = TRUE;
g_ddraw.renderer = gdi_render_main;
}
}
if (lock_mouse || (g_config.fullscreen && real_GetForegroundWindow() == g_ddraw.hwnd))
mouse_lock();
@ -1093,6 +1102,15 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
g_ddraw.renderer = gdi_render_main;
}
}
else if (g_ddraw.renderer == ogl_render_main)
{
if (!ogl_create())
{
ogl_release();
g_ddraw.show_driver_warning = TRUE;
g_ddraw.renderer = gdi_render_main;
}
}
if (!d3d9_active || g_config.nonexclusive)
{
@ -1485,6 +1503,11 @@ ULONG dd_Release()
}
}
if (g_ddraw.renderer == ogl_render_main)
{
ogl_release();
}
if (g_ddraw.render.hdc)
{
ReleaseDC(g_ddraw.hwnd, g_ddraw.render.hdc);