aboutsummaryrefslogtreecommitdiffstats
path: root/src/nativewindow/classes/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/nativewindow/classes/com')
-rw-r--r--src/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsDevice.java29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsDevice.java b/src/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsDevice.java
index 5e4d6f41a..152384980 100644
--- a/src/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsDevice.java
+++ b/src/nativewindow/classes/com/jogamp/nativewindow/x11/X11GraphicsDevice.java
@@ -84,11 +84,34 @@ public class X11GraphicsDevice extends DefaultGraphicsDevice implements Cloneabl
handleOwner = owner;
}
+ private static int getDefaultScreenImpl(long dpy) {
+ return X11Lib.DefaultScreen(dpy);
+ }
+
+ /**
+ * Returns the default screen number as referenced by the display connection, i.e. 'somewhere:0.1' -> 1
+ * <p>
+ * Implementation uses the XLib macro <code>DefaultScreen(display)</code>.
+ * </p>
+ */
+ public int getDefaultScreen() {
+ final long display = getHandle();
+ if(0==display) {
+ throw new NativeWindowException("null display");
+ }
+ final int ds = getDefaultScreenImpl(display);
+ if(DEBUG) {
+ System.err.println(Thread.currentThread().getName() + " - X11GraphicsDevice.getDefaultDisplay() of "+this+": "+ds+", count "+X11Lib.ScreenCount(display));
+ }
+ return ds;
+ }
+
public int getDefaultVisualID() {
- // It still could be an AWT hold handle ..
final long display = getHandle();
- final int scrnIdx = X11Lib.DefaultScreen(display);
- return X11Lib.DefaultVisualID(display, scrnIdx);
+ if(0==display) {
+ throw new NativeWindowException("null display");
+ }
+ return X11Lib.DefaultVisualID(display, getDefaultScreenImpl(display));
}
@Override