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

Changes

Summary

  1. jogl: add missing @Override annotation in NewtCanvasAWT (details)
  2. jogl: simplify conditional that repeats test for isOnScreen (details)
  3. jogl: do the clearGlobalFocusOwner() call on the AWT EDT in (details)
  4. jogl: push other call to clearGlobalFocus to the AWT EDT (details)
  5. NewtCanvasAWT: Remove useless block in else branch (details)
  6. WWW: Add J4K and Unlicense in Tools/Libraries .. (details)
  7. Bug 909 - Reccreate GLJPanel's BufferedImage is no more sourced by (details)
  8. AWTWindowClosingProtocol: Hold Window reference impl. is listening to to (details)
  9. JOGLNewtAppletBase's windowDestroyNotify(): Double check 'awtParent' (details)
  10. JOGLNewtApplet1Run: Perform AWT Operations on AWT-EDT ; Remove redundant (details)
  11. JOGLNewtAppletBase's add/remove 'reparentHome WindowListener' at (details)
  12. Workaround Bug 910 (IcedTea-Web): NewtCanvasAWT shall postpone (details)
  13. Bug 672 (NewtCanvasSWT ignore windowing offset on OSX'). (details)
  14. Bug 672: Move Unit Tests to appropriate SWT package and prepent Test so (details)
  15. Bug 672 (NewtCanvasSWT): Reuse SWTAccessor.isOS_TYPE ; Impl (details)
  16. Workaround Bug 910 (IcedTea-Web): NewtCanvasAWT shall postpone (details)
  17. Bug 910: Add Standalone Extended Applet Lifecycle Validation Test (details)
  18. Refine DemoBug910ExtendedAWTAppletLifecycleCheck (commit (details)
  19. Fix Bug 902: FFMPEGMediaPlayer uses IOUtil.decodeURIIfFilePath(uri) to (details)
  20. Bug 907 - Initial patch allowing Jogl to respond to other applications (details)
  21. Bug 907 - Cleanup Commit e9c711a86aa05f4f24c69972532833f5a98911a3 (details)
  22. Bug 907 - Fix regression of 'cleanup' Commit (details)
  23. GLDrawableFactory: destroy() -> shutdownImpl() - Add DEBUG output in (details)
  24. GLDrawableFactory.shutdown0() Add DEBUG line at the end (details)
  25. Bug 907 - Refine DummyDispatchThread (DDT) Handling: Proper OO (details)
  26. Bug 907 - Add native Windows test sending WM_GETTEXT to all windows and (details)
  27. GLJPanel.initializeBackend(offthread=true): Enable on Windows, thanks to (details)
  28. Bug 914 - Don't allow 'alwaysontop' in fullscreen mode, always allow (details)
  29. Bug 914: Newt OSX: Don't use exclusive fullscreen mode (captured (details)
  30. NEWT Windows: Rearrange wndProc switch-case: All key/mouse events shall (details)
  31. Bug 916 - NEWT Fullscreen Mode on Windows ALT-TAB doesn't allow (details)
  32. Bug 914: Newt OSX: Reset NSApp's presentationOptions @ windowClose0() / (details)
  33. Bug 919 - TestNewtKeyCodesAWT w/ NewtCanvasAWT Fails on Windows Due to (details)
  34. TestNewtKeyEventAutoRepeatAWT: Fix regression of commit (details)
  35. jogl: update the entry for JaamSim to a better image, update link to (details)
  36. Bug 747: VectorUtil: Make scale(..) creating new float[] deprecated, (details)
  37. Bug 904: 'User Vertical Flip' for GLJPanel shall be performed via (details)
  38. Bug 904: 'User Vertical Flip' for GLJPanel w/o vertical flip must be (details)
  39. TestShutdownCompleteNEWT: Enhance profiling via '-wait -initOnly' ; Use (details)
  40. TestShutdownCompleteNEWT/AWT: Align both tests and account for GLInfo. (details)
  41. Bug 922 (1/2): NEWT Window.reparentWindow(..): Provide (details)
  42. Bug 922 (2/2): NEWT Window.reparentWindow(..): Use (details)
  43. Bug 918 (1/2): Use StreamWorker in 'Audio Only' mode, since no (details)
  44. Bug 918: GLMediaPlayer: Fix Deadlock if EOS happens after pause/resume (details)
  45. Bug 918 (2/2): Determine StreamWorker usage after stream-init ; Fix (details)
  46. ALAudioSink: Fix stop and flush of OpenAL source (details)
  47. Bug 918: Fix EOS Regression: Only use pts>duration for EOS if duration > (details)
Commit 417675219de9fb5fceca5771812366ae8768b658 by Harvey Harrison
jogl: add missing @Override annotation in NewtCanvasAWT

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
Commit 0a9d16f057727652220a5983b65f22f427df6a22 by Harvey Harrison
jogl: simplify conditional that repeats test for isOnScreen

if (isOnscreen)
else if (!isOnScreen)

change to

if (isOnscreen)
else

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
Commit d544c839f6df10f20977c786a446833f3aa7ef13 by Harvey Harrison
jogl: do the clearGlobalFocusOwner() call on the AWT EDT in NewtCanvasAWT

Otherwise we can deadlock in the native focusrequest calls from the AWT thread,
see bug 879 for the details.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
Commit 177d0da1a9a8e031f15efa9e89465f8ed97f25e5 by Harvey Harrison
jogl: push other call to clearGlobalFocus to the AWT EDT

Follow-on to commit:
d544c839f6df10f20977c786a446833f3aa7ef13 (jogl: do the clearGlobalFocusOwner() call on the AWT EDT in NewtCanvasAWT)

Likely this won't hurt anything.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
Commit b5b5b0f9f5a12e131b4718af8a4cea899f74e1dc by Sven Gothel
NewtCanvasAWT: Remove useless block in else branch
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
Commit 291c5ac4f0f55807172d1036e7c746db9af7ceec by Sven Gothel
WWW: Add J4K and Unlicense in Tools/Libraries ..
The file was addedwww/media/unlicense-preview.png
The file was modifiedwww/index.html (diff)
The file was addedwww/media/j4k-demo-160x118.png
Commit 94f3c1b5d3af65cf9d985833b2c8e40ec1af4592 by Sven Gothel
Bug 909 - Reccreate GLJPanel's BufferedImage is no more sourced by singleton AWTGLPixelBuffer

GLJPanel must validate whether it's local BufferedImage's DataBuffer is sourced
by the current singleton AWTGLPixelBuffer.

Case:
GLJPanel-B has created a new singleton AWTGLPixelBuffer w/ increased size.
Previous created GLJPanel-A's local BufferedImage's DataBuffer is no more sourced
by the singleton AWTGLPixelBuffer and hence must be re-created.
The file was modifiedmake/scripts/tests.sh (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/awt/TestGLJPanelResize01AWT.java
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/awt/AWTGLPixelBuffer.java (diff)
Commit 87fa56ba6f88b3f87199c70324b919dc4ae4e6cf by Sven Gothel
AWTWindowClosingProtocol: Hold Window reference impl. is listening to to properly removeClosingListener() (and replace boolean state)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/awt/AWTWindowClosingProtocol.java (diff)
Commit 42f56dea3dc31de8049186825e18dc4b4767827e by Sven Gothel
JOGLNewtAppletBase's windowDestroyNotify(): Double check 'awtParent' before reparenting 'back to parent'
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/applet/JOGLNewtAppletBase.java (diff)
Commit 832a69834200f34a44d72639bfd47e73c72d2b42 by Sven Gothel
JOGLNewtApplet1Run: Perform AWT Operations on AWT-EDT ; Remove redundant explicit call to reparentWindow(null) @ destroy
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/applet/JOGLNewtApplet1Run.java (diff)
Commit fa1d211c9658ce209f411e559333da0e2fccd402 by Sven Gothel
JOGLNewtAppletBase's add/remove 'reparentHome WindowListener' at start()/stop()
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/applet/JOGLNewtAppletBase.java (diff)
Commit 0c3709ba4ba2dd4ba7bb2e7f0783fba346e090e1 by Sven Gothel
Workaround Bug 910 (IcedTea-Web): NewtCanvasAWT shall postpone JAWTWindow destruction if removeNotify() is called from non AWT-EDT
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
Commit 5db2c65cd030311b5cfcb8174ada6e870db10258 by petros
Bug 672 (NewtCanvasSWT ignore windowing offset on OSX').
The NewtCanvasSWT is now brought into place by the parent SWT Composite
and the super SWT Canvas it extends. Also added two test cases. One with
a simple SashForm and the NewtCanvasSWT in the second cell, and another
with the NewtCanvasSWT in a Composite, that Composite now in the second
cell of the SashForm. The second test is necessary because the
NewtCanvasSWT does not receive SWT.Resize events in this configuration,
but only SWT.Paint ones (a behaviour inherited from the super SWT
Canvas)
The file was modifiedsrc/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/Bug672NewtCanvasSWTSashFormComposite.java
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/Bug672NewtCanvasSWTSashForm.java
Commit 09b5d1ed25f9b5de13d2b0980c95121d0d5d7c0e by Sven Gothel
Bug 672: Move Unit Tests to appropriate SWT package and prepent Test so they get picked up by our unit test run
The file was removedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/Bug672NewtCanvasSWTSashForm.java
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/swt/TestBug672NewtCanvasSWTSashForm.java
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/swt/TestBug672NewtCanvasSWTSashFormComposite.java
The file was removedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/Bug672NewtCanvasSWTSashFormComposite.java
Commit d5c25aa5584e98416208afef57610c85ac6c254c by Sven Gothel
Bug 672 (NewtCanvasSWT): Reuse SWTAccessor.isOS_TYPE ; Impl NW.getLocationOnScreen(..) for X11 and Windows ; Allow unit test to run on all platforms.

- Reuse SWTAccessor.isOS_TYPE (public now)

- Impl NW.getLocationOnScreen(..) for X11 and Windows reusing existing native code

- Allow unit test to run on all platforms.

Note: NewtCanvasSWT unit tests require a 'wait for realized' while SWT dispatching.
Otherwise the 'sash unit test' will fail since realiziation happens later, at least on X11.

Hence extended AWTRobotUtil.waitForRealized(..) to use a 'waitAction'
which is used here w/ special SWT dispatch Runnable.

AWTRobotUtil.waitForRealized(..) operates on time-delta instead of iteration-counter,
allowing above 'waitAction' Runnable.

AWTRobotUtil.waitForRealized(..) removed 2nd 'glad.isRealized()' loop ..
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/swt/TestBug672NewtCanvasSWTSashForm.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/swt/TestNewtCanvasSWTGLn.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/swt/TestNewtCanvasSWTBug628ResizeDeadlockAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/AWTRobotUtil.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/swt/TestBug672NewtCanvasSWTSashFormComposite.java (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
Commit 1617b3edfa006432dbb7332c283e219e6583f4ec by Sven Gothel
Workaround Bug 910 (IcedTea-Web): NewtCanvasAWT shall postpone JAWTWindow destruction via explicit set flag.

IcedTea-Web_1.5pre+rbc73a1362e9c still issues NewtCanvasAWT.removeNotify()
before before Applet.destroy(), i.e. removes NewtCanvasAWT from the Container
ahead of time (Applet protocol destroy()).

However, it fixes the non AWT-EDT issue, i.e. calls NewtCanvasAWT.removeNotify()
from the actual AWT-EDT - good.

Since the root cause still exist, we cannot use heuristics as described in
Bug 910 comment 9, but need to set a flag in NewtCanvasAWT to skip JAWT destruction
and remove it latter within Applet.destroy().

NewtCanvasAWT.removeNotify.0 - isApplet true @ [AWT-EventQueue-0, isAWT-EDT true]
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/applet/JOGLNewtApplet1Run.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
Commit 9310b11b2b6e1e89fa5ed9b8de26e56ff6a6b262 by Sven Gothel
Bug 910: Add Standalone Extended Applet Lifecycle Validation Test

Test is online @ http://jogamp.org/deployment/test/bug910/

Test validates the state of the added component:
  TC1 - addNotify() and removeNotify() has been called from AWT-EDT.
  TC2 - removeNotify() is not called before Applet.destroy()

Test also validates the Applet state:
  TA1 - isActive()
  TA2 - init count
  TA3 - start count
  TA4 - stop count
  TA5 - destroy count
The file was addedsrc/test/com/jogamp/opengl/test/bugs/DemoBug910ExtendedAWTAppletLifecycleCheck.java
The file was addedjnlp-files/Bug910-AppletLifecycleCheck.html
The file was modifiedjnlp-files/jogl-test-applets.html (diff)
Commit 65247a8188c7470ee7f599f2e84cae1bc84fff9c by Sven Gothel
Refine DemoBug910ExtendedAWTAppletLifecycleCheck (commit 9310b11b2b6e1e89fa5ed9b8de26e56ff6a6b262): Test start/stop balance.
The file was modifiedsrc/test/com/jogamp/opengl/test/bugs/DemoBug910ExtendedAWTAppletLifecycleCheck.java (diff)
Commit eb9225c928b9a1a5660c865921fcd91f85cd1cd0 by Sven Gothel
Fix Bug 902: FFMPEGMediaPlayer uses IOUtil.decodeURIIfFilePath(uri) to decode proper file-scheme if applicable - otherwise encoded ASCII URI.
The file was modifiedmake/scripts/tests-x64-dbg.bat (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGMediaPlayer.java (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java (diff)
Commit e9c711a86aa05f4f24c69972532833f5a98911a3 by Sven Gothel
Bug 907 - Initial patch allowing Jogl to respond to other applications that try to retrieve window names
The file was modifiedsrc/nativewindow/native/win32/GDImisc.c (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
Commit 52c95c19dbd69a7fc6b307d2b2db357ceb43ddf5 by Sven Gothel
Bug 907 - Cleanup Commit e9c711a86aa05f4f24c69972532833f5a98911a3

Cleanup Commit e9c711a86aa05f4f24c69972532833f5a98911a3:
  - Fix while loop in SendCloseMessage (native)

  - static 'threadid' must be volatile

  - Whitespace

  - Redundancy
    - CreateDummyWindow

  - Scope (java, move JNI funcs back to private)

  - Remove [invalid] pointer usage (native)
    - ThreadParam's threadReady and hWndPtr shall not be pointers - invalid
    - No need to use a threadReady pointer.

  - Validate threadid (native)

TODO:
  - Make 'native dispatch thread' optional
  - Store 'native dispatch thread' in window class
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
The file was modifiedsrc/nativewindow/native/win32/GDImisc.c (diff)
Commit f52c89e36cccd5eb141882a4b3378efe54aa9576 by Sven Gothel
Bug 907 - Fix regression of 'cleanup' Commit 52c95c19dbd69a7fc6b307d2b2db357ceb43ddf5
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
Commit 5906d6cd747092f1e73b32f3337563fa74cec2d2 by Sven Gothel
GLDrawableFactory: destroy() -> shutdownImpl() - Add DEBUG output in implementation
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
Commit cb0afe743d21a3480e2d41744a904ac7d404612d by Sven Gothel
GLDrawableFactory.shutdown0() Add DEBUG line at the end
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLDrawableFactory.java (diff)
Commit 586446311ea1ba87f98236d5347955bf99b465d6 by Sven Gothel
Bug 907 - Refine DummyDispatchThread (DDT) Handling: Proper OO integration in RegisteredClass; Safe DDT Post/WaitForReady handling and error cases ; ...

Proper OO integration of DDT in RegisteredClass
  - DDT is optional to RegisteredClass[Factory],
    i.e. NEWT without DDT and DummyWindow with DDT.

  - Using native type DummyThreadContext per DDT
    passed as DDT handle to java referenced in RegisteredClass

  - Passing DDT handle to related native methods,
    if not null use DDT - otherwise work on current thread.
    The latter impacts CreateDummyWindow0 and DestroyWindow0.

Safe DDT Post/WaitForReady handling and error cases ; ...
  - Wait until command it complete using a 3s timeout
  - Terminate thread if errors occur and throw an exception

+++

Discussion: DDT Native Implementation

Due to original code, the DDT is implemented in native code.
Usually we should favor running the DDT from a java thread.
However, since it's main purpose is _not_ to interact w/ java
and the native implementation has less footprint (performance and memory)
we shall be OK w/ it for now - as long the implementation IS SAFE.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/RegisteredClass.java (diff)
The file was modifiedsrc/nativewindow/native/win32/GDImisc.c (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/RegisteredClassFactory.java (diff)
The file was modifiedmake/scripts/tests-x64-dbg.bat (diff)
The file was modifiedsrc/nativewindow/native/NativewindowCommon.h (diff)
The file was modifiedsrc/nativewindow/native/NativewindowCommon.c (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDIUtil.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/DisplayDriver.java (diff)
Commit efc158abbb2c282029aaa746e032ec678e374d7b by Sven Gothel
Bug 907 - Add native Windows test sending WM_GETTEXT to all windows and dumping the result. If working, Bug907 is fixed and hence DDT is working.
The file was addedsrc/test-native/Bug907GetAllWindowNamesViaMessageDispatch.c
Commit 11a4a3a7b120c6f7c34a717828da49e3a13f4a3b by Sven Gothel
GLJPanel.initializeBackend(offthread=true): Enable on Windows, thanks to Bug 907 impl. DummyDispatchThread (DDT)

Bug 907 implemented DDT used to create and destroy offscreen surface's dummy drawable on Windows.
This enables offscreen initialization on Windows running from a short lived arbitrary thread.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
Commit 4cb35d98a1b25fb8347584b0ab6534c7cfc5946c by Sven Gothel
Bug 914 - Don't allow 'alwaysontop' in fullscreen mode, always allow switching to other applications via ALT-TAB

As described @ <http://forum.jogamp.org/Regression-of-alwaysOnTopBug-tp4030735p4030738.html>,
we shall not steal the desktop in fullscreen mode via 'alwaysontop'.

Latest tests on X11/GNU/Linux and Windows7 - before this patch:

With default settings, i.e. alwaysontop (atop) disabled,
it works as expected here, i.e.:
  - ALT-TAB triggers WM dialog, switching between apps.
  - ALT-TAB can actually switch to other apps.

However, with enabled atop:
  - ALT-TAB triggers WM dialog, switching between apps.
  - ALT-TAB does _not_ switch to other apps. (*)

I consider this a serious issue, since we shall not steal
the desktop in fullscreen mode.

This patch disables atop in fullscreen mode,
i.e. (*) will switch to other apps again!
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit 69c334448cfe8af553fd97689137ecf8f996b378 by Sven Gothel
Bug 914: Newt OSX: Don't use exclusive fullscreen mode (captured display) in favor of proper WM incl. ALT-TAB app-switching
The file was modifiedsrc/newt/native/MacWindow.m (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/native/NewtMacWindow.m (diff)
The file was modifiedsrc/newt/native/NewtMacWindow.h (diff)
Commit 9dd1d908921a4f7336f059dfc4d54aaf910da32b by Sven Gothel
NEWT Windows: Rearrange wndProc switch-case: All key/mouse events shall be at last
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
Commit 354b0b370bbfd14743267a9466f5e91e4d218a42 by Sven Gothel
Bug 916 - NEWT Fullscreen Mode on Windows ALT-TAB doesn't allow Application Switching

Remedy for 'some' display drivers, i.e. Intel HD:
  Explicitly push fullscreen window to BOTTOM when inactive (ALT-TAB)
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
Commit 0237bde0f3c13d393c3942b41f79656a80fd578d by Sven Gothel
Bug 914: Newt OSX: Reset NSApp's presentationOptions @ windowClose0() / Assume having focus in fullscreen-mode

- Reset NSApp's presentationOptions @ windowClose0()

  Commit 69c334448cfe8af553fd97689137ecf8f996b378 started using the [NSApp setPresentationOptions: opts]
  but missed to reset to defaults @ windowClose0();

- Assume having focus in fullscreen-mode
  NewtMacWindow::windowDidBecomeKey()' is not always called in fullscreen-mode!

Note: OSX Fullscreen from a browser still shows the browser title-bar
until mouse-click. Don't know how to avoid this. Minor issue..
The file was modifiedsrc/newt/native/MacWindow.m (diff)
The file was modifiedsrc/newt/native/NewtMacWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/native/NewtMacWindow.h (diff)
Commit 8512777873461ee33d8ed913ee26bafc00a08a02 by Sven Gothel
Bug 919 - TestNewtKeyCodesAWT w/ NewtCanvasAWT Fails on Windows Due to Clogged Key-Release Event by AWT Robot

Impact: Only unit test code

- TestNewtKeyCodesAWT:
  Fix Bug 919 - Move mouse bacl/forth while waiting for events ..

- Use common wait for key timeout/polling using constants in NEWTKeyUtil

- InputEventCountAdapter:
  'getQueued()' -> 'copyQueue()' - ensuring queue is copied while instance is locked.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/AWTMouseAdapter.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/InputEventCountAdapter.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/event/TestNewtKeyCodesAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/NEWTMouseAdapter.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/event/BaseNewtEventModifiers.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/event/TestNewtKeyEventAutoRepeatAWT.java (diff)
The file was modifiedmake/scripts/tests-x64-dbg.bat (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/AWTKeyAdapter.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/NEWTKeyUtil.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/event/TestNewtKeyCodeModifiersAWT.java (diff)
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/NEWTKeyAdapter.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/AWTRobotUtil.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/event/TestNewtKeyEventOrderAWT.java (diff)
Commit e2b74932a334b4a0bb9fedc12b0bc51095d35d6a by Sven Gothel
TestNewtKeyEventAutoRepeatAWT: Fix regression of commit 8512777873461ee33d8ed913ee26bafc00a08a02
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/event/TestNewtKeyEventAutoRepeatAWT.java (diff)
Commit a0a1331862710ec77feecdca546bb2e956eb5e5c by Harvey Harrison
jogl: update the entry for JaamSim to a better image, update link to homepage

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
The file was modifiedwww/index.html (diff)
The file was addedwww/media/JaamSim_160x160.png
The file was removedwww/media/JaamSim_160x120.png
Commit ab9076c83cc3b2e7800eaf0a19febe786458146d by Sven Gothel
Bug 747: VectorUtil: Make scale(..) creating new float[] deprecated, adding 'in place' variant w/ passing result float[] ; TODO: Replace all variations with 'in place' version to be more memory efficient.

Make scale(..) creating new float[] deprecated, adding 'in place' variant w/ passing result float[]

TODO: Replace all variations with 'in place' version to be more memory efficient.

See Bug747: Validate memory footprint and usage / General performance
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/math/VectorUtil.java (diff)
Commit 990b25adf6e0b6ab5c79d8ca43bc327fb93a755e by Sven Gothel
Bug 904: 'User Vertical Flip' for GLJPanel shall be performed via PROJECTION matrix scaling instead of MODELVIEW rotation ...

'User Vertical Flip' for GLJPanel shall be performed via PROJECTION matrix scaling instead of MODELVIEW rotation
to simplify workflow, and to remove artifacts w/ tiled printing.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/Gears.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es1/RedSquareES1.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2GLJPanelAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java (diff)
Commit f8c2a90129736844a12b76d658cb339a7c36cd9a by Sven Gothel
Bug 904: 'User Vertical Flip' for GLJPanel w/o vertical flip must be considered in AWTTilePainter: 'Origin of GL image is still on Bottom'
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledPrintingGearsSwingAWT2.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledPrintingGearsSwingAWT.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/awt/AWTTilePainter.java (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
Commit 085d7bf429f5640eb540dff4e66f25b69e2c7671 by Sven Gothel
TestShutdownCompleteNEWT: Enhance profiling via '-wait -initOnly' ; Use Platform.currentTimeMicros() for accuracy

ReflectionUtil usage:

TestShutdownCompleteNEWT -wait -initOnly

Hotspots:
   - MakeCurrent 5.3% - Called 52 times
   - ClassLoader.findClass(..) 3.1% - Called 486 times .
      - ReflectionUtil: 13 times ~ 0.3%
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java (diff)
Commit 4fa4a60a8e536ab7270df1d74503dba9a945bb20 by Sven Gothel
TestShutdownCompleteNEWT/AWT: Align both tests and account for GLInfo.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteAWT.java (diff)
The file was modifiedmake/scripts/tests-win.bat (diff)
The file was modifiedmake/scripts/tests.sh (diff)
Commit a00406f289ebaaae8d91e9ccc980829f202421a8 by Sven Gothel
Bug 922 (1/2): NEWT Window.reparentWindow(..): Provide REPARENT_HINT_BECOMES_VISIBLE hint via new method variant using hints; Deprecate other reparentWindow(..) variants w/o hints.

NEWT Window.reparentWindow(..): Provide REPARENT_HINT_BECOMES_VISIBLE hint via new method variant using hints:
  - Add REPARENT_HINT_FORCE_RECREATION, covering 'old' forceDestroyCreate boolean argument
  - Add REPARENT_HINT_BECOMES_VISIBLE, Claim window becomes visible after reparenting, which is important for e.g. preserving the GL-states in case window is invisible while reparenting.

Deprecate other reparentWindow(..) variants w/o hints.

Use only new variant using hints w/o semantical change.
The file was modifiedsrc/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting02AWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting02NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01bAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/NewtAWTReparentingKeyAdapter.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01NEWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/opengl/GLWindow.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting04SWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01cAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01aAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting03AWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01cSwingAWT.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting04AWT.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit 45525950b0ad41b10790515c8b6142d746cd24f5 by Sven Gothel
Bug 922 (2/2): NEWT Window.reparentWindow(..): Use REPARENT_HINT_BECOMES_VISIBLE to ensure GL State Preservation ; Add unit test !
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/GLEventListenerCounter.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/applet/JOGLNewtAppletBase.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01dAWT.java
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit c6ab1bc932d9a0b3897b24d289e4d561bf8bb65c by Sven Gothel
Bug 918 (1/2): Use StreamWorker in 'Audio Only' mode, since no 'getNextTexture(..)' is issued here!

Thanks to Xerxes to analyze this issue thoroughly.

TODO: Implement EOS for 'Audio Only' and test seek, pause, etc .. - Apply manual tests in MovieSimple
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java (diff)
The file was modifiedsrc/jogl/native/libav/ffmpeg_impl_template.c (diff)
Commit a1be0f69bacb315e40a017b8997ef1c610da576e by Sven Gothel
Bug 918: GLMediaPlayer: Fix Deadlock if EOS happens after pause/resume (seek) - Tested w/ seeking 'Audio Only' and Matroska

Test stream was default of MovieSimple:
  http://video.webmfiles.org/big-buck-bunny_trailer.webm

while disabling video (-vid -2)
The file was modifiedsrc/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java (diff)
Commit 8a8ed735f6631b2da7bf605c5c3dda4e0fc13905 by Sven Gothel
Bug 918 (2/2): Determine StreamWorker usage after stream-init ; Fix seek(..) ; Fallback for EOS Detection ; MovieSimple uses full GLEventListener for 'Audio Only' as well to test seek

Determine StreamWorker usage after init
  - To support audio only files, we need to determine to use StreamWorker
after completion of stream-init.

Fix seek(..)
  - FFMPeg: pos0 needs to use aPTS for audio-only
  - Clip target time [0..duration[

Fallback for EOS Detection
  In case the backend does not report proper EOS:

  - Utilize 'nullFramesCount >= MAX' -> EOS,
    where MAX is number of frames for 3s play duraction
    and where 'nullFramesCount' is increased if no valid packet is available
    and no decoded-video or -audio in the queue.

  - Utilize pts > duration -> EOS

MovieSimple uses full GLEventListener for 'Audio Only' as well to test seek
  - Matroska seek for audio-only leads to EOS ..
    http://video.webmfiles.org/big-buck-bunny_trailer.webm

  - MP4 audio-only seek works
    http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4

MovieSimple/MovieCube:
  - Use audio-pts in audio-only to calc target time

Tested:
  - A, V and A+V
  - Pause, Stop and Seek
  - GNU/Linux
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/av/GLMediaPlayer.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java (diff)
The file was modifiedsrc/jogl/native/libav/ffmpeg_impl_template.c (diff)
Commit d42b236ef139dcc8d8713535893c7870b55d420c by Sven Gothel
ALAudioSink: Fix stop and flush of OpenAL source

- stopImpl() shall always issue alSourceStop(..) if state is not STOPPED
- Remove 'flush' hint for dequeueBuffer(..), we perform proper flush in respective method, see below
- flush() needs to issue:
   - stopImpl() - which should already dequeue all buffers
   - Explicitly dequeue all buffers: via 'alSourcei(alSource[0], AL.AL_BUFFER, 0)'
   - Then dequeue manually processed buffers: dequeueBuffer( false /* wait */ );
   - And dequeue _all_ buffers: dequeueForceAll();
The file was modifiedsrc/jogl/classes/jogamp/opengl/openal/av/ALAudioSink.java (diff)
Commit a0b23035bf9de987f5ad1b00fe3630c102f4e513 by Sven Gothel
Bug 918: Fix EOS Regression: Only use pts>duration for EOS if duration > 0 (camera or other sources may not have duration)

Regression of commit 8a8ed735f6631b2da7bf605c5c3dda4e0fc13905
The file was modifiedsrc/test/com/jogamp/opengl/test/android/MovieCubeActivityLauncher0.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/android/MovieCubeActivityLauncher1a.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/util/av/GLMediaPlayerImpl.java (diff)