public static int XCloseDisplay(long display) { if (TRACE_DISPLAY_LIFECYCLE) { System.err.println( Thread.currentThread() + " - X11Util.XCloseDisplay() 0x" + Long.toHexString(display)); // Thread.dumpStack(); } int res = -1; try { res = X11Lib.XCloseDisplay(display); } catch (Exception ex) { System.err.println("X11Util: Catched Exception:"); ex.printStackTrace(); } return res; }
/** * Called by {@link NativeWindowFactory#initSingleton()} * * @see ToolkitProperties */ public static void initSingleton() { if (!isInit) { synchronized (X11Util.class) { if (!isInit) { isInit = true; if (DEBUG) { System.out.println("X11Util.initSingleton()"); } if (!NWJNILibLoader.loadNativeWindow("x11")) { throw new NativeWindowException("NativeWindow X11 native library load error."); } final boolean isInitOK = initialize0(XERROR_STACKDUMP); final boolean hasX11_EXTENSION_ATIFGLRXDRI, hasX11_EXTENSION_ATIFGLEXTENSION; final long dpy = X11Lib.XOpenDisplay( PropertyAccess.getProperty("nativewindow.x11.display.default", true)); if (0 != dpy) { if (XSYNC_ENABLED) { X11Lib.XSynchronize(dpy, true); } try { nullDisplayName = X11Lib.XDisplayString(dpy); hasX11_EXTENSION_ATIFGLRXDRI = X11Lib.QueryExtension(dpy, X11_EXTENSION_ATIFGLRXDRI); hasX11_EXTENSION_ATIFGLEXTENSION = X11Lib.QueryExtension(dpy, X11_EXTENSION_ATIFGLEXTENSION); } finally { X11Lib.XCloseDisplay(dpy); } } else { nullDisplayName = "nil"; hasX11_EXTENSION_ATIFGLRXDRI = false; hasX11_EXTENSION_ATIFGLEXTENSION = false; } final boolean isATIFGLRX = hasX11_EXTENSION_ATIFGLRXDRI || hasX11_EXTENSION_ATIFGLEXTENSION; hasThreadingIssues = ATI_HAS_MULTITHREADING_BUG && isATIFGLRX; if (!markAllDisplaysUnclosable) { markAllDisplaysUnclosable = (ATI_HAS_XCLOSEDISPLAY_BUG && isATIFGLRX) || HAS_XCLOSEDISPLAY_BUG; } if (DEBUG) { System.err.println( "X11Util.initSingleton(): OK " + isInitOK + "]" + ",\n\t X11 Display(NULL) <" + nullDisplayName + ">" + ",\n\t XSynchronize Enabled: " + XSYNC_ENABLED + ",\n\t X11_EXTENSION_ATIFGLRXDRI " + hasX11_EXTENSION_ATIFGLRXDRI + ",\n\t X11_EXTENSION_ATIFGLEXTENSION " + hasX11_EXTENSION_ATIFGLEXTENSION + ",\n\t requiresToolkitLock " + requiresToolkitLock() + ",\n\t hasThreadingIssues " + hasThreadingIssues() + ",\n\t markAllDisplaysUnclosable " + getMarkAllDisplaysUnclosable()); // Thread.dumpStack(); } } } } }