diff options
Diffstat (limited to 'src/newt/classes/com')
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/Display.java (renamed from src/newt/classes/com/sun/javafx/newt/Display.java) | 61 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/Event.java (renamed from src/newt/classes/com/sun/javafx/newt/Event.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/EventListener.java (renamed from src/newt/classes/com/sun/javafx/newt/EventListener.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/InputEvent.java (renamed from src/newt/classes/com/sun/javafx/newt/InputEvent.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/Insets.java (renamed from src/newt/classes/com/sun/javafx/newt/Insets.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/KeyEvent.java (renamed from src/newt/classes/com/sun/javafx/newt/KeyEvent.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/KeyListener.java (renamed from src/newt/classes/com/sun/javafx/newt/KeyListener.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/MouseEvent.java (renamed from src/newt/classes/com/sun/javafx/newt/MouseEvent.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/MouseListener.java (renamed from src/newt/classes/com/sun/javafx/newt/MouseListener.java) | 2 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/NewtFactory.java (renamed from src/newt/classes/com/sun/javafx/newt/NewtFactory.java) | 4 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/OffscreenWindow.java (renamed from src/newt/classes/com/sun/javafx/newt/OffscreenWindow.java) | 2 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/PaintEvent.java (renamed from src/newt/classes/com/sun/javafx/newt/PaintEvent.java) | 2 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/PaintListener.java (renamed from src/newt/classes/com/sun/javafx/newt/PaintListener.java) | 2 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/Screen.java (renamed from src/newt/classes/com/sun/javafx/newt/Screen.java) | 14 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/Window.java (renamed from src/newt/classes/com/sun/javafx/newt/Window.java) | 242 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/WindowEvent.java (renamed from src/newt/classes/com/sun/javafx/newt/WindowEvent.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/WindowListener.java (renamed from src/newt/classes/com/sun/javafx/newt/WindowListener.java) | 2 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/awt/AWTCanvas.java (renamed from src/newt/classes/com/sun/javafx/newt/awt/AWTCanvas.java) | 6 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/awt/AWTDisplay.java (renamed from src/newt/classes/com/sun/javafx/newt/awt/AWTDisplay.java) | 50 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/awt/AWTScreen.java (renamed from src/newt/classes/com/sun/javafx/newt/awt/AWTScreen.java) | 4 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/awt/AWTWindow.java (renamed from src/newt/classes/com/sun/javafx/newt/awt/AWTWindow.java) | 56 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/impl/Debug.java (renamed from src/newt/classes/com/sun/javafx/newt/impl/Debug.java) | 4 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/impl/NEWTJNILibLoader.java (renamed from src/newt/classes/com/sun/javafx/newt/impl/NativeLibLoader.java) | 6 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/intel/gdl/Display.java (renamed from src/newt/classes/com/sun/javafx/newt/intel/gdl/Display.java) | 8 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/intel/gdl/Screen.java (renamed from src/newt/classes/com/sun/javafx/newt/intel/gdl/Screen.java) | 6 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/intel/gdl/Window.java (renamed from src/newt/classes/com/sun/javafx/newt/intel/gdl/Window.java) | 4 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/macosx/MacDisplay.java (renamed from src/newt/classes/com/sun/javafx/newt/macosx/MacDisplay.java) | 10 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/macosx/MacScreen.java (renamed from src/newt/classes/com/sun/javafx/newt/macosx/MacScreen.java) | 4 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/macosx/MacWindow.java (renamed from src/newt/classes/com/sun/javafx/newt/macosx/MacWindow.java) | 48 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/opengl/GLWindow.java (renamed from src/newt/classes/com/sun/javafx/newt/opengl/GLWindow.java) | 22 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Display.java (renamed from src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Display.java) | 10 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Screen.java (renamed from src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Screen.java) | 5 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Window.java (renamed from src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Window.java) | 8 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/opengl/kd/KDDisplay.java (renamed from src/newt/classes/com/sun/javafx/newt/opengl/kd/KDDisplay.java) | 10 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/opengl/kd/KDScreen.java (renamed from src/newt/classes/com/sun/javafx/newt/opengl/kd/KDScreen.java) | 4 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/opengl/kd/KDWindow.java (renamed from src/newt/classes/com/sun/javafx/newt/opengl/kd/KDWindow.java) | 8 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/util/EDTUtil.java (renamed from src/newt/classes/com/sun/javafx/newt/util/EventDispatchThread.java) | 98 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/util/MainThread.java (renamed from src/newt/classes/com/sun/javafx/newt/util/MainThread.java) | 18 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/windows/WindowsDisplay.java (renamed from src/newt/classes/com/sun/javafx/newt/windows/WindowsDisplay.java) | 8 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/windows/WindowsScreen.java (renamed from src/newt/classes/com/sun/javafx/newt/windows/WindowsScreen.java) | 5 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/windows/WindowsWindow.java (renamed from src/newt/classes/com/sun/javafx/newt/windows/WindowsWindow.java) | 4 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/x11/X11Display.java (renamed from src/newt/classes/com/sun/javafx/newt/x11/X11Display.java) | 16 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/x11/X11Screen.java (renamed from src/newt/classes/com/sun/javafx/newt/x11/X11Screen.java) | 6 | ||||
-rwxr-xr-x | src/newt/classes/com/jogamp/newt/x11/X11Window.java (renamed from src/newt/classes/com/sun/javafx/newt/x11/X11Window.java) | 5 |
44 files changed, 422 insertions, 358 deletions
diff --git a/src/newt/classes/com/sun/javafx/newt/Display.java b/src/newt/classes/com/jogamp/newt/Display.java index a4b7a4f51..2bc99475c 100755 --- a/src/newt/classes/com/sun/javafx/newt/Display.java +++ b/src/newt/classes/com/jogamp/newt/Display.java @@ -31,11 +31,11 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; import javax.media.nativewindow.*; -import com.sun.javafx.newt.impl.Debug; -import com.sun.javafx.newt.util.EventDispatchThread; +import com.jogamp.newt.impl.Debug; +import com.jogamp.newt.util.EDTUtil; import java.util.*; public abstract class Display { @@ -47,15 +47,15 @@ public abstract class Display { Class displayClass = NewtFactory.getCustomClass(type, "Display"); if(null==displayClass) { if (NativeWindowFactory.TYPE_EGL.equals(type)) { - displayClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDDisplay"); + displayClass = Class.forName("com.jogamp.newt.opengl.kd.KDDisplay"); } else if (NativeWindowFactory.TYPE_WINDOWS.equals(type)) { - displayClass = Class.forName("com.sun.javafx.newt.windows.WindowsDisplay"); + displayClass = Class.forName("com.jogamp.newt.windows.WindowsDisplay"); } else if (NativeWindowFactory.TYPE_MACOSX.equals(type)) { - displayClass = Class.forName("com.sun.javafx.newt.macosx.MacDisplay"); + displayClass = Class.forName("com.jogamp.newt.macosx.MacDisplay"); } else if (NativeWindowFactory.TYPE_X11.equals(type)) { - displayClass = Class.forName("com.sun.javafx.newt.x11.X11Display"); + displayClass = Class.forName("com.jogamp.newt.x11.X11Display"); } else if (NativeWindowFactory.TYPE_AWT.equals(type)) { - displayClass = Class.forName("com.sun.javafx.newt.awt.AWTDisplay"); + displayClass = Class.forName("com.jogamp.newt.awt.AWTDisplay"); } else { throw new RuntimeException("Unknown display type \"" + type + "\""); } @@ -141,11 +141,16 @@ public abstract class Display { display.refCount=1; if(NewtFactory.useEDT()) { - Thread current = Thread.currentThread(); - display.eventDispatchThread = new EventDispatchThread(display, current.getThreadGroup(), current.getName()); - display.eventDispatchThread.start(); final Display f_dpy = display; - display.eventDispatchThread.invokeAndWait(new Runnable() { + Thread current = Thread.currentThread(); + display.edtUtil = new EDTUtil(current.getThreadGroup(), + "Display_"+display.getName()+"-"+current.getName(), + new Runnable() { + public void run() { + f_dpy.pumpMessagesImpl(); + } } ); + display.edt = display.edtUtil.start(); + display.edtUtil.invokeAndWait(new Runnable() { public void run() { f_dpy.createNative(); } @@ -189,7 +194,7 @@ public abstract class Display { } } - public EventDispatchThread getEDT() { return eventDispatchThread; } + public EDTUtil getEDTUtil() { return edtUtil; } public synchronized void destroy() { if(DEBUG) { @@ -201,10 +206,10 @@ public abstract class Display { if(DEBUG) { System.err.println("Display.destroy("+name+") REMOVE: "+this+" "+Thread.currentThread()); } - if(null!=eventDispatchThread) { + if(null!=edtUtil) { final Display f_dpy = this; - final EventDispatchThread f_edt = eventDispatchThread; - eventDispatchThread.invokeAndWait(new Runnable() { + final EDTUtil f_edt = edtUtil; + edtUtil.invokeAndWait(new Runnable() { public void run() { f_dpy.closeNative(); f_edt.stop(); @@ -213,9 +218,9 @@ public abstract class Display { } else { closeNative(); } - if(null!=eventDispatchThread) { - eventDispatchThread.waitUntilStopped(); - eventDispatchThread=null; + if(null!=edtUtil) { + edtUtil.waitUntilStopped(); + edtUtil=null; } aDevice = null; } else { @@ -246,14 +251,13 @@ public abstract class Display { return aDevice; } - public void pumpMessages() { - if(null!=eventDispatchThread) { - dispatchMessages(); - } else { - synchronized(this) { - dispatchMessages(); - } - } + public synchronized void pumpMessages() { + pumpMessagesImpl(); + } + + private void pumpMessagesImpl() { + if(0==refCount) return; + dispatchMessages(); } public String toString() { @@ -268,7 +272,8 @@ public abstract class Display { /** Default impl. nop - Currently only X11 needs a Display lock */ protected void unlockDisplay() { } - protected EventDispatchThread eventDispatchThread = null; + protected EDTUtil edtUtil = null; + protected Thread edt = null; protected String name; protected int refCount; protected AbstractGraphicsDevice aDevice; diff --git a/src/newt/classes/com/sun/javafx/newt/Event.java b/src/newt/classes/com/jogamp/newt/Event.java index 3c045c52b..d42a95735 100644 --- a/src/newt/classes/com/sun/javafx/newt/Event.java +++ b/src/newt/classes/com/jogamp/newt/Event.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public class Event { private boolean isSystemEvent; diff --git a/src/newt/classes/com/sun/javafx/newt/EventListener.java b/src/newt/classes/com/jogamp/newt/EventListener.java index a312752fe..75cb487dd 100644 --- a/src/newt/classes/com/sun/javafx/newt/EventListener.java +++ b/src/newt/classes/com/jogamp/newt/EventListener.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public interface EventListener { diff --git a/src/newt/classes/com/sun/javafx/newt/InputEvent.java b/src/newt/classes/com/jogamp/newt/InputEvent.java index b49c72e75..d4c3f6905 100644 --- a/src/newt/classes/com/sun/javafx/newt/InputEvent.java +++ b/src/newt/classes/com/jogamp/newt/InputEvent.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public abstract class InputEvent extends Event { diff --git a/src/newt/classes/com/sun/javafx/newt/Insets.java b/src/newt/classes/com/jogamp/newt/Insets.java index 7d379cd92..e440892f0 100644 --- a/src/newt/classes/com/sun/javafx/newt/Insets.java +++ b/src/newt/classes/com/jogamp/newt/Insets.java @@ -30,7 +30,7 @@ * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * */ -package com.sun.javafx.newt; +package com.jogamp.newt; /** * Simple class representing insets. diff --git a/src/newt/classes/com/sun/javafx/newt/KeyEvent.java b/src/newt/classes/com/jogamp/newt/KeyEvent.java index c7450da67..bec77160b 100644 --- a/src/newt/classes/com/sun/javafx/newt/KeyEvent.java +++ b/src/newt/classes/com/jogamp/newt/KeyEvent.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public class KeyEvent extends InputEvent { diff --git a/src/newt/classes/com/sun/javafx/newt/KeyListener.java b/src/newt/classes/com/jogamp/newt/KeyListener.java index 6f022c45a..28e2b833b 100644 --- a/src/newt/classes/com/sun/javafx/newt/KeyListener.java +++ b/src/newt/classes/com/jogamp/newt/KeyListener.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public interface KeyListener extends EventListener { diff --git a/src/newt/classes/com/sun/javafx/newt/MouseEvent.java b/src/newt/classes/com/jogamp/newt/MouseEvent.java index ede193e1c..d5412c0cc 100644 --- a/src/newt/classes/com/sun/javafx/newt/MouseEvent.java +++ b/src/newt/classes/com/jogamp/newt/MouseEvent.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public class MouseEvent extends InputEvent { diff --git a/src/newt/classes/com/sun/javafx/newt/MouseListener.java b/src/newt/classes/com/jogamp/newt/MouseListener.java index 3d2031f2a..6d931dd31 100644 --- a/src/newt/classes/com/sun/javafx/newt/MouseListener.java +++ b/src/newt/classes/com/jogamp/newt/MouseListener.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public interface MouseListener extends EventListener { diff --git a/src/newt/classes/com/sun/javafx/newt/NewtFactory.java b/src/newt/classes/com/jogamp/newt/NewtFactory.java index 6e25b19eb..2d5c10c52 100755 --- a/src/newt/classes/com/sun/javafx/newt/NewtFactory.java +++ b/src/newt/classes/com/jogamp/newt/NewtFactory.java @@ -31,12 +31,12 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; import javax.media.nativewindow.*; import java.util.ArrayList; import java.util.Iterator; -import com.sun.nativewindow.impl.jvm.JVMUtil; +import com.jogamp.common.jvm.JVMUtil; public abstract class NewtFactory { // Work-around for initialization order problems on Mac OS X diff --git a/src/newt/classes/com/sun/javafx/newt/OffscreenWindow.java b/src/newt/classes/com/jogamp/newt/OffscreenWindow.java index 11ce8e6c7..c9c56fc61 100644 --- a/src/newt/classes/com/sun/javafx/newt/OffscreenWindow.java +++ b/src/newt/classes/com/jogamp/newt/OffscreenWindow.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; import javax.media.nativewindow.*; diff --git a/src/newt/classes/com/sun/javafx/newt/PaintEvent.java b/src/newt/classes/com/jogamp/newt/PaintEvent.java index b27b969da..51c43725a 100755 --- a/src/newt/classes/com/sun/javafx/newt/PaintEvent.java +++ b/src/newt/classes/com/jogamp/newt/PaintEvent.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; /** * diff --git a/src/newt/classes/com/sun/javafx/newt/PaintListener.java b/src/newt/classes/com/jogamp/newt/PaintListener.java index fab5fa35c..6fbc9c8fc 100755 --- a/src/newt/classes/com/sun/javafx/newt/PaintListener.java +++ b/src/newt/classes/com/jogamp/newt/PaintListener.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; /** * diff --git a/src/newt/classes/com/sun/javafx/newt/Screen.java b/src/newt/classes/com/jogamp/newt/Screen.java index 9edd0b719..b393d30de 100755 --- a/src/newt/classes/com/sun/javafx/newt/Screen.java +++ b/src/newt/classes/com/jogamp/newt/Screen.java @@ -31,9 +31,9 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; -import com.sun.javafx.newt.impl.*; +import com.jogamp.newt.impl.*; import javax.media.nativewindow.*; import java.security.*; @@ -46,15 +46,15 @@ public abstract class Screen { Class screenClass = NewtFactory.getCustomClass(type, "Screen"); if(null==screenClass) { if (NativeWindowFactory.TYPE_EGL.equals(type)) { - screenClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDScreen"); + screenClass = Class.forName("com.jogamp.newt.opengl.kd.KDScreen"); } else if (NativeWindowFactory.TYPE_WINDOWS.equals(type)) { - screenClass = Class.forName("com.sun.javafx.newt.windows.WindowsScreen"); + screenClass = Class.forName("com.jogamp.newt.windows.WindowsScreen"); } else if (NativeWindowFactory.TYPE_MACOSX.equals(type)) { - screenClass = Class.forName("com.sun.javafx.newt.macosx.MacScreen"); + screenClass = Class.forName("com.jogamp.newt.macosx.MacScreen"); } else if (NativeWindowFactory.TYPE_X11.equals(type)) { - screenClass = Class.forName("com.sun.javafx.newt.x11.X11Screen"); + screenClass = Class.forName("com.jogamp.newt.x11.X11Screen"); } else if (NativeWindowFactory.TYPE_AWT.equals(type)) { - screenClass = Class.forName("com.sun.javafx.newt.awt.AWTScreen"); + screenClass = Class.forName("com.jogamp.newt.awt.AWTScreen"); } else { throw new RuntimeException("Unknown window type \"" + type + "\""); } diff --git a/src/newt/classes/com/sun/javafx/newt/Window.java b/src/newt/classes/com/jogamp/newt/Window.java index 58bd251d2..b1f8b3977 100755 --- a/src/newt/classes/com/sun/javafx/newt/Window.java +++ b/src/newt/classes/com/jogamp/newt/Window.java @@ -31,13 +31,13 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; -import com.sun.javafx.newt.impl.Debug; -import com.sun.javafx.newt.util.EventDispatchThread; +import com.jogamp.newt.impl.Debug; +import com.jogamp.newt.util.EDTUtil; +import com.jogamp.common.util.*; import javax.media.nativewindow.*; -import com.sun.nativewindow.impl.NWReflection; import java.util.ArrayList; import java.util.Iterator; @@ -70,15 +70,15 @@ public abstract class Window implements NativeWindow Class windowClass = NewtFactory.getCustomClass(type, "Window"); if(null==windowClass) { if (NativeWindowFactory.TYPE_EGL.equals(type)) { - windowClass = Class.forName("com.sun.javafx.newt.opengl.kd.KDWindow"); + windowClass = Class.forName("com.jogamp.newt.opengl.kd.KDWindow"); } else if (NativeWindowFactory.TYPE_WINDOWS.equals(type)) { - windowClass = Class.forName("com.sun.javafx.newt.windows.WindowsWindow"); + windowClass = Class.forName("com.jogamp.newt.windows.WindowsWindow"); } else if (NativeWindowFactory.TYPE_MACOSX.equals(type)) { - windowClass = Class.forName("com.sun.javafx.newt.macosx.MacWindow"); + windowClass = Class.forName("com.jogamp.newt.macosx.MacWindow"); } else if (NativeWindowFactory.TYPE_X11.equals(type)) { - windowClass = Class.forName("com.sun.javafx.newt.x11.X11Window"); + windowClass = Class.forName("com.jogamp.newt.x11.X11Window"); } else if (NativeWindowFactory.TYPE_AWT.equals(type)) { - windowClass = Class.forName("com.sun.javafx.newt.awt.AWTWindow"); + windowClass = Class.forName("com.jogamp.newt.awt.AWTWindow"); } else { throw new NativeWindowException("Unknown window type \"" + type + "\""); } @@ -98,10 +98,10 @@ public abstract class Window implements NativeWindow window.invalidate(); window.screen = screen; window.setUndecorated(undecorated||0!=parentWindowHandle); - EventDispatchThread edt = screen.getDisplay().getEDT(); - if(null!=edt) { + EDTUtil edtUtil = screen.getDisplay().getEDTUtil(); + if(null!=edtUtil) { final Window f_win = window; - edt.invokeAndWait(new Runnable() { + edtUtil.invokeAndWait(new Runnable() { public void run() { f_win.createNative(parentWindowHandle, caps); } @@ -109,6 +109,9 @@ public abstract class Window implements NativeWindow } else { window.createNative(parentWindowHandle, caps); } + if(DEBUG_WINDOW_EVENT) { + System.out.println("Window.create-1() done ("+Thread.currentThread()+", "+window+")"); + } return window; } catch (Throwable t) { t.printStackTrace(); @@ -127,14 +130,14 @@ public abstract class Window implements NativeWindow if ( argsChecked < cstrArguments.length ) { throw new NativeWindowException("WindowClass "+windowClass+" constructor mismatch at argument #"+argsChecked+"; Constructor: "+getTypeStrList(cstrArgumentTypes)+", arguments: "+getArgsStrList(cstrArguments)); } - Window window = (Window) NWReflection.createInstance( windowClass, cstrArgumentTypes, cstrArguments ) ; + Window window = (Window) ReflectionUtil.createInstance( windowClass, cstrArgumentTypes, cstrArguments ) ; window.invalidate(); window.screen = screen; window.setUndecorated(undecorated); - EventDispatchThread edt = screen.getDisplay().getEDT(); - if(null!=edt) { + EDTUtil edtUtil = screen.getDisplay().getEDTUtil(); + if(null!=edtUtil) { final Window f_win = window; - edt.invokeAndWait(new Runnable() { + edtUtil.invokeAndWait(new Runnable() { public void run() { f_win.createNative(0, caps); } @@ -142,9 +145,11 @@ public abstract class Window implements NativeWindow } else { window.createNative(0, caps); } + if(DEBUG_WINDOW_EVENT) { + System.out.println("Window.create-2() done ("+Thread.currentThread()+", "+window+")"); + } return window; } catch (Throwable t) { - t.printStackTrace(); throw new NativeWindowException(t); } } @@ -212,15 +217,15 @@ public abstract class Window implements NativeWindow public String toString() { StringBuffer sb = new StringBuffer(); - sb.append(getClass().getName()+"[config "+config+ - ", windowHandle "+toHexString(getWindowHandle())+ - ", surfaceHandle "+toHexString(getSurfaceHandle())+ - ", pos "+getX()+"/"+getY()+", size "+getWidth()+"x"+getHeight()+ - ", visible "+isVisible()+ - ", undecorated "+undecorated+ - ", fullscreen "+fullscreen+ - ", "+screen+ - ", wrappedWindow "+getWrappedWindow()); + sb.append(getClass().getName()+"[Config "+config+ + "\n, "+screen+ + "\n, WindowHandle "+toHexString(getWindowHandle())+ + "\n, SurfaceHandle "+toHexString(getSurfaceHandle())+ + "\n, Pos "+getX()+"/"+getY()+", size "+getWidth()+"x"+getHeight()+ + "\n, Visible "+isVisible()+ + "\n, Undecorated "+undecorated+ + "\n, Fullscreen "+fullscreen+ + "\n, WrappedWindow "+getWrappedWindow()); sb.append(", SurfaceUpdatedListeners num "+surfaceUpdatedListeners.size()+" ["); for (Iterator iter = surfaceUpdatedListeners.iterator(); iter.hasNext(); ) { @@ -264,71 +269,48 @@ public abstract class Window implements NativeWindow // // NativeWindow impl // - private Thread owner; - private int recursionCount; - protected Exception lockedStack = null; /** Recursive and blocking lockSurface() implementation */ public synchronized int lockSurface() { // We leave the ToolkitLock lock to the specializtion's discretion, // ie the implicit JAWTWindow in case of AWTWindow - Thread cur = Thread.currentThread(); - if (owner == cur) { - ++recursionCount; - return LOCK_SUCCESS; - } - while (owner != null) { - try { - wait(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - owner = cur; - lockedStack = new Exception("NEWT Surface previously locked by "+Thread.currentThread()); + surfaceLock.lock(); screen.getDisplay().lockDisplay(); return LOCK_SUCCESS; } /** Recursive and unblocking unlockSurface() implementation */ public synchronized void unlockSurface() throws NativeWindowException { - Thread cur = Thread.currentThread(); - if (owner != cur) { - lockedStack.printStackTrace(); - throw new NativeWindowException(cur+": Not owner, owner is "+owner); - } - if (recursionCount > 0) { - --recursionCount; - return; - } - owner = null; - lockedStack = null; - screen.getDisplay().unlockDisplay(); - notifyAll(); + surfaceLock.unlock( new Runnable() { + final Screen f_screen = screen; + public void run() { + screen.getDisplay().unlockDisplay(); + } + } ); // We leave the ToolkitLock unlock to the specializtion's discretion, // ie the implicit JAWTWindow in case of AWTWindow } public synchronized boolean isSurfaceLocked() { - return null!=owner; + return surfaceLock.isLocked(); } public synchronized Thread getSurfaceLockOwner() { - return owner; + return surfaceLock.getOwner(); } public synchronized Exception getLockedStack() { - return lockedStack; + return surfaceLock.getLockedStack(); } - public synchronized void destroy() { + public void destroy() { destroy(false); } /** @param deep If true, the linked Screen and Display will be destroyed as well. */ - public synchronized void destroy(boolean deep) { + public void destroy(boolean deep) { if(DEBUG_WINDOW_EVENT) { - System.out.println("Window.destroy() start (deep "+deep+" - "+Thread.currentThread()); + System.out.println("Window.destroy() start (deep "+deep+" - "+Thread.currentThread()+", "+this+")"); } synchronized(surfaceUpdatedListeners) { surfaceUpdatedListeners = new ArrayList(); @@ -342,26 +324,36 @@ public abstract class Window implements NativeWindow synchronized(keyListeners) { keyListeners = new ArrayList(); } - Screen scr = screen; - Display dpy = (null!=screen) ? screen.getDisplay() : null; - EventDispatchThread edt = (null!=dpy) ? dpy.getEDT() : null; - if(null!=edt) { - final Window f_win = this; - edt.invokeAndWait(new Runnable() { - public void run() { - f_win.closeNative(); + synchronized(this) { + destructionLock.lock(); + try { + Display dpy = null; + if( null != screen && 0 != windowHandle ) { + Screen scr = screen; + dpy = (null!=screen) ? screen.getDisplay() : null; + EDTUtil edtUtil = (null!=dpy) ? dpy.getEDTUtil() : null; + if(null!=edtUtil) { + final Window f_win = this; + edtUtil.invokeAndWait(new Runnable() { + public void run() { + f_win.closeNative(); + } + } ); + } else { + closeNative(); + } } - } ); - } else { - closeNative(); - } - invalidate(); - if(deep) { - if(null!=scr) { - scr.destroy(); - } - if(null!=dpy) { - dpy.destroy(); + invalidate(); + if(deep) { + if(null!=screen) { + screen.destroy(); + } + if(null!=dpy) { + dpy.destroy(); + } + } + } finally { + destructionLock.unlock(); } } if(DEBUG_WINDOW_EVENT) { @@ -487,12 +479,12 @@ public abstract class Window implements NativeWindow protected void windowDestroyNotify() { if(DEBUG_WINDOW_EVENT) { - System.out.println("Window.windowDestroyeNotify start "+Thread.currentThread()); + System.out.println("Window.windowDestroyNotify start "+Thread.currentThread()); } sendWindowEvent(WindowEvent.EVENT_WINDOW_DESTROY_NOTIFY); - if(!autoDrawableMember) { + if(!autoDrawableMember && !destructionLock.isLocked()) { destroy(); } @@ -505,7 +497,9 @@ public abstract class Window implements NativeWindow if(DEBUG_WINDOW_EVENT) { System.out.println("Window.windowDestroyed "+Thread.currentThread()); } - invalidate(); + if(!destructionLock.isLocked()) { + invalidate(); + } } public abstract void setVisible(boolean visible); @@ -554,6 +548,12 @@ public abstract class Window implements NativeWindow } } + public void removeAllSurfaceUpdatedListener() { + synchronized(surfaceUpdatedListeners) { + surfaceUpdatedListeners = new ArrayList(); + } + } + public SurfaceUpdatedListener[] getSurfaceUpdatedListener() { synchronized(surfaceUpdatedListeners) { return (SurfaceUpdatedListener[]) surfaceUpdatedListeners.toArray(); @@ -926,4 +926,78 @@ public abstract class Window implements NativeWindow } return sb.toString(); } + + // + // Reentrance locking toolkit + // + public static class WindowToolkitLock implements ToolkitLock { + private Thread owner; + private int recursionCount; + private Exception lockedStack = null; + + public Exception getLockedStack() { + return lockedStack; + } + + public Thread getOwner() { + return owner; + } + + public boolean isOwner() { + return isOwner(Thread.currentThread()); + } + + public synchronized boolean isOwner(Thread thread) { + return owner == thread ; + } + + public synchronized boolean isLocked() { + return null != owner; + } + + /** Recursive and blocking lockSurface() implementation */ + public synchronized void lock() { + Thread cur = Thread.currentThread(); + if (owner == cur) { + ++recursionCount; + } + while (owner != null) { + try { + wait(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + owner = cur; + lockedStack = new Exception("Previously locked by "+owner); + } + + + /** Recursive and unblocking unlockSurface() implementation */ + public synchronized void unlock() { + unlock(null); + } + + /** Recursive and unblocking unlockSurface() implementation */ + public synchronized void unlock(Runnable releaseAfterUnlockBeforeNotify) { + Thread cur = Thread.currentThread(); + if (owner != cur) { + lockedStack.printStackTrace(); + throw new RuntimeException(cur+": Not owner, owner is "+owner); + } + if (recursionCount > 0) { + --recursionCount; + return; + } + owner = null; + lockedStack = null; + if(null!=releaseAfterUnlockBeforeNotify) { + releaseAfterUnlockBeforeNotify.run(); + } + notifyAll(); + } + } + private WindowToolkitLock destructionLock = new WindowToolkitLock(); + private WindowToolkitLock surfaceLock = new WindowToolkitLock(); } + diff --git a/src/newt/classes/com/sun/javafx/newt/WindowEvent.java b/src/newt/classes/com/jogamp/newt/WindowEvent.java index c5aa65e3d..1189401af 100644 --- a/src/newt/classes/com/sun/javafx/newt/WindowEvent.java +++ b/src/newt/classes/com/jogamp/newt/WindowEvent.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public class WindowEvent extends Event { public static final int EVENT_WINDOW_RESIZED = 100; diff --git a/src/newt/classes/com/sun/javafx/newt/WindowListener.java b/src/newt/classes/com/jogamp/newt/WindowListener.java index 81624fa75..0ec63435c 100644 --- a/src/newt/classes/com/sun/javafx/newt/WindowListener.java +++ b/src/newt/classes/com/jogamp/newt/WindowListener.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt; +package com.jogamp.newt; public interface WindowListener extends EventListener { public void windowResized(WindowEvent e); diff --git a/src/newt/classes/com/sun/javafx/newt/awt/AWTCanvas.java b/src/newt/classes/com/jogamp/newt/awt/AWTCanvas.java index 6b8fc43c7..f6ea9acc3 100644 --- a/src/newt/classes/com/sun/javafx/newt/awt/AWTCanvas.java +++ b/src/newt/classes/com/jogamp/newt/awt/AWTCanvas.java @@ -31,9 +31,9 @@ * */ -package com.sun.javafx.newt.awt; +package com.jogamp.newt.awt; -import com.sun.javafx.newt.Window; +import com.jogamp.newt.Window; import java.awt.Canvas; import java.awt.GraphicsDevice; @@ -42,7 +42,7 @@ import java.awt.GraphicsConfiguration; import javax.media.nativewindow.*; import javax.media.nativewindow.awt.*; -import com.sun.javafx.newt.impl.Debug; +import com.jogamp.newt.impl.Debug; import java.lang.reflect.Method; import java.security.AccessController; import java.security.PrivilegedAction; diff --git a/src/newt/classes/com/sun/javafx/newt/awt/AWTDisplay.java b/src/newt/classes/com/jogamp/newt/awt/AWTDisplay.java index 19f3ed1a8..09ce10017 100644 --- a/src/newt/classes/com/sun/javafx/newt/awt/AWTDisplay.java +++ b/src/newt/classes/com/jogamp/newt/awt/AWTDisplay.java @@ -31,11 +31,11 @@ * */ -package com.sun.javafx.newt.awt; +package com.jogamp.newt.awt; import java.awt.event.*; -import com.sun.javafx.newt.Display; -import com.sun.javafx.newt.Window; +import com.jogamp.newt.Display; +import com.jogamp.newt.Window; import javax.media.nativewindow.*; import javax.media.nativewindow.awt.*; import java.util.*; @@ -66,20 +66,20 @@ public class AWTDisplay extends Display { } if (w != null) { switch (w.getType()) { - case com.sun.javafx.newt.WindowEvent.EVENT_WINDOW_RESIZED: - case com.sun.javafx.newt.WindowEvent.EVENT_WINDOW_MOVED: - case com.sun.javafx.newt.WindowEvent.EVENT_WINDOW_DESTROY_NOTIFY: + case com.jogamp.newt.WindowEvent.EVENT_WINDOW_RESIZED: + case com.jogamp.newt.WindowEvent.EVENT_WINDOW_MOVED: + case com.jogamp.newt.WindowEvent.EVENT_WINDOW_DESTROY_NOTIFY: w.getWindow().sendWindowEvent(w.getType()); break; - case com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_CLICKED: - case com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_ENTERED: - case com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_EXITED: - case com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_PRESSED: - case com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_RELEASED: - case com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_MOVED: - case com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_DRAGGED: - case com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_WHEEL_MOVED: + case com.jogamp.newt.MouseEvent.EVENT_MOUSE_CLICKED: + case com.jogamp.newt.MouseEvent.EVENT_MOUSE_ENTERED: + case com.jogamp.newt.MouseEvent.EVENT_MOUSE_EXITED: + case com.jogamp.newt.MouseEvent.EVENT_MOUSE_PRESSED: + case com.jogamp.newt.MouseEvent.EVENT_MOUSE_RELEASED: + case com.jogamp.newt.MouseEvent.EVENT_MOUSE_MOVED: + case com.jogamp.newt.MouseEvent.EVENT_MOUSE_DRAGGED: + case com.jogamp.newt.MouseEvent.EVENT_MOUSE_WHEEL_MOVED: { MouseEvent e = (MouseEvent) w.getEvent(); int rotation = 0; @@ -92,9 +92,9 @@ public class AWTDisplay extends Display { } break; - case com.sun.javafx.newt.KeyEvent.EVENT_KEY_PRESSED: - case com.sun.javafx.newt.KeyEvent.EVENT_KEY_RELEASED: - case com.sun.javafx.newt.KeyEvent.EVENT_KEY_TYPED: + case com.jogamp.newt.KeyEvent.EVENT_KEY_PRESSED: + case com.jogamp.newt.KeyEvent.EVENT_KEY_RELEASED: + case com.jogamp.newt.KeyEvent.EVENT_KEY_TYPED: { KeyEvent e = (KeyEvent) w.getEvent(); w.getWindow().sendKeyEvent(w.getType(), convertModifiers(e), @@ -148,19 +148,19 @@ public class AWTDisplay extends Display { private static int convertModifiers(InputEvent e) { int newtMods = 0; int mods = e.getModifiers(); - if ((mods & InputEvent.SHIFT_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.SHIFT_MASK; - if ((mods & InputEvent.CTRL_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.CTRL_MASK; - if ((mods & InputEvent.META_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.META_MASK; - if ((mods & InputEvent.ALT_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.ALT_MASK; - if ((mods & InputEvent.ALT_GRAPH_MASK) != 0) newtMods |= com.sun.javafx.newt.InputEvent.ALT_GRAPH_MASK; + if ((mods & InputEvent.SHIFT_MASK) != 0) newtMods |= com.jogamp.newt.InputEvent.SHIFT_MASK; + if ((mods & InputEvent.CTRL_MASK) != 0) newtMods |= com.jogamp.newt.InputEvent.CTRL_MASK; + if ((mods & InputEvent.META_MASK) != 0) newtMods |= com.jogamp.newt.InputEvent.META_MASK; + if ((mods & InputEvent.ALT_MASK) != 0) newtMods |= com.jogamp.newt.InputEvent.ALT_MASK; + if ((mods & InputEvent.ALT_GRAPH_MASK) != 0) newtMods |= com.jogamp.newt.InputEvent.ALT_GRAPH_MASK; return newtMods; } private static int convertButton(MouseEvent e) { switch (e.getButton()) { - case MouseEvent.BUTTON1: return com.sun.javafx.newt.MouseEvent.BUTTON1; - case MouseEvent.BUTTON2: return com.sun.javafx.newt.MouseEvent.BUTTON2; - case MouseEvent.BUTTON3: return com.sun.javafx.newt.MouseEvent.BUTTON3; + case MouseEvent.BUTTON1: return com.jogamp.newt.MouseEvent.BUTTON1; + case MouseEvent.BUTTON2: return com.jogamp.newt.MouseEvent.BUTTON2; + case MouseEvent.BUTTON3: return com.jogamp.newt.MouseEvent.BUTTON3; } return 0; } diff --git a/src/newt/classes/com/sun/javafx/newt/awt/AWTScreen.java b/src/newt/classes/com/jogamp/newt/awt/AWTScreen.java index 9bda5893b..c804bce06 100644 --- a/src/newt/classes/com/sun/javafx/newt/awt/AWTScreen.java +++ b/src/newt/classes/com/jogamp/newt/awt/AWTScreen.java @@ -31,9 +31,9 @@ * */ -package com.sun.javafx.newt.awt; +package com.jogamp.newt.awt; -import com.sun.javafx.newt.*; +import com.jogamp.newt.*; import java.awt.DisplayMode; import javax.media.nativewindow.*; import javax.media.nativewindow.awt.*; diff --git a/src/newt/classes/com/sun/javafx/newt/awt/AWTWindow.java b/src/newt/classes/com/jogamp/newt/awt/AWTWindow.java index 9725cf08b..7beeed44b 100644 --- a/src/newt/classes/com/sun/javafx/newt/awt/AWTWindow.java +++ b/src/newt/classes/com/jogamp/newt/awt/AWTWindow.java @@ -31,7 +31,7 @@ * */ -package com.sun.javafx.newt.awt; +package com.jogamp.newt.awt; import java.awt.BorderLayout; import java.awt.Canvas; @@ -47,7 +47,7 @@ import java.awt.event.*; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.*; -import com.sun.javafx.newt.Window; +import com.jogamp.newt.Window; import java.awt.Insets; import javax.media.nativewindow.*; import javax.media.nativewindow.awt.*; @@ -134,18 +134,30 @@ public class AWTWindow extends Window { } } }); + this.windowHandle = 1; // just a marker .. } protected void closeNative() { - runOnEDT(true, new Runnable() { - public void run() { - if(owningFrame && null!=frame) { + this.windowHandle = 0; // just a marker .. + if(null!=container) { + runOnEDT(true, new Runnable() { + public void run() { + container.setVisible(false); + container.remove(canvas); + container.setEnabled(false); + canvas.setEnabled(false); + } + }); + } + if(owningFrame && null!=frame) { + runOnEDT(true, new Runnable() { + public void run() { frame.dispose(); owningFrame=false; + frame = null; } - frame = null; - } - }); + }); + } } public boolean hasDeviceChanged() { @@ -204,7 +216,7 @@ public class AWTWindow extends Window { }); } - public com.sun.javafx.newt.Insets getInsets() { + public com.jogamp.newt.Insets getInsets() { final int insets[] = new int[] { 0, 0, 0, 0 }; runOnEDT(true, new Runnable() { public void run() { @@ -215,7 +227,7 @@ public class AWTWindow extends Window { insets[3] = contInsets.right; } }); - return new com.sun.javafx.newt. + return new com.jogamp.newt. Insets(insets[0],insets[1],insets[2],insets[3]); } @@ -324,7 +336,7 @@ public class AWTWindow extends Window { x = container.getX(); y = container.getY(); } - display.enqueueEvent(window, com.sun.javafx.newt.WindowEvent.EVENT_WINDOW_MOVED, null); + display.enqueueEvent(window, com.jogamp.newt.WindowEvent.EVENT_WINDOW_MOVED, null); } public void componentShown(ComponentEvent e) { @@ -347,7 +359,7 @@ public class AWTWindow extends Window { public void componentResized(ComponentEvent e) { width = canvas.getWidth(); height = canvas.getHeight(); - display.enqueueEvent(window, com.sun.javafx.newt.WindowEvent.EVENT_WINDOW_RESIZED, null); + display.enqueueEvent(window, com.jogamp.newt.WindowEvent.EVENT_WINDOW_RESIZED, null); } public void componentMoved(ComponentEvent e) { @@ -365,39 +377,39 @@ public class AWTWindow extends Window { } public void mouseEntered(MouseEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_ENTERED, e); + display.enqueueEvent(window, com.jogamp.newt.MouseEvent.EVENT_MOUSE_ENTERED, e); } public void mouseExited(MouseEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_EXITED, e); + display.enqueueEvent(window, com.jogamp.newt.MouseEvent.EVENT_MOUSE_EXITED, e); } public void mousePressed(MouseEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_PRESSED, e); + display.enqueueEvent(window, com.jogamp.newt.MouseEvent.EVENT_MOUSE_PRESSED, e); } public void mouseReleased(MouseEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_RELEASED, e); + display.enqueueEvent(window, com.jogamp.newt.MouseEvent.EVENT_MOUSE_RELEASED, e); } public void mouseMoved(MouseEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_MOVED, e); + display.enqueueEvent(window, com.jogamp.newt.MouseEvent.EVENT_MOUSE_MOVED, e); } public void mouseDragged(MouseEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.MouseEvent.EVENT_MOUSE_DRAGGED, e); + display.enqueueEvent(window, com.jogamp.newt.MouseEvent.EVENT_MOUSE_DRAGGED, e); } public void keyPressed(KeyEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.KeyEvent.EVENT_KEY_PRESSED, e); + display.enqueueEvent(window, com.jogamp.newt.KeyEvent.EVENT_KEY_PRESSED, e); } public void keyReleased(KeyEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.KeyEvent.EVENT_KEY_RELEASED, e); + display.enqueueEvent(window, com.jogamp.newt.KeyEvent.EVENT_KEY_RELEASED, e); } public void keyTyped(KeyEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.KeyEvent.EVENT_KEY_TYPED, e); + display.enqueueEvent(window, com.jogamp.newt.KeyEvent.EVENT_KEY_TYPED, e); } } @@ -415,7 +427,7 @@ public class AWTWindow extends Window { public void windowClosed(WindowEvent e) { } public void windowClosing(WindowEvent e) { - display.enqueueEvent(window, com.sun.javafx.newt.WindowEvent.EVENT_WINDOW_DESTROY_NOTIFY, null); + display.enqueueEvent(window, com.jogamp.newt.WindowEvent.EVENT_WINDOW_DESTROY_NOTIFY, null); } public void windowDeactivated(WindowEvent e) { } diff --git a/src/newt/classes/com/sun/javafx/newt/impl/Debug.java b/src/newt/classes/com/jogamp/newt/impl/Debug.java index 202d9d5b3..62c261d2e 100644 --- a/src/newt/classes/com/sun/javafx/newt/impl/Debug.java +++ b/src/newt/classes/com/jogamp/newt/impl/Debug.java @@ -37,7 +37,7 @@ * and developed by Kenneth Bradley Russell and Christopher John Kline. */ -package com.sun.javafx.newt.impl; +package com.jogamp.newt.impl; import java.security.*; @@ -54,7 +54,7 @@ public class Debug { verbose = isPropertyDefined("newt.verbose", true); debugAll = isPropertyDefined("newt.debug", true); if (verbose) { - Package p = Package.getPackage("com.sun.javafx.newt"); + Package p = Package.getPackage("com.jogamp.newt"); System.err.println("NEWT specification version " + p.getSpecificationVersion()); System.err.println("NEWT implementation version " + p.getImplementationVersion()); System.err.println("NEWT implementation vendor " + p.getImplementationVendor()); diff --git a/src/newt/classes/com/sun/javafx/newt/impl/NativeLibLoader.java b/src/newt/classes/com/jogamp/newt/impl/NEWTJNILibLoader.java index d96c56f6e..a4d234fd5 100644 --- a/src/newt/classes/com/sun/javafx/newt/impl/NativeLibLoader.java +++ b/src/newt/classes/com/jogamp/newt/impl/NEWTJNILibLoader.java @@ -37,7 +37,7 @@ * and developed by Kenneth Bradley Russell and Christopher John Kline. */ -package com.sun.javafx.newt.impl; +package com.jogamp.newt.impl; // FIXME: refactor Java SE dependencies //import java.awt.Toolkit; @@ -46,9 +46,9 @@ import java.lang.reflect.Method; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.HashSet; -import com.sun.nativewindow.impl.NativeLibLoaderBase; +import com.jogamp.common.jvm.JNILibLoaderBase; -public class NativeLibLoader extends NativeLibLoaderBase { +public class NEWTJNILibLoader extends JNILibLoaderBase { public static void loadNEWT() { AccessController.doPrivileged(new PrivilegedAction() { diff --git a/src/newt/classes/com/sun/javafx/newt/intel/gdl/Display.java b/src/newt/classes/com/jogamp/newt/intel/gdl/Display.java index b1f0ac6d2..a3e5501c4 100644 --- a/src/newt/classes/com/sun/javafx/newt/intel/gdl/Display.java +++ b/src/newt/classes/com/jogamp/newt/intel/gdl/Display.java @@ -31,16 +31,16 @@ * */ -package com.sun.javafx.newt.intel.gdl; +package com.jogamp.newt.intel.gdl; -import com.sun.javafx.newt.impl.*; +import com.jogamp.newt.impl.*; import javax.media.nativewindow.*; -public class Display extends com.sun.javafx.newt.Display { +public class Display extends com.jogamp.newt.Display { static int initCounter = 0; static { - NativeLibLoader.loadNEWT(); + NEWTJNILibLoader.loadNEWT(); if (!Screen.initIDs()) { throw new NativeWindowException("Failed to initialize GDL Screen jmethodIDs"); diff --git a/src/newt/classes/com/sun/javafx/newt/intel/gdl/Screen.java b/src/newt/classes/com/jogamp/newt/intel/gdl/Screen.java index 83d9074e2..873d1d009 100644 --- a/src/newt/classes/com/sun/javafx/newt/intel/gdl/Screen.java +++ b/src/newt/classes/com/jogamp/newt/intel/gdl/Screen.java @@ -31,12 +31,12 @@ * */ -package com.sun.javafx.newt.intel.gdl; +package com.jogamp.newt.intel.gdl; -import com.sun.javafx.newt.impl.*; +import com.jogamp.newt.impl.*; import javax.media.nativewindow.*; -public class Screen extends com.sun.javafx.newt.Screen { +public class Screen extends com.jogamp.newt.Screen { static { Display.initSingleton(); diff --git a/src/newt/classes/com/sun/javafx/newt/intel/gdl/Window.java b/src/newt/classes/com/jogamp/newt/intel/gdl/Window.java index 0332f442a..879fc6134 100644 --- a/src/newt/classes/com/sun/javafx/newt/intel/gdl/Window.java +++ b/src/newt/classes/com/jogamp/newt/intel/gdl/Window.java @@ -31,11 +31,11 @@ * */ -package com.sun.javafx.newt.intel.gdl; +package com.jogamp.newt.intel.gdl; import javax.media.nativewindow.*; -public class Window extends com.sun.javafx.newt.Window { +public class Window extends com.jogamp.newt.Window { static { Display.initSingleton(); } diff --git a/src/newt/classes/com/sun/javafx/newt/macosx/MacDisplay.java b/src/newt/classes/com/jogamp/newt/macosx/MacDisplay.java index cd22b2b36..0b5297685 100755 --- a/src/newt/classes/com/sun/javafx/newt/macosx/MacDisplay.java +++ b/src/newt/classes/com/jogamp/newt/macosx/MacDisplay.java @@ -31,17 +31,17 @@ * */ -package com.sun.javafx.newt.macosx; +package com.jogamp.newt.macosx; import javax.media.nativewindow.*; import javax.media.nativewindow.macosx.*; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; -import com.sun.javafx.newt.util.MainThread; +import com.jogamp.newt.*; +import com.jogamp.newt.impl.*; +import com.jogamp.newt.util.MainThread; public class MacDisplay extends Display { static { - NativeLibLoader.loadNEWT(); + NEWTJNILibLoader.loadNEWT(); if(!initNSApplication()) { throw new NativeWindowException("Failed to initialize native Application hook"); diff --git a/src/newt/classes/com/sun/javafx/newt/macosx/MacScreen.java b/src/newt/classes/com/jogamp/newt/macosx/MacScreen.java index 8983b8803..92f8e908c 100755 --- a/src/newt/classes/com/sun/javafx/newt/macosx/MacScreen.java +++ b/src/newt/classes/com/jogamp/newt/macosx/MacScreen.java @@ -31,9 +31,9 @@ * */ -package com.sun.javafx.newt.macosx; +package com.jogamp.newt.macosx; -import com.sun.javafx.newt.*; +import com.jogamp.newt.*; import javax.media.nativewindow.*; public class MacScreen extends Screen { diff --git a/src/newt/classes/com/sun/javafx/newt/macosx/MacWindow.java b/src/newt/classes/com/jogamp/newt/macosx/MacWindow.java index 9f501ac9b..52d6fb0c7 100755 --- a/src/newt/classes/com/sun/javafx/newt/macosx/MacWindow.java +++ b/src/newt/classes/com/jogamp/newt/macosx/MacWindow.java @@ -31,13 +31,13 @@ * */ -package com.sun.javafx.newt.macosx; +package com.jogamp.newt.macosx; import javax.media.nativewindow.*; -import com.sun.javafx.newt.util.MainThread; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; +import com.jogamp.newt.util.MainThread; +import com.jogamp.newt.*; +import com.jogamp.newt.impl.*; public class MacWindow extends Window { @@ -212,42 +212,16 @@ public class MacWindow extends Window { } } - private ToolkitLock nsViewLock = new ToolkitLock() { - private Thread owner; - private int recursionCount; - - public synchronized void lock() { - Thread cur = Thread.currentThread(); - if (owner == cur) { - ++recursionCount; - return; - } - while (owner != null) { - try { - wait(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - owner = cur; - } - - public synchronized void unlock() { - if (owner != Thread.currentThread()) { - throw new RuntimeException("Not owner"); - } - if (recursionCount > 0) { - --recursionCount; - return; - } - owner = null; - notifyAll(); - } - }; + private WindowToolkitLock nsViewLock = new WindowToolkitLock(); public synchronized int lockSurface() throws NativeWindowException { nsViewLock.lock(); - return super.lockSurface(); + try { + return super.lockSurface(); + } catch (RuntimeException re) { + nsViewLock.unlock(); + throw re; + } } public void unlockSurface() { diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/GLWindow.java b/src/newt/classes/com/jogamp/newt/opengl/GLWindow.java index e809d2cdc..fec70c99c 100644 --- a/src/newt/classes/com/sun/javafx/newt/opengl/GLWindow.java +++ b/src/newt/classes/com/jogamp/newt/opengl/GLWindow.java @@ -31,12 +31,12 @@ * */ -package com.sun.javafx.newt.opengl; +package com.jogamp.newt.opengl; -import com.sun.javafx.newt.*; +import com.jogamp.newt.*; import javax.media.nativewindow.*; import javax.media.opengl.*; -import com.sun.opengl.impl.GLDrawableHelper; +import com.jogamp.opengl.impl.GLDrawableHelper; import java.util.*; /** @@ -58,13 +58,14 @@ public class GLWindow extends Window implements GLAutoDrawable { private Window window; private boolean runPumpMessages; - /** Constructor. Do not call this directly -- use {@link - create()} instead. */ + /** + * Constructor. Do not call this directly -- use {@link #create()} instead. + */ protected GLWindow(Window window, boolean ownerOfWinScrDpy) { this.ownerOfWinScrDpy = ownerOfWinScrDpy; this.window = window; this.window.setAutoDrawableClient(true); - this.runPumpMessages = ( null == getScreen().getDisplay().getEDT() ) ; + this.runPumpMessages = ( null == getScreen().getDisplay().getEDTUtil() ) ; window.addWindowListener(new WindowListener() { public void windowResized(WindowEvent e) { sendReshape = true; @@ -145,13 +146,13 @@ public class GLWindow extends Window implements GLAutoDrawable { * Best performance has been achieved with one GLWindow per thread.<br> * * Enabling local pump messages while using the EDT, - * {@link com.sun.javafx.newt.NewtFactory#setUseEDT(boolean)}, + * {@link com.jogamp.newt.NewtFactory#setUseEDT(boolean)}, * will result in an exception. * * @deprecated EXPERIMENTAL, semantic is about to be removed after further verification. */ public void setRunPumpMessages(boolean onoff) { - if( onoff && null!=getScreen().getDisplay().getEDT() ) { + if( onoff && null!=getScreen().getDisplay().getEDTUtil() ) { throw new GLException("GLWindow.setRunPumpMessages(true) - Can't do with EDT on"); } runPumpMessages = onoff; @@ -334,6 +335,9 @@ public class GLWindow extends Window implements GLAutoDrawable { public void removeSurfaceUpdatedListener(SurfaceUpdatedListener l) { window.removeSurfaceUpdatedListener(l); } + public void removeAllSurfaceUpdatedListener() { + window.removeAllSurfaceUpdatedListener(); + } public SurfaceUpdatedListener[] getSurfaceUpdatedListener() { return window.getSurfaceUpdatedListener(); } @@ -378,7 +382,7 @@ public class GLWindow extends Window implements GLAutoDrawable { } public String toString() { - return "NEWT-GLWindow[ \n\tDrawable: "+drawable+", \n\tWindow: "+window+", \n\tHelper: "+helper+", \n\tFactory: "+factory+"]"; + return "NEWT-GLWindow[ \n\tHelper: "+helper+", \n\tDrawable: "+drawable + /** ", \n\tWindow: "+window+", \n\tFactory: "+factory+ */ "]"; } //---------------------------------------------------------------------- diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Display.java b/src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Display.java index debe9e9b9..999a407ec 100644 --- a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Display.java +++ b/src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Display.java @@ -31,17 +31,17 @@ * */ -package com.sun.javafx.newt.opengl.broadcom.egl; +package com.jogamp.newt.opengl.broadcom.egl; -import com.sun.javafx.newt.impl.*; -import com.sun.opengl.impl.egl.*; +import com.jogamp.newt.impl.*; +import com.jogamp.opengl.impl.egl.*; import javax.media.nativewindow.*; import javax.media.nativewindow.egl.*; -public class Display extends com.sun.javafx.newt.Display { +public class Display extends com.jogamp.newt.Display { static { - NativeLibLoader.loadNEWT(); + NEWTJNILibLoader.loadNEWT(); if (!Window.initIDs()) { throw new NativeWindowException("Failed to initialize BCEGL Window jmethodIDs"); diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Screen.java b/src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Screen.java index 28f7211c3..b4f07599b 100755 --- a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Screen.java +++ b/src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Screen.java @@ -31,12 +31,11 @@ * */ -package com.sun.javafx.newt.opengl.broadcom.egl; +package com.jogamp.newt.opengl.broadcom.egl; -import com.sun.javafx.newt.impl.*; import javax.media.nativewindow.*; -public class Screen extends com.sun.javafx.newt.Screen { +public class Screen extends com.jogamp.newt.Screen { static { Display.initSingleton(); diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Window.java b/src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Window.java index 11672dde3..185dc97b9 100755 --- a/src/newt/classes/com/sun/javafx/newt/opengl/broadcom/egl/Window.java +++ b/src/newt/classes/com/jogamp/newt/opengl/broadcom/egl/Window.java @@ -31,16 +31,14 @@ * */ -package com.sun.javafx.newt.opengl.broadcom.egl; +package com.jogamp.newt.opengl.broadcom.egl; -import com.sun.javafx.newt.impl.*; -import com.sun.opengl.impl.egl.*; +import com.jogamp.opengl.impl.egl.*; import javax.media.nativewindow.*; import javax.media.opengl.GLCapabilities; -import javax.media.opengl.GLProfile; import javax.media.nativewindow.NativeWindowException; -public class Window extends com.sun.javafx.newt.Window { +public class Window extends com.jogamp.newt.Window { static { Display.initSingleton(); } diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/kd/KDDisplay.java b/src/newt/classes/com/jogamp/newt/opengl/kd/KDDisplay.java index 5aeae75ea..6a28f992b 100755 --- a/src/newt/classes/com/sun/javafx/newt/opengl/kd/KDDisplay.java +++ b/src/newt/classes/com/jogamp/newt/opengl/kd/KDDisplay.java @@ -31,18 +31,18 @@ * */ -package com.sun.javafx.newt.opengl.kd; +package com.jogamp.newt.opengl.kd; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; -import com.sun.opengl.impl.egl.*; +import com.jogamp.newt.*; +import com.jogamp.newt.impl.*; +import com.jogamp.opengl.impl.egl.*; import javax.media.nativewindow.*; import javax.media.nativewindow.egl.*; public class KDDisplay extends Display { static { - NativeLibLoader.loadNEWT(); + NEWTJNILibLoader.loadNEWT(); if (!KDWindow.initIDs()) { throw new NativeWindowException("Failed to initialize KDWindow jmethodIDs"); diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/kd/KDScreen.java b/src/newt/classes/com/jogamp/newt/opengl/kd/KDScreen.java index 1767c1240..cd53c8152 100755 --- a/src/newt/classes/com/sun/javafx/newt/opengl/kd/KDScreen.java +++ b/src/newt/classes/com/jogamp/newt/opengl/kd/KDScreen.java @@ -31,9 +31,9 @@ * */ -package com.sun.javafx.newt.opengl.kd; +package com.jogamp.newt.opengl.kd; -import com.sun.javafx.newt.*; +import com.jogamp.newt.*; import javax.media.nativewindow.*; public class KDScreen extends Screen { diff --git a/src/newt/classes/com/sun/javafx/newt/opengl/kd/KDWindow.java b/src/newt/classes/com/jogamp/newt/opengl/kd/KDWindow.java index 605e9c064..555f54599 100755 --- a/src/newt/classes/com/sun/javafx/newt/opengl/kd/KDWindow.java +++ b/src/newt/classes/com/jogamp/newt/opengl/kd/KDWindow.java @@ -31,11 +31,11 @@ * */ -package com.sun.javafx.newt.opengl.kd; +package com.jogamp.newt.opengl.kd; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; -import com.sun.opengl.impl.egl.*; +import com.jogamp.newt.*; +import com.jogamp.newt.impl.*; +import com.jogamp.opengl.impl.egl.*; import javax.media.nativewindow.*; import javax.media.opengl.GLCapabilities; import javax.media.opengl.GLProfile; diff --git a/src/newt/classes/com/sun/javafx/newt/util/EventDispatchThread.java b/src/newt/classes/com/jogamp/newt/util/EDTUtil.java index a98ebab93..f852bcf5c 100644 --- a/src/newt/classes/com/sun/javafx/newt/util/EventDispatchThread.java +++ b/src/newt/classes/com/jogamp/newt/util/EDTUtil.java @@ -34,36 +34,36 @@ * facility. */ -package com.sun.javafx.newt.util; +package com.jogamp.newt.util; -import com.sun.javafx.newt.Display; -import com.sun.javafx.newt.impl.Debug; +import com.jogamp.newt.Display; +import com.jogamp.newt.impl.Debug; import java.util.*; -public class EventDispatchThread { +public class EDTUtil { public static final boolean DEBUG = Debug.debug("EDT"); private ThreadGroup threadGroup; private volatile boolean shouldStop = false; - private TaskWorker taskWorker = null; - private Object taskWorkerLock = new Object(); + private EventDispatchThread edt = null; + private Object edtLock = new Object(); private ArrayList tasks = new ArrayList(); // one shot tasks - private Display display = null; private String name; - private long edtPollGranularity = 10; + private Runnable pumpMessages; + private long edtPollGranularity = 10; // 10ms, 1/100s - public EventDispatchThread(Display display, ThreadGroup tg, String name) { - this.display = display; + public EDTUtil(ThreadGroup tg, String name, Runnable pumpMessages) { this.threadGroup = tg; - this.name=new String("EDT-Display_"+display.getName()+"-"+name); + this.name=new String("EDT-"+name); + this.pumpMessages=pumpMessages; } public String getName() { return name; } public ThreadGroup getThreadGroup() { return threadGroup; } - public void start() { - start(false); + public Thread start() { + return start(false); } /** @@ -75,52 +75,56 @@ public class EventDispatchThread { * Usefull in combination with externalStimuli=true, * so an external stimuli can call it. */ - public Runnable start(boolean externalStimuli) { - synchronized(taskWorkerLock) { - if(null==taskWorker) { - taskWorker = new TaskWorker(threadGroup, name); + public Thread start(boolean externalStimuli) { + synchronized(edtLock) { + if(null==edt) { + edt = new EventDispatchThread(threadGroup, name); } - if(!taskWorker.isRunning()) { + if(!edt.isRunning()) { shouldStop = false; - taskWorker.start(externalStimuli); + edt.start(externalStimuli); } - taskWorkerLock.notifyAll(); + edtLock.notifyAll(); } - return taskWorker; + return edt; } public void stop() { - synchronized(taskWorkerLock) { - if(null!=taskWorker && taskWorker.isRunning()) { + synchronized(edtLock) { + if(null!=edt && edt.isRunning()) { shouldStop = true; } - taskWorkerLock.notifyAll(); + edtLock.notifyAll(); if(DEBUG) { System.out.println(Thread.currentThread()+": EDT signal STOP"); } } } + public Thread getEDT() { + return edt; + } + public boolean isThreadEDT(Thread thread) { - return null!=taskWorker && taskWorker == thread; + return null!=edt && edt == thread; } public boolean isCurrentThreadEDT() { - return null!=taskWorker && taskWorker == Thread.currentThread(); + return null!=edt && edt == Thread.currentThread(); } public boolean isRunning() { - return null!=taskWorker && taskWorker.isRunning() ; + return null!=edt && edt.isRunning() ; } public void invokeLater(Runnable task) { if(task == null) { return; } - synchronized(taskWorkerLock) { - if(null!=taskWorker && taskWorker.isRunning() && taskWorker != Thread.currentThread() ) { + synchronized(edtLock) { + if(null!=edt && edt.isRunning() && edt != Thread.currentThread() ) { tasks.add(task); - taskWorkerLock.notifyAll(); + edtLock.notifyAll(); } else { // if !running or isEDTThread, do it right away task.run(); @@ -137,10 +141,10 @@ public class EventDispatchThread { } public void waitOnWorker() { - synchronized(taskWorkerLock) { - if(null!=taskWorker && taskWorker.isRunning() && tasks.size()>0 && taskWorker != Thread.currentThread() ) { + synchronized(edtLock) { + if(null!=edt && edt.isRunning() && tasks.size()>0 && edt != Thread.currentThread() ) { try { - taskWorkerLock.wait(); + edtLock.wait(); } catch (InterruptedException e) { e.printStackTrace(); } @@ -149,10 +153,10 @@ public class EventDispatchThread { } public void waitUntilStopped() { - synchronized(taskWorkerLock) { - while(null!=taskWorker && taskWorker.isRunning() && taskWorker != Thread.currentThread() ) { + synchronized(edtLock) { + while(null!=edt && edt.isRunning() && edt != Thread.currentThread() ) { try { - taskWorkerLock.wait(); + edtLock.wait(); } catch (InterruptedException e) { e.printStackTrace(); } @@ -160,11 +164,11 @@ public class EventDispatchThread { } } - class TaskWorker extends Thread { + class EventDispatchThread extends Thread { boolean isRunning = false; boolean externalStimuli = false; - public TaskWorker(ThreadGroup tg, String name) { + public EventDispatchThread(ThreadGroup tg, String name) { super(tg, name); } @@ -183,7 +187,7 @@ public class EventDispatchThread { } /** - * Utilizing taskWorkerLock only for local resources and task execution, + * Utilizing edtLock only for local resources and task execution, * not for event dispatching. */ public void run() { @@ -194,26 +198,26 @@ public class EventDispatchThread { try { // wait for something todo while(!shouldStop && tasks.size()==0) { - synchronized(taskWorkerLock) { + synchronized(edtLock) { if(!shouldStop && tasks.size()==0) { try { - taskWorkerLock.wait(edtPollGranularity); + edtLock.wait(edtPollGranularity); } catch (InterruptedException e) { e.printStackTrace(); } } } - display.pumpMessages(); // event dispatch + pumpMessages.run(); // event dispatch } if(!shouldStop && tasks.size()>0) { - synchronized(taskWorkerLock) { + synchronized(edtLock) { if(!shouldStop && tasks.size()>0) { Runnable task = (Runnable) tasks.remove(0); task.run(); - taskWorkerLock.notifyAll(); + edtLock.notifyAll(); } } - display.pumpMessages(); // event dispatch + pumpMessages.run(); // event dispatch } } catch (Throwable t) { // handle errors .. @@ -227,8 +231,8 @@ public class EventDispatchThread { isRunning = !shouldStop; } if(!isRunning) { - synchronized(taskWorkerLock) { - taskWorkerLock.notifyAll(); + synchronized(edtLock) { + edtLock.notifyAll(); } } if(DEBUG) { diff --git a/src/newt/classes/com/sun/javafx/newt/util/MainThread.java b/src/newt/classes/com/jogamp/newt/util/MainThread.java index abfe3f0c7..daa09edce 100644 --- a/src/newt/classes/com/sun/javafx/newt/util/MainThread.java +++ b/src/newt/classes/com/jogamp/newt/util/MainThread.java @@ -34,7 +34,7 @@ * facility. */ -package com.sun.javafx.newt.util; +package com.jogamp.newt.util; import java.util.*; import java.lang.reflect.Method; @@ -43,10 +43,10 @@ import java.security.*; import javax.media.nativewindow.*; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; -import com.sun.javafx.newt.macosx.MacDisplay; -import com.sun.nativewindow.impl.NWReflection; +import com.jogamp.common.util.*; +import com.jogamp.newt.*; +import com.jogamp.newt.impl.*; +import com.jogamp.newt.macosx.MacDisplay; /** * NEWT Utility class MainThread<P> @@ -64,7 +64,7 @@ import com.sun.nativewindow.impl.NWReflection; * * To support your NEWT Window platform, * you have to pass your <i>main thread</i> actions to {@link #invoke invoke(..)}, - * have a look at the {@link com.sun.javafx.newt.macosx.MacWindow MacWindow} implementation.<br> + * have a look at the {@link com.jogamp.newt.macosx.MacWindow MacWindow} implementation.<br> * <i>TODO</i>: Some hardcoded dependencies exist in this implementation, * where you have to patch this code or factor it out. <P> * @@ -77,7 +77,7 @@ import com.sun.nativewindow.impl.NWReflection; * * Test case on Mac OS X (or any other platform): <PRE> - java -XstartOnFirstThread com.sun.javafx.newt.util.MainThread demos.es1.RedSquare -GL2 -GL2 -GL2 -GL2 + java -XstartOnFirstThread com.jogamp.newt.util.MainThread demos.es1.RedSquare -GL2 -GL2 -GL2 -GL2 </PRE> * Which starts 4 threads, each with a window and OpenGL rendering.<br> */ @@ -116,7 +116,7 @@ public class MainThread { // start user app .. try { - Class mainClass = NWReflection.getClass(mainClassName, true); + Class mainClass = ReflectionUtil.getClass(mainClassName, true); if(null==mainClass) { throw new RuntimeException(new ClassNotFoundException("MainThread couldn't find main class "+mainClassName)); } @@ -159,7 +159,7 @@ public class MainThread { System.arraycopy(args, 1, mainClassArgs, 0, args.length-1); } - NativeLibLoader.loadNEWT(); + NEWTJNILibLoader.loadNEWT(); shouldStop = false; tasks = new ArrayList(); diff --git a/src/newt/classes/com/sun/javafx/newt/windows/WindowsDisplay.java b/src/newt/classes/com/jogamp/newt/windows/WindowsDisplay.java index 80485ed67..281022901 100755 --- a/src/newt/classes/com/sun/javafx/newt/windows/WindowsDisplay.java +++ b/src/newt/classes/com/jogamp/newt/windows/WindowsDisplay.java @@ -31,12 +31,12 @@ * */ -package com.sun.javafx.newt.windows; +package com.jogamp.newt.windows; import javax.media.nativewindow.*; import javax.media.nativewindow.windows.*; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; +import com.jogamp.newt.*; +import com.jogamp.newt.impl.*; public class WindowsDisplay extends Display { @@ -45,7 +45,7 @@ public class WindowsDisplay extends Display { private static long hInstance; static { - NativeLibLoader.loadNEWT(); + NEWTJNILibLoader.loadNEWT(); if (!WindowsWindow.initIDs()) { throw new NativeWindowException("Failed to initialize WindowsWindow jmethodIDs"); diff --git a/src/newt/classes/com/sun/javafx/newt/windows/WindowsScreen.java b/src/newt/classes/com/jogamp/newt/windows/WindowsScreen.java index 87ae1b49d..aea3cd439 100755 --- a/src/newt/classes/com/sun/javafx/newt/windows/WindowsScreen.java +++ b/src/newt/classes/com/jogamp/newt/windows/WindowsScreen.java @@ -31,10 +31,9 @@ * */ -package com.sun.javafx.newt.windows; +package com.jogamp.newt.windows; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; +import com.jogamp.newt.*; import javax.media.nativewindow.*; public class WindowsScreen extends Screen { diff --git a/src/newt/classes/com/sun/javafx/newt/windows/WindowsWindow.java b/src/newt/classes/com/jogamp/newt/windows/WindowsWindow.java index 1b5bf80cf..4a468ae86 100755 --- a/src/newt/classes/com/sun/javafx/newt/windows/WindowsWindow.java +++ b/src/newt/classes/com/jogamp/newt/windows/WindowsWindow.java @@ -31,10 +31,10 @@ * */ -package com.sun.javafx.newt.windows; +package com.jogamp.newt.windows; import javax.media.nativewindow.*; -import com.sun.javafx.newt.*; +import com.jogamp.newt.*; public class WindowsWindow extends Window { diff --git a/src/newt/classes/com/sun/javafx/newt/x11/X11Display.java b/src/newt/classes/com/jogamp/newt/x11/X11Display.java index ae23c4423..c8faefbf1 100755 --- a/src/newt/classes/com/sun/javafx/newt/x11/X11Display.java +++ b/src/newt/classes/com/jogamp/newt/x11/X11Display.java @@ -31,17 +31,17 @@ * */ -package com.sun.javafx.newt.x11; +package com.jogamp.newt.x11; import javax.media.nativewindow.*; import javax.media.nativewindow.x11.*; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; -import com.sun.nativewindow.impl.x11.X11Util; +import com.jogamp.newt.*; +import com.jogamp.newt.impl.*; +import com.jogamp.nativewindow.impl.x11.X11Util; public class X11Display extends Display { static { - NativeLibLoader.loadNEWT(); + NEWTJNILibLoader.loadNEWT(); if (!initIDs()) { throw new NativeWindowException("Failed to initialize X11Display jmethodIDs"); @@ -61,7 +61,7 @@ public class X11Display extends Display { } protected void createNative() { - long handle= X11Util.getThreadLocalDisplay(name); + long handle= X11Util.createThreadLocalDisplay(name); if (handle == 0 ) { throw new RuntimeException("Error creating display: "+name); } @@ -75,9 +75,7 @@ public class X11Display extends Display { } protected void closeNative() { - if(0==X11Util.closeThreadLocalDisplay(name)) { - throw new NativeWindowException(this+" was not mapped"); - } + X11Util.closeThreadLocalDisplay(name); } protected void dispatchMessages() { diff --git a/src/newt/classes/com/sun/javafx/newt/x11/X11Screen.java b/src/newt/classes/com/jogamp/newt/x11/X11Screen.java index cee576e2c..e053d99c0 100755 --- a/src/newt/classes/com/sun/javafx/newt/x11/X11Screen.java +++ b/src/newt/classes/com/jogamp/newt/x11/X11Screen.java @@ -31,11 +31,9 @@ * */ -package com.sun.javafx.newt.x11; +package com.jogamp.newt.x11; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; -import javax.media.nativewindow.*; +import com.jogamp.newt.*; import javax.media.nativewindow.x11.*; public class X11Screen extends Screen { diff --git a/src/newt/classes/com/sun/javafx/newt/x11/X11Window.java b/src/newt/classes/com/jogamp/newt/x11/X11Window.java index f46ae9564..cc3aa58a2 100755 --- a/src/newt/classes/com/sun/javafx/newt/x11/X11Window.java +++ b/src/newt/classes/com/jogamp/newt/x11/X11Window.java @@ -31,10 +31,9 @@ * */ -package com.sun.javafx.newt.x11; +package com.jogamp.newt.x11; -import com.sun.javafx.newt.*; -import com.sun.javafx.newt.impl.*; +import com.jogamp.newt.*; import javax.media.nativewindow.*; import javax.media.nativewindow.x11.*; |