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

Changes

Summary

  1. JOGL/NEWT: Animator fixes (details)
  2. JOGL: AWT/GraphicsConfiguration - Use own display handle, reuse causes (details)
Commit 2aa296771e3e8dd6cf027f27b0455d1803244bfe by Sven Gothel
JOGL/NEWT: Animator fixes

Consider use cases with many drawables and no drawables at start,
this had to be reflected all over this patch set, implementation,
usage and test cases.

- GLAnimatorControl
  - refine API doc / states
  - add 'void remove(GLAutoDrawable drawable);'

- Animator*:

  - using RecursiveLock 'stateSync' for all actions out of the big synchronized (animator) block:

     - get status methods (thread, isPaused, ..), hence no more synchronized

     - display drawables change, utilizing synced ArrayList swap

    This removes the need for volatiles usage shouldPause/shouldStop within the display method.

  - added blocking wait for state change for add(GLAutoDrawable)/remove(GLAutoDrawable) method

  - remove flawed double checked locking in anim thread (pause/idle condition)

  - thread is now a daemon thread, hence it won't hinder the JVM from shutdown

  -

- Animator use change:

  - Always resume after pause, except in case of final destroy -> NEWT invalidate / GLCanvas,
    this considers use cases with many drawables and no drawables at start.

  - GLDrawableHelper: Don't pause at implicit dispose()
The file was modifiedsrc/junit/com/jogamp/test/junit/jogl/newt/TestSwingAWTRobotUsageBeforeJOGLInitBug411.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/FPSAnimator.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/parenting/TestParenting01NEWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/Animator.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/parenting/TestParenting01aAWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/DefaultAnimatorImpl.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLAnimatorControl.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/opengl/GLWindow.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/TestGLWindows02NEWTAnimated.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/WindowImpl.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLAutoDrawable.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/windows/WindowsWindow.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/AWTAnimatorImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/AnimatorBase.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLCapabilities.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java (diff)
Commit 6a3ccca96e6d4c27c372b4b9ba1e8fcee6def402 by Sven Gothel
JOGL: AWT/GraphicsConfiguration - Use own display handle, reuse causes SIGSEGV on AMD
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/x11/glx/awt/X11AWTGLXGraphicsConfigurationFactory.java (diff)