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

Changes

Summary

  1. fixed HTML header. (details)
  2. Fix NativeWindow JAWT Code Generation and Bounds Access (details)
  3. Fix NativeWindow/NEWT Unique Display Naming, X11 use real NULL Display (details)
  4. NEWT: Fix AWT Parenting ; Multithreading Issues ; Semantics: destroy(), (details)
  5. test duration .. (details)
  6. Allow build on OSX 10.5 (thanks to sed) (details)
  7. Merge branch 'master' of github.com:mbien/jogl (details)
  8. JOGL: Unified GLContext native handle (details)
  9. NEWT: Simplified Locking (details)
  10. NEWT/MacOSX: First Changes towards general NEWT/AWT solution (details)
The file was modifiedwww/index.html (diff)
Commit 944bef5e70e0e8fe85a147fa7304c35f18d1957b by Sven Gothel
Fix NativeWindow JAWT Code Generation and Bounds Access

- Restructure: JAWT gluegen, use common jawt-common.cfg
- Fix: Use proper capacity for GetDrawingSurface and GetDrawingSurfaceInfo
- Fix: JAWTWindow maintains AWT bounds
- Fix: JAWTWindow locking/unlocking decoupled with abstract implementation,
       which allows clear code and simpler unlock code.
The file was addedsrc/newt/classes/com/jogamp/newt/awt/NewtFactoryAWT.java (diff)
The file was addedmake/config/nativewindow/jawt-common.cfg (diff)
The file was addedsrc/nativewindow/classes/com/jogamp/nativewindow/util/Rectangle.java (diff)
The file was modifiedmake/config/nativewindow/jawt-win32.cfg (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/jawt/windows/WindowsJAWTWindow.java (diff)
The file was modifiedmake/config/nativewindow/jawt-x11.cfg (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/jawt/x11/X11JAWTWindow.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/jawt/macosx/MacOSXJAWTWindow.java (diff)
The file was modifiedmake/config/nativewindow/jawt-macosx.cfg (diff)
The file was modifiedmake/build-nativewindow.xml (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/jawt/JAWTWindow.java (diff)
The file was removedsrc/newt/classes/com/jogamp/newt/impl/awt/AWTNewtFactory.java (diff)
Commit c787f50d77e2491eb0d8201d534a6fa4885a929e by Sven Gothel
Fix NativeWindow/NEWT Unique Display Naming, X11 use real NULL Display name

Use proper (X11) Display names to avoid multiple Display instances.
The problem was in case of 'wrapping' another X11 Display,
a previous Display instance used 'nil' to reflect the null default Display
but the wrapped instance (using a Display handle) the proper Display name.
Now all (X11) Display's are using the proper Display name instead of a dummy 'nil' name.

- Fix: NEWT null Display name is validated upfront, instead of changing it later
- Fix: Nativewindow's X11Util gathers the systems NULL Display name and offers
       a validation method
- Fix: NEWT X11 Display validates the NULL Display name properly
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/windows/WindowsDisplay.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/opengl/kd/KDDisplay.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Display.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/intel/gdl/Display.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/macosx/MacDisplay.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/awt/AWTDisplay.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/x11/X11Util.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/opengl/broadcom/egl/Display.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/x11/X11Display.java (diff)
Commit 811bd23ed37e392abb349f850a0b1dac635d021e by Sven Gothel
NEWT: Fix AWT Parenting ; Multithreading Issues ; Semantics: destroy(), .. ; Misc.

Due to incapabilities of the previous AWT/NEWT reparenting
the implementation and spec had to be changed to support this feature.
See the first 2 comments below.

- Tested on GNU/Linux (OK), Windows (a few bugs left)
-

TODO:
    - Clarify the size/layout issue, ie who is responsible etc
      In the test, incl AWT/NEWT, we set the size on the GLWindow
      and ie pack the AWT Frame.

    - Fix remaining [Windows] bugs ..

    - Fix/Implement MacOSX port ..

Fix AWT/NEWT reparenting:
===========================

- Now NewtFactory's createWindow() method for parenting handles NativeWindow only
  and is no more responsible for creating a child window upon an AWT Component.
  See class com.jogamp.newt.awt.NewtCanvasAWT for NEWT/AWT parenting.

- New com.jogamp.newt.awt.NewtCanvasAWT, responsible for handling
  AWT's reparent events via addNotify/removeNotify.
  Reparenting is implemented via the new NEWT Window's reparentWindow() method.
  Also sets the background erase to false, if supported.

- Fix zero size semantics in Window (setSize/setVisible)
  Since a zero size window is not supported by many compoenent (Windowing system, OpenGL, ..)
  we use the visibility methodology to not show a 0x0 window. See Javadoc.
  AWT components may start with zero size.

- New NEWT Window: reparentWindow(NativeWindow newParent, Screen newScreen)
  Allowing to change the parent of a window. Similar with the fullscreen toggle,
  but without size/position change.
  Native reparenting allows to keep alive the native
  window while changing the container, hence it is preferred to a destroy/create cycle.
  To benefit from the native reparenting, a NEWT implementation has to implement
    'protected boolean reparentWindowImpl(long newWindowHandle)'
  and return true, otherwise reparenting will be 'emulated' via
  the expensive destroy/create cycle.

- NEWT's Window references all of it's children, if any

- NEWT's Window propagates setVisible/destroy actions to it's children.

- Fix NEWT's destroy() semantics.
  A call of destroy() or destroy(false) shall only result in the destruction of the
  native window (handle) nothing more. A subsequent setVisible(true) shall allow
  the complete recreation of the Window into a usable state.
    A call of destroy(true) destroys all resources the Window holds,
  may include Screen/Display and OpenGL resources in case of GLWindow.
  This is necessary to allow proper reparenting, where a native window may become
  destroyed, but should be recreated via setVisible(true) later on.

- Fix NEWT set[Size|Position|Fullscreen|Visible] synchronization.
  Use a recursive lock instead of the Window instance, otherwise arbitrary Window access
  via AWT's EDT, NEWT's EDT or other threads can block.
  Also removed a use pattern like:
    key.lock()
    try {
        EDT.invoke(action());
    } finally {
        key.unlock();
    }
  Where action() itself uses the same lock object (here key), the result is a deadlock.

NativeWindow Changes:
======================

- We can use XInitThreads() now (concurrent threading support)
  in combination with AWT.
  Might have been some async in our NEWT locking in regards to AWT (sync()),
  and the X11 Display changes made in c787f50d77e2491eb0d8201d534a6fa4885a929e.

- NativeWindow's window handle is _not_ transient like surface handle,
  fixed documentation.

JOGL Changes:
=============

- New 'isRealized()' method in GLDrawable.

-
Misc Fixes
============
- Fix NEWT set[Size|Position|Fullscreen|Visible] duplicate code
  Due to pure abstract signatures, the set[Size|Position|Fullscreen|Visible]
  implementations of X11, OSX, .. contained duplicate code and state handling (size, pos, ..).
  These are now decoupled, ie generic set[Size|Position|Fullscreen|Visible] implementations
  calling simple set[Size|Position|Fullscreen|Visible]Impl implementations.

- Fix NEWT: Renamed setAutoDrawableClient(boolean) to setHandleDestroyNotify(boolean)
  The semantic of
    setAutoDrawableClient(boolean) defaults to false
  was too complicated and specific, hence changed to
    setHandleDestroyNotify(boolean) defaults to true
  since its more clear and the name refers the window itself..

- Fix NEWT: Removed GLWindow's unused global window list

- Fix NEWT: Remove Window's unused event mask

- Rename com.jogamp.newt.impl.awt.AWTNewtFactory -> com.jogamp.newt.awt.NewtFactoryAWT
The file was modifiedmake/scripts/java-run-all.sh (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/WindowAction.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/event/awt/AWTParentWindowAdapter.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/NullWindow.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/TestWindows01NEWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/opengl/kd/KDWindow.java (diff)
The file was addedsrc/junit/com/jogamp/test/junit/newt/TestParenting02NEWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/GLDrawableImpl.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/TestParenting01AWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/event/awt/AWTWindowAdapter.java (diff)
The file was modifiedsrc/newt/native/X11Window.c (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/TestParenting01NEWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/egl/EGLDrawable.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/KeyAction.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/GLPbufferImpl.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/RecursiveToolkitLock.java (diff)
The file was modifiedsrc/newt/native/MacWindow.m (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/event/awt/AWTAdapter.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/opengl/GLWindow.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/x11/X11Window.java (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/NativeWindow.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Display.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/awt/AWTWindow.java (diff)
The file was addedsrc/junit/com/jogamp/test/junit/newt/TestParenting02AWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/OffscreenWindow.java (diff)
The file was addedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtFactoryAWT.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLDrawable.java (diff)
The file was addedsrc/junit/com/jogamp/test/junit/newt/TestGLWindows01NEWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/macosx/MacWindow.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/event/awt/AWTKeyAdapter.java (diff)
The file was modifiedmake/scripts/java-run-newt.sh (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/NewtFactory.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/windows/WindowsWindow.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/x11/X11Util.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/intel/gdl/Window.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/util/EDTUtil.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/event/awt/AWTMouseAdapter.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/opengl/broadcom/egl/Window.java (diff)
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/TestParenting01AWT.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/TestParenting02AWT.java (diff)
Commit 2cb29a4ad410929cc365e15271f35fc3826dc6a7 by Sven Gothel
Allow build on OSX 10.5 (thanks to sed)
The file was modifiedsrc/newt/native/NewtMacWindow.h (diff)
Commit 3d53317d3a0748cb3fd1a71f88f6cd4f5de9d4cb by Sven Gothel
Merge branch 'master' of github.com:mbien/jogl
Commit dd0400a41478c1f365414b8c760eee1c91105280 by Sven Gothel
JOGL: Unified GLContext native handle

- All GLContext implementations are using the contextHandle of the super class.
- GLContext.getHandle() exposes contextHandle for API cross access
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/macosx/cgl/MacOSXOnscreenCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/macosx/cgl/MacOSXExternalCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/windows/wgl/WindowsWGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/windows/wgl/WindowsExternalWGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11GLXContext.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/openmax/OMXInstance.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11ExternalGLXContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/egl/EGLExternalContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/egl/EGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/impl/x11/glx/X11OnscreenGLXContext.java (diff)
Commit d94115b3d72ec556371e6d09c2967345662fc781 by Sven Gothel
NEWT: Simplified Locking

- Using Display.getEDTUtil() and Display.runCreateAndDestroyOnEDT()
  to determine the NEWT EDT behavior, which may be specialized by the implementation.

- AWTWrapper and Newt/AWT Parenting deadlock fix.

- Misc fixes in test cases
The file was modifiedsrc/junit/com/jogamp/test/junit/jogl/util/texture/gl2/TextureGL2ListenerDraw1.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/TestGLWindows01NEWT.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/impl/NativeWindowFactoryImpl.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/opengl/GLWindow.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/event/awt/AWTWindowAdapter.java (diff)
The file was modifiedmake/build.xml (diff)
The file was modifiedmake/scripts/java-run-all.sh (diff)
The file was modifiedsrc/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/jogl/texture/TestTexture01AWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/event/awt/AWTParentWindowAdapter.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Display.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/awt/AWTDisplay.java (diff)
The file was modifiedsrc/junit/com/jogamp/test/junit/newt/TestParenting02AWT.java (diff)
Commit ede9386de45b63f46c206aaed27ddeafe8fe96fa by Sven Gothel
NEWT/MacOSX: First Changes towards general NEWT/AWT solution (incomplete).

- Excluding MacOSX build from CDC build

- If MainThread is not running, use AWT's EDT thread

- Execute most MacWindow tasks directly.
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/macosx/MacDisplay.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/impl/macosx/MacWindow.java (diff)