Exemple #1
0
 /**
  * ***************************** * * Locked X11Lib wrapped functions *
  * *****************************
  */
 public static long XOpenDisplay(String arg0) {
   long handle = X11Lib.XOpenDisplay(arg0);
   if (XSYNC_ENABLED && 0 != handle) {
     X11Lib.XSynchronize(handle, true);
   }
   if (TRACE_DISPLAY_LIFECYCLE) {
     System.err.println(
         Thread.currentThread()
             + " - X11Util.XOpenDisplay("
             + arg0
             + ") 0x"
             + Long.toHexString(handle));
     // Thread.dumpStack();
   }
   return handle;
 }
Exemple #2
0
  /**
   * 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();
          }
        }
      }
    }
  }