Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Unstable

Changes

Summary

  1. Fix Bug 691 (part-2): Extra '[subLayer release]' is wrong, since (details)
  2. Fix Bug 675: NPE w/ Beans.setDesignTime(true) ; Fix GLCanvas.destroy(): (details)
  3. Refine unit test for Bug 691: Add onscreen/offscreen tests [if (details)
  4. Fix Bug 691 (part-3): NSOpenGLLayer::openGLContextForPixelFormat(..) on (details)
  5. X11/WGL: Better Exception Message for failed ARB context creation if (details)
Commit 2aeff053c55dadafb94bfbba661250e0c96f1fe5 by Sven Gothel
Fix Bug 691 (part-2): Extra '[subLayer release]' is wrong, since 'CGL.releaseNSOpenGLLayer' triggers release - but very late w/ AWT usage.

OSXUtil_RemoveCASublayer0's added '[subLayer release]' in commit f6e6fab2a7ddfb5c9b614cb072c27ff697629161
is wrong, since 'CGL.releaseNSOpenGLLayer' actually does trigger it's release.
This was not seen w/ AWT tests, since it happens very later.
A NewtCanvasAWT test disclosed this error -> removed that extra release call.

The culprit for the late release w/ AWT usage was CGL.createNSOpenGLLayer's call in the current thread.
Moving it to the Main-Thread fixed the problem.

All CALayer lifecycle calls are issued on the Main-Thread now.

NSOpenGLLayer's CVDisplayLink OpenGL fitting via 'CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext'
is now performed at it's context creation in 'NSOpenGLLayer::openGLContextForPixelFormat'.

The 'extra' release of the NSOpenGLLayer's NSOpenGLContext as introduced in commit f6e6fab2a7ddfb5c9b614cb072c27ff697629161
is still valid.
The file was addedmake/config/jogl/cgl-macosx-CustomJavaCode.java (diff)
The file was modifiedsrc/nativewindow/native/macosx/OSXmisc.m (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestOffscreenLayer01GLCanvasAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/UITestCase.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestOffscreenLayer02NewtCanvasAWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
The file was modifiedsrc/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/awt/TestGLCanvasAddRemove02NewtCanvasAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/awt/TestGLCanvasAddRemove01SwingAWT.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
The file was modifiedmake/config/jogl/cgl-macosx.cfg (diff)
Commit 3567e7e8519f82720f98b0b2ac30456cbfeddc0d by Sven Gothel
Fix Bug 675: NPE w/ Beans.setDesignTime(true) ; Fix GLCanvas.destroy(): Don't issue removeNotify(), delete drawable and context only!

- Fix Bug 675: NPE w/ Beans.setDesignTime(true)
  - Carefully consider Beans.isDesginTime() fixes NPE - added unit test

- Fix GLCanvas.destroy(): Don't issue removeNotify(), delete drawable and context only!
  - AWT removeNotify() shall only be issued via AWT itself, not manually
  - Add 'destroyImpl(boolean destroyJAWTWindowAndAWTDevice)' to be called by
    - GLCanvas.destroy(): destroyImpl( false );
    - GLCanvas.removeNotify(): destroyImpl( true );
  - Ensures JAWTWindow and AWTDevice are created and destroyed via the AWT callbacks
    addNotify() and removeNotify() only.
The file was modifiedmake/scripts/tests.sh (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/awt/TestBug675BeansInDesignTimeAWT.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
Commit d178475967536f4d1e58fd6e0be49b03fe4cd4b7 by Sven Gothel
Refine unit test for Bug 691: Add onscreen/offscreen tests [if available] ; Move tests to 'acore'.
The file was removedsrc/test/com/jogamp/opengl/test/junit/jogl/awt/TestGLCanvasAddRemove02NewtCanvasAWT.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove02GLWindowNewtCanvasAWT.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove01GLCanvasSwingAWT.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was removedsrc/test/com/jogamp/opengl/test/junit/jogl/awt/TestGLCanvasAddRemove01SwingAWT.java (diff)
Commit a94ff9252df66c303f48489c3e8926104941465c by Sven Gothel
Fix Bug 691 (part-3): NSOpenGLLayer::openGLContextForPixelFormat(..) on main-thread deadlock'ed due to locked shared context

NSOpenGLLayer::openGLContextForPixelFormat(..) is performed on main-thread at 1st NSOpenGLLayer display method.
This happened irregulary, i.e. sometimes (T0) right after NSOpenGLLayer creation and attachSurfaceLayer()/AddCASublayer(..),
sometimes later (T1).

NSOpenGLLayer::openGLContextForPixelFormat(..) uses the passed shared user context.
The shared user context is locked at NSOpenGLLayer's creation (T0) and if performed at this early time
the call deadlocks due to pthread_mutex wait for the shared user context.

This fix performs NSOpenGLLayer creation and layer attachment while the shared user context
is kept unlocked and enforces NSOpenGLLayer display and hence NSOpenGLLayer::openGLContextForPixelFormat(..).

Added CGL.setNSOpenGLLayerEnabled(..) to enable/disable NSOpenGLLayer - currently not used.

- Passed AddRemove tests for GLCanvas/Swing and GLWindow/NewtCanvasAWT w/ 100 loops on Java6 and Java7 on OSX.
- Passed Instruments Leaks test w/ 10 loops on Java6 and Java7
The file was modifiedsrc/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove01GLCanvasSwingAWT.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove02GLWindowNewtCanvasAWT.java (diff)
The file was modifiedmake/config/jogl/cgl-macosx.cfg (diff)
The file was modifiedmake/stub_includes/opengl/macosx-window-system.h (diff)
The file was modifiedsrc/nativewindow/native/macosx/OSXmisc.m (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/OffscreenLayerSurface.java (diff)
The file was modifiedmake/config/jogl/cgl-macosx-CustomJavaCode.java (diff)
Commit 2ff795342c720b3b807135c632785e18cee29334 by Sven Gothel
X11/WGL: Better Exception Message for failed ARB context creation if profile > GL2 (OpenGL >= 3.0.1) was requested.
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)