only create opengl context once per window
fixes issues on intel and improves performance
This commit is contained in:
parent
4b5ded46f1
commit
e3b81f8250
4 changed files with 81 additions and 30 deletions
23
src/dd.c
23
src/dd.c
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue