Win32: Commented multi-monitor stuff out from display.c, since we don't really support multiple monitors anyway. Now we only operate on the default (DISPLAY_DEVICE_PRIMARY_DEVICE) device, which should scale to multi monitor setups. Needs thorough testing, of course.
This commit is contained in:
parent
42e1a8a8c0
commit
55aacdac01
|
@ -92,14 +92,16 @@ static jobjectArray GetAvailableDisplayModesEx(JNIEnv * env) {
|
||||||
displayModeClass = (*env)->FindClass(env, "org/lwjgl/opengl/DisplayMode");
|
displayModeClass = (*env)->FindClass(env, "org/lwjgl/opengl/DisplayMode");
|
||||||
displayModeConstructor = (*env)->GetMethodID(env, displayModeClass, "<init>", "(IIII)V");
|
displayModeConstructor = (*env)->GetMethodID(env, displayModeClass, "<init>", "(IIII)V");
|
||||||
|
|
||||||
while(EnumDisplayDevices(NULL, i++, &DisplayDevice, 0) != 0) {
|
/* Multi-monitor stuff commented out since we're only really interested in the primary monitor */
|
||||||
|
/* while(EnumDisplayDevices(NULL, i++, &DisplayDevice, 0) != 0) {
|
||||||
// continue if mirroring device
|
// continue if mirroring device
|
||||||
if((DisplayDevice.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER) != 0) {
|
if((DisplayDevice.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER) != 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
while(EnumDisplaySettings((const char *) DisplayDevice.DeviceName, j++, &DevMode) != 0) {
|
while(EnumDisplaySettings((const char *) DisplayDevice.DeviceName, j++, &DevMode) != 0) {*/
|
||||||
|
while(EnumDisplaySettings(NULL, j++, &DevMode) != 0) {
|
||||||
// Filter out indexed modes
|
// Filter out indexed modes
|
||||||
if (DevMode.dmBitsPerPel > 8 && ChangeDisplaySettings(&DevMode, CDS_FULLSCREEN | CDS_TEST) == DISP_CHANGE_SUCCESSFUL) {
|
if (DevMode.dmBitsPerPel > 8 && ChangeDisplaySettings(&DevMode, CDS_FULLSCREEN | CDS_TEST) == DISP_CHANGE_SUCCESSFUL) {
|
||||||
jobject displayMode;
|
jobject displayMode;
|
||||||
|
@ -115,7 +117,7 @@ static jobjectArray GetAvailableDisplayModesEx(JNIEnv * env) {
|
||||||
display_mode_objects[n++] = displayMode;
|
display_mode_objects[n++] = displayMode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
printfDebugJava(env, "Found %d displaymodes", n);
|
printfDebugJava(env, "Found %d displaymodes", n);
|
||||||
|
|
||||||
ret = (*env)->NewObjectArray(env, n, displayModeClass, NULL);
|
ret = (*env)->NewObjectArray(env, n, displayModeClass, NULL);
|
||||||
|
@ -151,16 +153,17 @@ void switchDisplayMode(JNIEnv * env, jobject mode)
|
||||||
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
|
/* What's the proper way to do this multiply with 2 thing, if at all necessary? */
|
||||||
|
/* // Failed: so let's check to see if it's a wierd dual screen display
|
||||||
printfDebugJava(env, "Failed to set display mode (%ld) ... assuming dual monitors", cdsret);
|
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 (%ld)", cdsret);
|
printfDebugJava(env, "Failed to set display mode using dual monitors (%ld)", cdsret);*/
|
||||||
throwFormattedException(env, "Failed to set display mode (%ld).", cdsret);
|
throwFormattedException(env, "Failed to set display mode (%ld).", cdsret);
|
||||||
return;
|
return;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
modeSet = true;
|
modeSet = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue