1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

forgot to set DEVMODE size d'oh

This commit is contained in:
FunkyFr3sh 2018-11-26 12:11:23 +01:00
parent c2a775abbb
commit 0a7a552c79
2 changed files with 17 additions and 2 deletions

View File

@ -3,7 +3,7 @@
#define VERSION_MAJOR 1 #define VERSION_MAJOR 1
#define VERSION_MINOR 3 #define VERSION_MINOR 3
#define VERSION_BUILD 1 #define VERSION_BUILD 2
#define VERSION_REVISION 0 #define VERSION_REVISION 0
#define VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD, VERSION_REVISION #define VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD, VERSION_REVISION

View File

@ -220,8 +220,10 @@ HRESULT __stdcall ddraw_EnumDisplayModes(IDirectDrawImpl *This, DWORD dwFlags, L
DWORD bpp = 0; DWORD bpp = 0;
DWORD flags = 99998; DWORD flags = 99998;
DWORD fixedOutput = 99998; DWORD fixedOutput = 99998;
DEVMODE m; DEVMODE m;
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
while (EnumDisplaySettings(NULL, i, &m)) while (EnumDisplaySettings(NULL, i, &m))
{ {
if (refreshRate != 60 && m.dmDisplayFrequency >= 50) if (refreshRate != 60 && m.dmDisplayFrequency >= 50)
@ -236,9 +238,13 @@ HRESULT __stdcall ddraw_EnumDisplayModes(IDirectDrawImpl *This, DWORD dwFlags, L
if (fixedOutput != DMDFO_DEFAULT) if (fixedOutput != DMDFO_DEFAULT)
fixedOutput = m.dmDisplayFixedOutput; fixedOutput = m.dmDisplayFixedOutput;
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
i++; i++;
} }
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
i = 0; i = 0;
while (EnumDisplaySettings(NULL, i, &m)) while (EnumDisplaySettings(NULL, i, &m))
{ {
@ -276,6 +282,8 @@ HRESULT __stdcall ddraw_EnumDisplayModes(IDirectDrawImpl *This, DWORD dwFlags, L
break; break;
} }
} }
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
i++; i++;
} }
} }
@ -456,6 +464,8 @@ BOOL GetLowestResolution(float ratio, SIZE *outRes, DWORD minWidth, DWORD minHei
SIZE lowest = { .cx = maxWidth + 1, .cy = maxHeight + 1 }; SIZE lowest = { .cx = maxWidth + 1, .cy = maxHeight + 1 };
DWORD i = 0; DWORD i = 0;
DEVMODE m; DEVMODE m;
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
while (EnumDisplaySettings(NULL, i, &m)) while (EnumDisplaySettings(NULL, i, &m))
{ {
@ -475,6 +485,8 @@ BOOL GetLowestResolution(float ratio, SIZE *outRes, DWORD minWidth, DWORD minHei
outRes->cy = lowest.cy = m.dmPelsHeight; outRes->cy = lowest.cy = m.dmPelsHeight;
} }
} }
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
i++; i++;
} }
@ -1428,6 +1440,9 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This)
{ {
printf(" Released (%p)\n", This); printf(" Released (%p)\n", This);
if (This->bpp)
Settings_Save(&WindowRect, WindowState);
if(This->render.run) if(This->render.run)
{ {
EnterCriticalSection(&This->cs); EnterCriticalSection(&This->cs);