Win32: Added debug to dispaly mode switching and removed the DM_DISPLAYFLAGS flag
This commit is contained in:
parent
9dfd46ba6f
commit
42e1a8a8c0
|
@ -60,8 +60,6 @@ static WORD currentGamma[GAMMA_SIZE]; // Current gamma settings
|
||||||
static DEVMODE devmode; // Now we'll remember this value for the future
|
static DEVMODE devmode; // Now we'll remember this value for the future
|
||||||
extern HWND display_hwnd; // Handle to the window
|
extern HWND display_hwnd; // Handle to the window
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
jobjectArray getAvailableDisplayModes(JNIEnv *env)
|
jobjectArray getAvailableDisplayModes(JNIEnv *env)
|
||||||
{
|
{
|
||||||
jobjectArray result = GetAvailableDisplayModesEx(env);
|
jobjectArray result = GetAvailableDisplayModesEx(env);
|
||||||
|
@ -146,22 +144,21 @@ void switchDisplayMode(JNIEnv * env, jobject mode)
|
||||||
devmode.dmBitsPerPel = bpp;
|
devmode.dmBitsPerPel = bpp;
|
||||||
devmode.dmPelsWidth = width;
|
devmode.dmPelsWidth = width;
|
||||||
devmode.dmPelsHeight = height;
|
devmode.dmPelsHeight = height;
|
||||||
devmode.dmDisplayFlags = 0;
|
|
||||||
devmode.dmDisplayFrequency = freq;
|
devmode.dmDisplayFrequency = freq;
|
||||||
devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFLAGS;
|
devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
|
||||||
if (freq != 0)
|
if (freq != 0)
|
||||||
devmode.dmFields |= DM_DISPLAYFREQUENCY;
|
devmode.dmFields |= DM_DISPLAYFREQUENCY;
|
||||||
cdsret = ChangeDisplaySettings(&devmode, CDS_FULLSCREEN);
|
cdsret = ChangeDisplaySettings(&devmode, CDS_FULLSCREEN);
|
||||||
|
|
||||||
if (cdsret != DISP_CHANGE_SUCCESSFUL) {
|
if (cdsret != DISP_CHANGE_SUCCESSFUL) {
|
||||||
// Failed: so let's check to see if it's a wierd dual screen display
|
// Failed: so let's check to see if it's a wierd dual screen display
|
||||||
printfDebugJava(env, "Failed to set display mode... assuming dual monitors");
|
printfDebugJava(env, "Failed to set display mode (%ld) ... assuming dual monitors", cdsret);
|
||||||
devmode.dmPelsWidth = width * 2;
|
devmode.dmPelsWidth = width * 2;
|
||||||
cdsret = ChangeDisplaySettings(&devmode, CDS_FULLSCREEN);
|
cdsret = ChangeDisplaySettings(&devmode, CDS_FULLSCREEN);
|
||||||
|
|
||||||
if (cdsret != DISP_CHANGE_SUCCESSFUL) {
|
if (cdsret != DISP_CHANGE_SUCCESSFUL) {
|
||||||
printfDebugJava(env, "Failed to set display mode using dual monitors");
|
printfDebugJava(env, "Failed to set display mode using dual monitors (%ld)", cdsret);
|
||||||
throwException(env, "Failed to set display mode.");
|
throwFormattedException(env, "Failed to set display mode (%ld).", cdsret);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue