1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +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_MINOR 3
#define VERSION_BUILD 1
#define VERSION_BUILD 2
#define VERSION_REVISION 0
#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 flags = 99998;
DWORD fixedOutput = 99998;
DEVMODE m;
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
while (EnumDisplaySettings(NULL, i, &m))
{
if (refreshRate != 60 && m.dmDisplayFrequency >= 50)
@ -236,9 +238,13 @@ HRESULT __stdcall ddraw_EnumDisplayModes(IDirectDrawImpl *This, DWORD dwFlags, L
if (fixedOutput != DMDFO_DEFAULT)
fixedOutput = m.dmDisplayFixedOutput;
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
i++;
}
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
i = 0;
while (EnumDisplaySettings(NULL, i, &m))
{
@ -276,6 +282,8 @@ HRESULT __stdcall ddraw_EnumDisplayModes(IDirectDrawImpl *This, DWORD dwFlags, L
break;
}
}
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
i++;
}
}
@ -456,6 +464,8 @@ BOOL GetLowestResolution(float ratio, SIZE *outRes, DWORD minWidth, DWORD minHei
SIZE lowest = { .cx = maxWidth + 1, .cy = maxHeight + 1 };
DWORD i = 0;
DEVMODE m;
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
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;
}
}
memset(&m, 0, sizeof(DEVMODE));
m.dmSize = sizeof(DEVMODE);
i++;
}
@ -1428,6 +1440,9 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This)
{
printf(" Released (%p)\n", This);
if (This->bpp)
Settings_Save(&WindowRect, WindowState);
if(This->render.run)
{
EnterCriticalSection(&This->cs);