From 0906140a18690a9dced8dec12dfdd8cf4c95a4df Mon Sep 17 00:00:00 2001 From: sg215889 Date: Fri, 24 Jul 2009 07:29:28 -0700 Subject: Add: Extended support for CVM crosscompile: - Clean up X11 dependency - NativeWindow: - Seperate X11 out of core. - Add nativewindow.x11.jar and nativewindow.x11.cdc.jar - Newt: - Seperate X11,win,osx out of core. - Add newt.x11.jar, newt.win.jar, newt.osx.jar and the CDC variants Fix: External Context & Drawable (X11 and Windows) - Properly fetch current context values (ctx, display, drawable, ..) - Create GraphicsConfiguration based on the given pixelformat/FBConfig Fix: Java2D OpenGL Usage - Using the external context as shared for the external drawable - JAWTUtil: Skip locking in case of OGL-Flush-Queue - TODO: Windows FBO still does not work .. (X11 is fine) --- .../javax/media/nativewindow/Capabilities.java | 23 ++++++++++++++++++++-- .../media/nativewindow/NativeWindowFactory.java | 10 ++-------- .../media/nativewindow/x11/X11GraphicsDevice.java | 2 -- .../media/nativewindow/x11/X11GraphicsScreen.java | 4 ++-- 4 files changed, 25 insertions(+), 14 deletions(-) (limited to 'src/nativewindow/classes/javax/media') diff --git a/src/nativewindow/classes/javax/media/nativewindow/Capabilities.java b/src/nativewindow/classes/javax/media/nativewindow/Capabilities.java index 6c4c93003..9df57b6d2 100644 --- a/src/nativewindow/classes/javax/media/nativewindow/Capabilities.java +++ b/src/nativewindow/classes/javax/media/nativewindow/Capabilities.java @@ -57,6 +57,9 @@ public class Capabilities implements Cloneable { private int transparentValueBlue = -1; private int transparentValueAlpha = -1; + // Switch for on- or offscreen + private boolean onscreen = true; + /** Creates a Capabilities object. All attributes are in a default state. */ @@ -79,7 +82,8 @@ public class Capabilities implements Cloneable { other.getGreenBits()==greenBits && other.getBlueBits()==blueBits && other.getAlphaBits()==alphaBits && - other.isBackgroundOpaque()==backgroundOpaque; + other.isBackgroundOpaque()==backgroundOpaque && + other.isOnscreen()==onscreen; if(!backgroundOpaque) { res = res && other.getTransparentRedValue()==transparentValueRed && other.getTransparentGreenValue()==transparentValueGreen && @@ -184,6 +188,20 @@ public class Capabilities implements Cloneable { return backgroundOpaque; } + /** Sets whether the drawable surface supports onscreen. + Defaults to true. + */ + public void setOnscreen(boolean onscreen) { + this.onscreen=onscreen; + } + + /** Indicates whether the drawable surface is onscreen. + Defaults to true. + */ + public boolean isOnscreen() { + return onscreen; + } + /** Gets the transparent red value for the frame buffer configuration. * This value is undefined if {@link #isBackgroundOpaque()} equals true. * @see #setTransparentRedValue @@ -242,7 +260,8 @@ public class Capabilities implements Cloneable { public String toString() { StringBuffer msg = new StringBuffer(); msg.append("Capabilities["); - msg.append("Red: " + redBits + + msg.append("Onscreen: "+ onscreen + + ", Red: " + redBits + ", Green: " + greenBits + ", Blue: " + blueBits + ", Alpha: " + alphaBits + diff --git a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java index eb0c25aed..cbd485649 100644 --- a/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java +++ b/src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java @@ -129,7 +129,8 @@ public abstract class NativeWindowFactory { } boolean toolkitLockForced = Debug.getBooleanProperty("nativewindow.locking", true, acc); - boolean awtToolkitLockDisabled = Debug.getBooleanProperty("java.awt.headless", false, acc); + boolean awtToolkitLockDisabled = Debug.getBooleanProperty("java.awt.headless", false, acc) || + Debug.getBooleanProperty("nativewindow.nolocking", true, acc) ; NativeWindowFactory _factory = null; @@ -166,13 +167,6 @@ public abstract class NativeWindowFactory { // primitives in its OpenGL window system binding) makes // the JOGL library more powerful. // - // (FIXME: from code examination, it looks like there are - // regressions in the support for external GLDrawables in - // JOGL 2 compared to JOGL 1.1.1. Note that the "default" - // X display connection from X11Util is being used during - // construction of the X11ExternalGLXDrawable instead of - // the result of glXGetCurrentDisplay().) - // // The X11AWTNativeWindowFactory provides a locking // mechanism compatible with the AWT. It may be desirable // to replace this window factory when using third-party diff --git a/src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsDevice.java b/src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsDevice.java index 911b8f416..f0ea11011 100644 --- a/src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsDevice.java +++ b/src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsDevice.java @@ -34,8 +34,6 @@ package javax.media.nativewindow.x11; import javax.media.nativewindow.*; -import com.sun.nativewindow.impl.x11.*; - /** Encapsulates a graphics device on X11 platforms. */ diff --git a/src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsScreen.java b/src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsScreen.java index 45146d33e..360036563 100644 --- a/src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsScreen.java +++ b/src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsScreen.java @@ -33,8 +33,8 @@ package javax.media.nativewindow.x11; import javax.media.nativewindow.*; - -import com.sun.nativewindow.impl.x11.*; +import com.sun.nativewindow.impl.x11.X11Util; +import com.sun.nativewindow.impl.x11.X11Lib; /** Encapsulates a screen index on X11 platforms. Objects of this type are passed to {@link -- cgit v1.2.3