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

Changes

Summary

  1. *External*Context Impl: Remove unused 'lastContext' field, incl. their (details)
  2. MemoryObject: Use GlueGen's new HashUtil (details)
  3. Bug 665: Allow re-association of GLContext/GLEventListener to a (details)
  4. Bug 665: Allow re-association of GLContext/GLEventListener to a (details)
  5. Minor Changes: EGLDisplayUtil: Add stack trace in DEBUG mode for opened (details)
Commit 6b924839b33dbf507dd9eebc0ad5b5fbf23f4fb2 by Sven Gothel
*External*Context Impl: Remove unused 'lastContext' field, incl. their makeCurrent() and release() override.

Semantics of 'lastContext' are plain wrong, since release() override does claim the previous 'lastContext'
is current at the end - however, it wasn't technically made current.
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11ExternalGLXContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsExternalWGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXExternalCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLExternalContext.java (diff)
Commit 8457bf35fee253d9af29ff1150a9671f6896fc17 by Sven Gothel
MemoryObject: Use GlueGen's new HashUtil

GlueGen commit 1a4514accc8f61ab7ff5fe8c82d22a5ef356c865
The file was modifiedsrc/jogl/classes/jogamp/opengl/MemoryObject.java (diff)
Commit c225285e09f0a29fca418601bf1aa07cafb54339 by Sven Gothel
Bug 665: Allow re-association of GLContext/GLEventListener to a GLDrawable (Part 4)

Note:

  - GLEventListenerState preservs the GLAutoDrawable state,
    i.e. GLContext, all GLEventListener and the GLAnimatorControl association.

  - GLEventListenerState may be utilized to move the state from a dying GLAutoDrawable,
    to be moved to a new created GLAutoDrawable at a later time.

  - GLEventListenerState will be made public soon.

+++

Exessive unit tests cover the new feature, tested manually on GNU/Linux/X11 and OSX(Java6/Java7).

+++

- GLAutoDrawable
  - Change 'setContext(..)' to allow the destruction of the unbound old context:
      'setContext(GLContext newCtx)' -> 'setContext(GLContext newCtx, boolean destroyPrevCtx)'

  - Implementations: Properly implement 'setRealized(..)' incl. obeying threading constraints if exists.
    Method is being utilized at least for GLEventListenerState.moveTo(..)
    to unrealize and realize the drawable resources.

+++

Fix propagation of GLContext/GLDrawable association change (Bottom -> Top):

  GLDrawableImpl.associateContext
      GLContextImpl.associateDrawable
          GLContextImpl.makeCurrent
          GLContextImpl.destroy
          GLContext.setGLDrawable
              ...
              GLDrawableHelper.switchContext
                  GLAutoDrawble.setContext

associateDrawable(..)/associateContext(..) unifies and hence:
    - GLContextImpl.contextRealized() (removed)
    - GLDrawableImpl.contextRealized() (removed)
    - GLDrawableImpl.associateContext(..) (merged)
    - MacOSXCGLContext.drawableChangedNotify(..) (removed)

+++

- EGLUpstreamSurfaceHook.evalUpstreamSurface() validates the surface's device for reusage,
  which is valid in case of GLEventListenerState.moveTo(..)

- MacOSXCGLContext.NSOpenGLImpl: pixelFormat replaces NSOpenGLLayerPfmt and has simplified lifecycle [create..destroy],
  while native NSOpenGLLayer code only holds the reference until released.
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLAutoDrawableDelegate.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/glels/GLContextDrawableSwitchBase.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch11NewtAWT.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch12AWT.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch01NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NewtCanvasAWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/GLDrawableUtil.java (diff)
The file was removedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLContextDrawableSwitch11NEWT.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch21Newt2AWT.java (diff)
The file was removedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLContextDrawableSwitch01NEWT.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLPbufferImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableHelper.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch10NEWT.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLAutoDrawable.java (diff)
The file was modifiedsrc/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLUpstreamSurfaceHook.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDrawable.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/QuitAdapter.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLEventListenerState.java (diff)
Commit e2506d7663b752f00f0a98f793ebad52e65bd1e3 by Sven Gothel
Bug 665: Allow re-association of GLContext/GLEventListener to a GLDrawable (Part 5)

- GLAutoDrawableBase:

  - Add 'setPreserveGLStateAtDestroy(..)' to preserve the GLEventListenerState at destroy() operation,
    and impl. details pullGLEventListenerState()/pushGLEventListenerState().
    pullGLEventListenerState() is called automatic at destroyImplInLock(),
    where pushGLEventListenerState() has to be called after drawable realization
    instead of context creation.

  - Note/TODO: Method will become public in GLAutoDrawable in general!

- NEWT/GLWindow:
  - Use GLEventListenerState preservation for reparenting case w/ destruction,
    i.e. keep GLContext/GLEventListener alive while reparenting in recreation mode.

    Scenario: NewtCanvasAWT Child <-> Top on OSX w/ CALayer
The file was modifiedsrc/newt/classes/com/jogamp/newt/opengl/GLWindow.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java (diff)
Commit 74019520e8d82d03f5cf95729456717b34060f5d by Sven Gothel
Minor Changes: EGLDisplayUtil: Add stack trace in DEBUG mode for opened DPYs; JAWTWindow: Add JAWT info in toString()
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLContext.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java (diff)