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

Changes

Summary

  1. Fix SWTEDTUtil bug, where it simply doesn't start by an implicit (details)
  2. Fix regression of commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b: X11 (details)
  3. Fix Bug 572 (2nd time): GLCanvas.validateGLDrawable() @ display() and (details)
  4. Use helper.isExternalAnimatorAnimating() instead of (details)
  5. UITestCase.snapshot: Add Depth and Stencil bits to filename (details)
  6. Fix FBObject DEPTH_STENCIL renderbuffer usage (details)
  7. FBO/Offscreen: Use most simple GLCapabilities for GLFBODrawableImpl's (details)
  8. Refine ed7d5f2e3fc696d47b10c8d62a071643bf385588, set and restore FBO (details)
  9. EGL/X11 DummySurfaceHook: Lock display device at creation/destruction (details)
  10. Refine a3cb6bb14f410f67fccf5ccd4cd7ecc66f448389, fix deadlock (details)
Commit 84632ca22d112da45b807299d2b1f5e4f4107695 by Sven Gothel
Fix SWTEDTUtil bug, where it simply doesn't start by an implicit 'invoke()' - No NewtCanvasSWT resize, nor input event delivery.

A new EDTUtil instance is not started automatically.

Since SWTEDTUtil is attached to the DisplayImpl later in time, i.e. after it's native creation,
there is no EDTUtil.invoke(..) call which started it.

The not started SWTEDTUtil could not deliver any events.

Fix: Start it explicitly - add API doc comment in Display.setEDTUtil(..)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Display.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java (diff)
Commit 8f6233f11693f5e079cfeb6706fe2c37b5b9a6c2 by Sven Gothel
Fix regression of commit fbe331f013608eb31ff0d8675f4e4c9881c9c48b: X11 DisplayDriver dispatchMessagesNative() aDevice NPE at finally

The aDevice could be pulled via destroy message, hence add check if null.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java (diff)
Commit a3cb6bb14f410f67fccf5ccd4cd7ecc66f448389 by Sven Gothel
Fix Bug 572 (2nd time): GLCanvas.validateGLDrawable() @ display() and reshape() ; GLCanvas.reshape() only if drawble valid ; GLCanvas.validateGLDrawable() also test isDisplayable() ; Fix size validation ; resizeOffscreenDrawable(..) don't validate 'safe' size 1x1

- GLCanvas.validateGLDrawable() @ display() and reshape()
  To help users using GLCanvas w/ having a realized GLCanvas/Drawable,
  validateGLDrawable() is also called at reshape().
  This shall ensure a valid drawable after even a non AWT-EDT issued first setVisible().

- GLCanvas.reshape() only if drawble valid
  Otherwise offscreen reshape attempts would happen even on unrealized drawable,
  which is not necessary.

- GLCanvas.validateGLDrawable() also test isDisplayable()
  To make sure the native peer is valid, also test isDisplayable()

- Fix size validation
  Since we have experienced odd size like 0 x -41
  test each component, i.e. 0 < width && 0 < height.
  This is done through all JOGL/NEWT components.

- resizeOffscreenDrawable(..) don't validate 'safe' size 1x1
  In case method is called w/ odd size, i.e. 0 x -41,
  the safe size 1x1 is used. However, we cannot validate this size.
  Dump WARNING if odd size is detected.
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/awt/TestBug572AWT.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableHelper.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/UITestCase.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java (diff)
Commit 742282292bb115343287a626b35211e81d695bad by Sven Gothel
Use helper.isExternalAnimatorAnimating() instead of helper.isAnimatorAnimating() for decision whether to display() now; Minor API comments.
The file was modifiedsrc/newt/classes/jogamp/newt/DisplayImpl.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLDrawable.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java (diff)
Commit 93c557c17d2046fc68c3deb582a51ccb4f578df1 by Sven Gothel
UITestCase.snapshot: Add Depth and Stencil bits to filename
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/UITestCase.java (diff)
Commit f541f349bdb99fbb4a00f1b81c9d4a60545cdb7e by Sven Gothel
Fix FBObject DEPTH_STENCIL renderbuffer usage

If DEPTH_STENCIL was selected, recreate destroyed the common buffer when stencil was being 'reset'.

To unify and simplify code, if DEPTH_STENCIL stencil == depth reference.
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/FBObject.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
Commit ed7d5f2e3fc696d47b10c8d62a071643bf385588 by Sven Gothel
FBO/Offscreen: Use most simple GLCapabilities for GLFBODrawableImpl's underlying dummy surface/drawable

If stencil or MSAA has been selected, the underlying dummy drawable doesn't need to have this configuration,
i.e. doesn't need to waste the resources.

- Creation of the dummy surface/drawable uses a simple GLCapabilities

- Requested FBO GLCapabilities is being passes down to the dummy drawable

- GLFBODrawableImpl ctor leaves caps untouched

- GLFBODrawableImpl.initialize(boolean realize)
  - realize == true: using the requested FBO caps and setting it in the parent dummy drawable
  - realize == false: restore the original caps of dummy drawable
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryOffscrnCapsNEWT.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
Commit bab6160df764871f6fa4db040362976f028d015b by Sven Gothel
Refine ed7d5f2e3fc696d47b10c8d62a071643bf385588, set and restore FBO caps @ setRealized(true/false) already, refine at initialize(true)

Allowing to validate the on-/offscreen state after setRealized(true).
Adding comment in GLFBODrawable.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLFBODrawable.java (diff)
Commit 67c2ab9bbc3522d85977151849c416f5aa320395 by Sven Gothel
EGL/X11 DummySurfaceHook: Lock display device at creation/destruction
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDummyUpstreamSurfaceHook.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/x11/X11DummyUpstreamSurfaceHook.java (diff)
Commit bb8454d735c511c6d80798d3b6258e1ed355579e by Sven Gothel
Refine a3cb6bb14f410f67fccf5ccd4cd7ecc66f448389, fix deadlock (regression)

The lock being claimed at validateGLDrawable() is 'offthread', i.e. may fight w/ AWT / Animator
at reshape/display.

Locking is moved 'down' to AWT runnable 'setRealizedOnEDTAction', which also double checks
the drawable [again].
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)