From b6642edb67e3e37530bed62d55dc3b01734576cf Mon Sep 17 00:00:00 2001 From: Toni Spets Date: Tue, 9 Nov 2010 17:47:41 +0200 Subject: [PATCH] Default to current mode bpp --- main.c | 2 +- render_opengl.c | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index ce3456b..b0e9bab 100644 --- a/main.c +++ b/main.c @@ -498,7 +498,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->render->bpp = GetPrivateProfileIntA("ddraw", "bpp", 32, ini_path); if(This->render->bpp != 16 && This->render->bpp != 24 && This->render->bpp != 32) { - This->render->bpp = 32; + This->render->bpp = 0; } GetPrivateProfileStringA("ddraw", "filter", tmp, tmp, sizeof(tmp), ini_path); diff --git a/render_opengl.c b/render_opengl.c index 1039a9e..30c2fe4 100644 --- a/render_opengl.c +++ b/render_opengl.c @@ -72,19 +72,23 @@ HRESULT WINAPI render_opengl_SetDisplayMode(DWORD width, DWORD height) { DEVMODE mode; + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &render_opengl.restore); + if(ddraw->windowed) { return DD_OK; } - EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &render_opengl.restore); - memset(&mode, 0, sizeof(DEVMODE)); mode.dmSize = sizeof(DEVMODE); - mode.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT; + mode.dmFields = DM_PELSWIDTH|DM_PELSHEIGHT; mode.dmPelsWidth = render_opengl.width; mode.dmPelsHeight = render_opengl.height; - mode.dmBitsPerPel = render_opengl.bpp; + if(render_opengl.bpp) + { + mode.dmFields |= DM_BITSPERPEL; + mode.dmBitsPerPel = render_opengl.bpp; + } return ChangeDisplaySettings(&mode, CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL ? DD_OK : DDERR_INVALIDMODE; } @@ -119,7 +123,7 @@ DWORD WINAPI render_opengl_main(IDirectDrawSurfaceImpl *surface) pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; pfd.iPixelType = PFD_TYPE_RGBA; - pfd.cColorBits = render_opengl.bpp; + pfd.cColorBits = render_opengl.bpp ? render_opengl.bpp : render_opengl.restore.dmBitsPerPel; pfd.iLayerType = PFD_MAIN_PLANE; SetPixelFormat( hDC, ChoosePixelFormat( hDC, &pfd ), &pfd );