From 7eaeacc4148f0ec6146e5cc8db010a7414a7b419 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sun, 16 Oct 2011 20:40:02 +0200 Subject: NEWT/OSX: Adding 'fake' lockSurface based on [view canDraw]. Can't use lockFocus(), deadlocks since we render separate to focus mgmt. --- .../jogamp/newt/driver/macosx/MacWindow.java | 25 ++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'src/newt/classes') diff --git a/src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java b/src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java index 8886cf630..695a03e40 100644 --- a/src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java +++ b/src/newt/classes/jogamp/newt/driver/macosx/MacWindow.java @@ -34,17 +34,18 @@ package jogamp.newt.driver.macosx; -import javax.media.nativewindow.*; - -import com.jogamp.newt.event.*; - -import jogamp.newt.*; - +import javax.media.nativewindow.GraphicsConfigurationFactory; +import javax.media.nativewindow.NativeWindow; +import javax.media.nativewindow.NativeWindowException; import javax.media.nativewindow.util.Insets; import javax.media.nativewindow.util.InsetsImmutable; import javax.media.nativewindow.util.Point; import javax.media.nativewindow.util.PointImmutable; +import jogamp.newt.WindowImpl; + +import com.jogamp.newt.event.KeyEvent; + public class MacWindow extends WindowImpl { // Window styles @@ -171,6 +172,16 @@ public class MacWindow extends WindowImpl { } } + @Override + protected int lockSurfaceImpl() { + return lockSurface0(getWindowHandle()) ? LOCK_SUCCESS : LOCK_SURFACE_NOT_READY; + } + + @Override + protected void unlockSurfaceImpl() { + unlockSurface0(getWindowHandle()); + } + @Override public final long getSurfaceHandle() { return surfaceHandle; @@ -443,6 +454,8 @@ public class MacWindow extends WindowImpl { boolean opaque, boolean fullscreen, int windowStyle, int backingStoreType, int screen_idx, long view); + private native boolean lockSurface0(long window); + private native void unlockSurface0(long window); private native void requestFocus0(long window, boolean force); /** in case of a child window, it actually only issues orderBack(..) */ private native void orderOut0(long window); -- cgit v1.2.3