Linux: Moved a display connection creation to java

This commit is contained in:
Elias Naur 2005-11-21 13:32:52 +00:00
parent 5af5828dc6
commit 6e5ed9d1ff
2 changed files with 22 additions and 28 deletions

View File

@ -79,20 +79,28 @@ final class LinuxDisplay implements DisplayImplementation {
private static PeerInfo peer_info;
private static int getBestDisplayModeExtension() throws LWJGLException {
if (System.getenv("LWJGL_DISABLE_XRANDR") == null && isXrandrSupported()) {
LWJGLUtil.log("Using Xrandr for display mode switching");
return XRANDR;
} else if (isXF86VidModeSupported()) {
LWJGLUtil.log("Using XF86VidMode for display mode switching");
return XF86VIDMODE;
} else {
LWJGLUtil.log("No display mode extensions available");
return NONE;
lockAWT();
try {
incDisplay();
int result;
if (System.getenv("LWJGL_DISABLE_XRANDR") == null && isXrandrSupported()) {
LWJGLUtil.log("Using Xrandr for display mode switching");
result = XRANDR;
} else if (isXF86VidModeSupported()) {
LWJGLUtil.log("Using XF86VidMode for display mode switching");
result = XF86VIDMODE;
} else {
LWJGLUtil.log("No display mode extensions available");
result = NONE;
}
decDisplay();
return result;
} finally {
unlockAWT();
}
}
private static native boolean isXrandrSupported() throws LWJGLException;
private static native boolean isXF86VidModeSupported() throws LWJGLException;
private static native boolean isXrandrSupported();
private static native boolean isXF86VidModeSupported();
private static boolean isNetWMFullscreenSupported() throws LWJGLException {
if (System.getenv("LWJGL_DISABLE_NETWM") != null)

View File

@ -130,26 +130,12 @@ static bool isXF86VidModeSupported(JNIEnv *env, Display *disp) {
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_LinuxDisplay_isXrandrSupported(JNIEnv *env, jclass unused) {
Display *disp = XOpenDisplay(NULL);
if (disp == NULL) {
throwException(env, "Could not open display");
return JNI_FALSE;
}
jboolean result = isXrandrSupported(env, disp) ? JNI_TRUE : JNI_FALSE;
XCloseDisplay(disp);
jboolean result = isXrandrSupported(env, getDisplay()) ? JNI_TRUE : JNI_FALSE;
return result;
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_LinuxDisplay_isXF86VidModeSupported(JNIEnv *env, jclass unused) {
Display *disp = XOpenDisplay(NULL);
if (disp == NULL) {
throwException(env, "Could not open display");
return JNI_FALSE;
}
jboolean result = isXF86VidModeSupported(env, disp) ? JNI_TRUE : JNI_FALSE;
XCloseDisplay(disp);
jboolean result = isXF86VidModeSupported(env, getDisplay()) ? JNI_TRUE : JNI_FALSE;
return result;
}