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

Changes

Summary

  1. doc/misc/robovm.txt: Writedown howto use JogAmp in combination with RoboVM AOT (details)
  2. doc/misc/robovm.txt: Mention -rvm: runtime flags (details)
  3. doc/misc/robovm.txt: Explore low footprint deployment 6.3Mb (details)
  4. doc/misc/robovm.txt: Update to JogAmp JOGL 2.3.2 and last libre RoboVM 1.6.1 (details)
  5. Update CSS; Add responsive viewport design tag (details)
  6. Update CSS; Add responsive viewport design tag (details)
  7. Bug 1381: Keep host PixelFormat functional using requested immutable alphaRequested + add appropriate API doc (details)
  8. iOS: Initial working commit supporting iOS (ipad pro 11) (details)
  9. iOS: Clean up promotion of EAGLLayer use down to FBObject (details)
  10. iOS: EAGLLayer FBO w/ DEPTH buffer workaround 1 (details)
  11. NEWT: Align native MacOS / IOS file- and classnames (details)
  12. Fix build test jar regression (commit bba73bc096250a3c7fc036d84b1ea054d1b70b06) (details)
  13. NEWT WindowImpl.doPointerEvent: Use native short[] for pNames (details)
  14. Copyright: Add missing Copyright tag (details)
  15. iOS / MacOS: PixelScale Update (details)
  16. NEWT iOS / MacOS: Simplify setJavaWindowObject (details)
  17. NEWT iOS: Support Multi-Touch Events, PixelScale, .. (details)
  18. NEWT iOS WindowDriver: native UIWindow/UIView creation change (details)
  19. NEWT iOS WindowDriver: Remove unused orig UIWindow/UIView creation path (details)
  20. NEWT iOS: Support translucent windows (details)
  21. iOS: IOSUtil_CreateGLViewDemoA0 tests native UIWindow parenting (works) (details)
  22. Fixed native header generation for native windowing code (details)
  23. Removed obsolete tools.jar (details)
  24. Removed references to non-existent method getPeer() in debug code (details)
  25. Removed import that caused GLUgl2/GLUgl2ProcAddressTable not to compile (details)
  26. Bug 1363: Java 11: javah replacement: Use conditional ant targets instead of branches, also re-add bootclasspath (details)
  27. Bug 1363: Java 11: Adapt build scripts for java11 (details)
  28. Removed remaining bootclasspath and javah; build now works on Windows 10 (details)
  29. Bug 1363: Java 11: bring back bootclasspath for java 8 target accuracy (details)
  30. Bug 1363: Java 11: Complement javah replacement: Add new iOS (details)
  31. Bug 1363: Java 11: Aligned HowToBuild.html w/ GlueGen's updated version (details)
  32. Bug 1363: Java 11: Adapt scripts for java11 (cont) (details)
  33. Fixed clean target so it doesn't fail if GlueGenTask is not present (details)
  34. Bug 1363: Java 11: (Hack) Inject OpenJFX [basic, graphics] into CLASSPATH (details)
  35. Removed illegal reflective access to sun.java2d.opengl.OGLUtilities (details)
  36. Bug 1363: Java 11: Don't use sun.awt.SunToolkit.awtLock/Unlock on Java9+ [illegal reflective access] (details)
  37. Bug 1363: Java 11: Don't use GraphicsDevice.getScaleFactor() on Java9+ [illegal reflective access] (details)
  38. Bug 1363: Java 11: Use getPixelScale standard method even on Mac under Java9+ (details)
  39. Bug 1363: Java 11: Resolve unsupported JAWTUtil.getMonitorDisplayID(..) (details)
  40. Reverting erroneous junit-test task condition (ant build) (details)
  41. Bug 1101: Add missing disposal of Pipelined_QuadRenderer's VBOs (details)
  42. Bug 1384: Allow GLRendererQuirks to be overridden by user properties (details)
  43. JoglVersion.getGLInfo: Increase robustness of debug output (details)
  44. GLRendererQuirks: Fix typo (details)
  45. Bug 1383: Cleanup GLContextImpl.setGLFunctionAvailability(..): Parameter, variables and clip at 180 line width (details)
  46. Bug 1383: GLContext.isValidGLVersion() ensure only one profile bit is set max; Add OpenGL version 4.6 (details)
  47. Bug 1283: GLContextImpl.setGLFunctionAvailbility(..) calls: When leaving OpenGL version open, don't assume the profile (details)
  48. Bug 1383: GLContextImpl.setGLFunctionAvailbility(..): Ensure only one requested profile bit is set; Query GL_CONTEXT_PROFILE_MASK for hasCtxProfileBits (details)
  49. Bug 1383: Final fix: Always test GL3CompatNonCompliant and test on requested version/profile, also .. (details)
  50. Bug 1383: Tighten version/profile qualification: fail if: requested compat profile && has core profile (details)
  51. Bug 1385: Limit Quirk GL3CompatNonCompliant to Mesa < 18.2.0 (details)
  52. Bug 1384: Move remaining 'lose' property quirks into GLRendererQuirks.Override (details)
  53. Bug 1363: Java 11: Use new Android SDK 24 for Eclipse Android .classpath (details)
  54. check-junit: enhance output (make it a brief list of classes) (details)
  55. Bug 1363: Java 11: JAWTUtil: Use sun.awt.SunToolkit.awtLock/Unlock and disableBackgroundErase (impl. semantics) (details)
  56. Bug 1363: Java 11: Utilize UnsafeUtil.doWithoutIllegalAccessLogger(..) avoiding further unnecessary warnings (details)
  57. Bug 1390: Fix GLPixelBuffer.GLPixelAttributes::convert(GL, int, boolean) failure on unsupported GL data format/type (details)
  58. Bug 1391: Cleanup to submit fix: Update known Quirk range; BuggyColorRenderbuffer enables NoFullFBOSupport (details)
  59. Bug 1392: Add CapabilitiesFilter and GLCapabilitiesFilter supporting diverse reusable [GL]CapabilitiesImmutable list filter (details)
  60. Bug 1391 Bug 1392: Implement GLRendererQuirks DontChooseFBConfigBestMatch and No10BitColorCompOffscreen (details)
  61. Bug 1392: X11PixmapGLXDrawable::createPixmap() requires X11GLXGraphicsConfiguration having a valid XVisualInfo (details)
  62. Bug 1392: Simplify CapabilitiesFilter: Criteria -> Test, remove RemovalCriteria as all Test definitions may be used for anything. (details)
  63. Buig 1389: Fix SIGSEGV on OpenJDK11 on [NSApplicationAWT sendEvent:] (details)
  64. OSXUtil::IsMainThread() Utilize ThreadLocal storage flag avoiding unnecessary JNI calls (details)
  65. Bug 1393: Run orderFront0(=setVisible) async off-thread on AppKit after sync AppKit NSWindow creation (details)
  66. Bug 1393: MacOS/iOS: Issue updateSizePosInsets0 async to AppKit Main-Thread (details)
  67. Bug 1393: OSXUtil: Optionally inject Apple's 'Main Thread Checker' (details)
  68. NEWT Cleanup: WindowImpl::visibleChanged(ZZ): Remove unused 'defer' argument. Method only changes state. (details)
  69. NEWT Cleanup: WindowImpl: Drop unused 'defer' argument (state change only): insetsChanged + insetsVisibleChanged (details)
  70. Bug 1393: Add window position validation in TestDisplayLifecycle*NEWT (details)
  71. Bug 1394 - NEWT X11Window didn't gather inset at window creation (properly) (details)
  72. Bug 1393: Adding test cases setting visibility before enabling exclusive context thread animator (details)
  73. Bug 1393: MacOS: Implement AppKit EDTUtil operating solely on main-thread (details)
  74. MacOS: Add more debug log details (details)
  75. IOS: CGL.updateContextRegister(..) call on main-thread using AppKit (details)
  76. Bug 1393: MacOS: Wait for window position setting on main-thread (blocking) (details)
  77. test scripts: add --illegal-access=warn (details)
  78. make void* an opaque long in EGL generated class (details)
  79. detect gbm platform on linux when no other display server is running (details)
  80. add gbm java & build modifications (details)
  81. add native gbm implementation for drm and gbm initialization. (details)
  82. Bug 1156: EGL-GBM: Cherry pick changes .. (details)
  83. gbm/WindowDriver: make it compile and link (details)
  84. Bug 1156: EGL-GBM: Cleanup Code & Replace Newt GBM implementation (details)
  85. Bug 1156: EGL-GBM: Fix Cleanup (Newt package relocation / hack default GBM) (details)
  86. Bug 1156: GBM: FIXME: Hard link gbm and drm (temporary) (details)
  87. Bug 1156: Utilize internal glGetStringi (same as glGetString) - Robostness (details)
  88. Bug 1156: GBM: FIXME: Remove scanning for desktop-GL via EGL, see commit e674f4fa0e795bd67335025123f9af727d856f7d (details)
  89. Bug 1156: EGL-GBM: [Re]use EGL Platform type for eglCreatePlatformWindowSurface as well (like eglGetPlatformDisplay) (details)
  90. Bug 1156: EGL-GBM: Fix NativeWindowFactory native-window-type query according to Bug 1156 (details)
  91. Bug 1156: NEWT: NewtFactory.getCustomClass(..) Robustness (details)
  92. Bug 1156: GBM: Fixing native GBM code, surviving initialization (details)
  93. Bug 1156: GBM: Bring up incl GL rendering (TODO: GBM working page flip / sync) (details)
  94. Bug 1156 - Implement DRM/GBM Support for JOGL(EGL) and NEWT (details)
  95. Bug 1402: Standalone native test attempting to reproduce issue (details)
  96. Bug 1156: Using EGL.eglCreatePlatformWindowSurface(..) crashes on NVIDIA 430.40 on GNU/Linux X11 (details)
  97. Bug 1200: probeSurfacelessCtx works at least since NVIDIA 430.40. (details)
  98. Updating my eclipse jogl.build.launcher (details)
  99. Bug 1156: DRM/GBM Native test: Add Cursor (details)
  100. Bug 1156: LinuxKeyEventTracker: Fix 64bit InputEvent and attempt to only use keyboard event files (details)
  101. Bug 1156: DRM/GBM: Add full PointerIcon (Cursor) Support (details)
  102. Bug 1156: LinuxKeyEventTracker: Add '/dev/input/by-path/*-event-kbd' and more documentation (details)
  103. Bug 1156: HowToBuild: Add GNU/Linux dependencies to libdrm and libgbm (details)
  104. Adding test invocation script for linux aarch64 / Refined HowToBuild.html (details)
  105. Bug 1156: LinuxKeyEventTracker, LinuxMouseTracker: Adding property to disable each (details)
  106. Bug 1156: LinuxKeyEventTracker, LinuxMouseTracker: Robostness (+NEWT fix) (details)
  107. Bug 1156: Remove verbose print in native CreatePointer.. (details)
  108. Scripts: Macos /opt-share -> /usr/local (Catalina Read-Only) (details)
  109. Scripts: Tests No Verbose (details)
  110. VC4: Broadcom uses libbrcmEGL.so, libbrcmGLESv2.so, libbrcmOpenVG.so and libbrcmWFC.so since 7 Jul 2016 (details)
  111. VC4: Only load Broadcom EGL driver when guessVCIVUsed (details)
  112. Bug 1405: Provide stand alone demo launcher reducing complexity (details)
  113. Bug 1406: DRMUtil: Probe DRM device whether it has resources attached (and is the desired one) (details)
  114. build-test.xml: fix (unused) java.part.demo.mobile (details)
  115. Bug 1406: demos.Launcher0: More tests .. (details)
  116. Bug 1406: demos.Launcher0: More code path reduction: useMultiplePointerIcon must be enabled via -pointerIcon (details)
  117. Bug 1156, Bug 1406: NEWT DRM/GBM WindowDriver.surfaceSwap(): Pass swapInterval to optionally skip VSYNC if 0 (details)
  118. Bug 1406, Bug 1405: demos.Launcher0: No sleep w/o animator. VSYNC setting rules (launch script w/ key tracker) (details)
  119. NEWT: Align DisplayImpl.createPointerIcon(..) behavior; PointerIconImpl.validatedHandle() shall not create native resource. (details)
  120. Bug 1408: NEWT DRM/GBM DisplayDriver: Add device locking/unlocking decoration for PointerIcon operations (details)
  121. Bug 1408: NEWT DisplayImpl PointerIcon: Property 'newt.disable.PointerIcon' disables PointerIcon usage in general. (details)
  122. Bug 1408: NEWT DRM/GBM WindowDriver: Adding glFinish() before eglSwapBuffers(..) just in case .. (details)
  123. Bug 1156: NEWT DRM/GBM PointerIcon: Use hotX/hotY drmModeSetCursor2(..), hence pass PointerIconImpl through (details)
  124. Bug 1406, Bug 1405: demos.Launcher0: Allow passing GLEventListener via '-demo classname' (details)
  125. NEWTDemoListener: Fix NPE (details)
  126. Bug 1156, Bug 1401: Disable DesktopGL on EGL w/ DRM/GBM earlier in initialization (details)
  127. Bug 1406, Bug 1405: demos.Launcher0: Defaults to use multiple PointerIcons again (details)
  128. LinuxKeyEventTracker: Factor out 'sendKeyEvent(..)' call with null check. (details)
  129. Bug 1405, Bug 1406, Bug 1408: Resolution: Call ReleasePrimitiveArrayCritical(..) in GetPrimitiveArrayCritical(..) code path! (details)
  130. PointerIcon new instances are always valid .. (details)
  131. Bug 1409: GNU/Linux DRM Console: Clear stdin before exit and don't act on stdin in vsync-wait-loop (details)
  132. Fix regression of commit 2b899a55e365aa03aeb234187600526777c1a9ac (details)
  133. Bug 1410: Fix NEWT PointerIcon Lifecycle (destroy and clean references @ closing) (details)
  134. Bug 1412 - JNI: NEWT Check & Handle Exception after calling back into Java (X11Display + X11Window) (details)
  135. Bug 1413 - NEWT X11Window: NewtWindows_getFrameExtends(..) may hang on XPeekEvent(..) (details)
  136. Bug 1412 - JNI: NEWT Check & Handle Exception after calling back into Java (NewtCommon.c) (details)
  137. Bug 1412: Fix commit a8c2de110a2254af137a3d99007cc77e3ecd8078 (details)
  138. Bug 1411 - Unit Test Subset for DRM/GBM JOGL(EGL) and NEWT (details)
  139. Bug 1156: DRM/GBM NEWT: Clarify drmModeSetCrtc(..)'s x/y parameter and earmark spanning across monitors (details)
  140. Bug 1200: GLRendererQuirks.NoSurfacelessCtx still persists on Linux/X11 NVIDIA 440.36 using FBO (details)
  141. Bug 1393: Make window position check more tolerant (2x insets or 64 pixels, whichever is greater) (details)
  142. NEWT WindowImpl: Wording in comment (details)
  143. Bug 1415: ExclusiveContextBase00+10: Utilize one Animator per Window for clean ExclusiveContextThread (details)
  144. Bug 1415: MacOS: Disable multiple Window creation on ExclusiveContextThread in test case (details)
  145. Bug 1393: Resolve EDT + AppKit Deadlock with native parenting: Fetch parent screen position directly w/o locking. (details)
  146. Bug 1393: Apply 12eed5d38616d23b6e8e2e5b497dfc2f54d90c90 to IOS, avoiding AppKit/EDT deadlock for parent screen location lookup (details)
  147. Bug 1156: NEWT Window: Better handling of fixed console case: Not resizable and not repositionable. (details)
  148. Bug 1416 - Allow EGLDrawableFactory re-creation after shutdown() - be functional (details)
  149. Bug 852: TestCPUSourcingAPINEWT Reference the bug entry and add a little reminder (details)
  150. Bug 1156: NEWT WindowDriver: Handle case with requested CapabilitiesImmutable not being GLCapabilitiesImmutable (details)
  151. Bug 1411: DRM/GBM JOGL: Specify 'junit.run.console' unit test target. (details)
  152. Bug 1411 DRM/GBM JOGL: Fix 'junit.run.console' unit test target, use it in respective (renamed) scripts. (details)
  153. Bug 1411 DRM/GBM JOGL: Fix 'junit.run.console' - three times a charm? (details)
  154. Bug 1411 DRM/GBM JOGL: Fix 'junit.run.console' - fourth times (details)
  155. Bug 1417 - Android: Adopt to gluegen/make/scripts/setenv-android-tools.sh changes (details)
  156. Bug 1156: Seperate DRM/GBM NEWT native library from main head NEWT native library (details)
  157. Bug 1417 - Android: Disable native FFmpeg binding for Android (details)
  158. Bug 1156 Regression (Bug 1417): Probe whether 'eglGetPlatformDisplay(..)' is available before using (details)
  159. Bug 1417 - Android: Add adb scripts for x86 [re-]install (details)
  160. Bug 1417 - Android: APK Manifest [min=21, target=28]; Adopt to GlueGen's 'aapt.signed' d8 usage (details)
  161. Bug 1287 - Complete Immutable glNamedBufferStorage support in GLBufferObjectTracker (details)
  162. Bug 1347: Resolve Merged EGL/Desktop Profile Mapping (details)
  163. Reuse Gluegen's Bitfield.Util for 'PowerOf2' computation (details)
  164. Gears* tests: Obey verbose flags (details)
  165. Bug 1312: GLContextShareSet Cleanup (details)
  166. Bug 1312: GLContextShareSet: Utilize WeakIdentityHashMap for shareMap and its destroyedShares (details)
Commit c1869ee0fed3ca982a8dbc59110dc0f0e83b8545 by xerxes
doc/misc/robovm.txt: Writedown howto use JogAmp in combination with RoboVM AOT
The file was addeddoc/misc/robovm.txt (diff)
Commit 20dc629cb92f48412090ab020c1d5a282ceaa268 by xerxes
doc/misc/robovm.txt: Mention -rvm: runtime flags
The file was modifieddoc/misc/robovm.txt (diff)
Commit cdef0114f029698d129762a5da9edbf77de174c7 by xerxes
doc/misc/robovm.txt: Explore low footprint deployment 6.3Mb
The file was modifieddoc/misc/robovm.txt (diff)
Commit 8b1e9185aedc070b5f6cddfe361f54dc5d310eec by xerxes
doc/misc/robovm.txt: Update to JogAmp JOGL 2.3.2 and last libre RoboVM 1.6.1
The file was modifieddoc/misc/robovm.txt (diff)
Commit 771b90f3453bdb94d6a4a3833ba72cb31f3d4997 by Sven Gothel
Update CSS; Add responsive viewport design tag
The file was modifiedwww/index.html (diff)
Commit ea3edf9cfc6b6fda9780c540e1de099c97207bc1 by Sven Gothel
Update CSS; Add responsive viewport design tag
The file was modifieddoc/deployment/JOGL-DEPLOYMENT.html (diff)
The file was modifieddoc/HowToBuild.html (diff)
The file was modifieddoc/Overview-OpenGL-Evolution-And-JOGL.html (diff)
The file was modifieddoc/userguide/index.html (diff)
The file was modifieddoc/NEWT-Overview.html (diff)
Commit 154e91978498d8b6db9ce34a1f06b298bcf4c361 by Sven Gothel
Bug 1381: Keep host PixelFormat functional using requested immutable alphaRequested + add appropriate API doc
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/awt/AWTGLReadBufferUtil.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java (diff)
Commit bba73bc096250a3c7fc036d84b1ea054d1b70b06 by Sven Gothel
iOS: Initial working commit supporting iOS (ipad pro 11)

using our OpenJFK 9 x86_64 and arm64 build.

Test demo class is 'com.jogamp.opengl.demos.ios.Hello',
residing in the new demo folder 'src/demos/com/jogamp/opengl/demos/ios/Hello.java'.

This commit does not yet include a working NEWT
specialization for iOS, but it shall followup soon.

Instead this commit demonstrates JOGL operating on
native UIWindow, UIView and CAEAGLLayer as provided by
Nativewindow's IOSUtil.

Test Video https://www.youtube.com/watch?v=Z4lUQNFTGMI

+++

Notable bug: The FBO used and sharing the COLORBUFFER RENDERBUFFER
memory resources with CAEAGLLayer to be displayed in the UIView
seemingly cannot handle GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24
or GL_DEPTH_COMPONENT32 depth buffer - none at all (Device + Simulation).

Therefor the default demo GLEventListener chosen here
don't require a depth buffer ;-)

This issue can hopefully be mitigated with other means
than using a flat FBO sink similar to FBO multisampling.
The file was addedmake/config/jogl/eagl-ios.cfg (diff)
The file was addedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLGraphicsConfigurationFactory.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/ios/Hello0.java (diff)
The file was addedsrc/newt/native/IOSNewtUIWindow.m (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/GearsES2.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/GearsObjectES2.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryES2OffscrnCapsNEWT.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/PointsShader.vp (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/texture01_xxx.vp (diff)
The file was modifiedmake/scripts/make.jogl.all.macosx.sh (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/ruler.fp (diff)
The file was modifiedsrc/nativewindow/native/macosx/OSXmisc.m (diff)
The file was addedsrc/newt/native/JVM_JNI8.c (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGL2OffscrnCapsNEWT.java (diff)
The file was addedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLGraphicsConfiguration.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/GearsObject.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
The file was addedmake/stub_includes/opengl/ios-window-system.h (diff)
The file was addedmake/stub_includes/ios/QuartzCore/CAEAGLLayer.h (diff)
The file was addedsrc/nativewindow/native/ios/CAEAGLLayered.h (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDynamicLibraryBundleInfo.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/default.vp (diff)
The file was addedsrc/nativewindow/classes/com/jogamp/nativewindow/ios/IOSGraphicsDevice.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/PointsShader.fp (diff)
The file was addedsrc/newt/native/IOSUIWindow.m (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/RedSquareES2.java (diff)
The file was addedsrc/nativewindow/native/ios/NativeWindowProtocols.h (diff)
The file was addedsrc/jogl/classes/jogamp/opengl/DummyGLExtProcAddressTable.java (diff)
The file was modified.classpath (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/PointsDemo.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile00NEWT.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/gears.fp (diff)
The file was addedsrc/jogl/native/JVM_JNI8.c (diff)
The file was addedsrc/nativewindow/classes/jogamp/nativewindow/ios/IOSUtil.java (diff)
The file was modifiedmake/scripts/setenv-jogl.sh (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/elektronenmultiplizierer_port.fp (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/landscape.fp (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/texsequence_xxx.fp (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/texture01_xxx.fp (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/RedSquareShader2.fp (diff)
The file was addedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLDrawableFactory.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/landscape.vp (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.java (diff)
The file was addedsrc/nativewindow/native/ios/CAEAGLLayered.m (diff)
The file was addedsrc/newt/native/IOSNewtUIWindow.h (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/RedSquareShader.java (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/ios/DisplayDriver.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLDrawableFactory.java (diff)
The file was modifiedmake/build-common.xml (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/ios/Hello.java (diff)
The file was addedmake/scripts/make.jogl.all.ios.amd64.sh (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/gears.vp (diff)
The file was addedmake/stub_includes/macosx/UIKit/UIView.h (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/fbo-mrt-2.fp (diff)
The file was addedmake/stub_includes/ios/window-system1.c (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedExternalContextAWT.java (diff)
The file was modifiedmake/build-test.xml (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/fbo-mrt-1.fp (diff)
The file was modifiedmake/build-jogl.xml (diff)
The file was addedmake/stub_includes/macosx/UIKit/NSOpenGLLayer.h (diff)
The file was addedmake/stub_includes/ios/OpenGLES/EAGLDrawable.h (diff)
The file was modifiedmake/build.xml (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLGLnDynamicLibraryBundleInfo.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.java (diff)
The file was modifiedmake/scripts/tests-x64.sh (diff)
The file was addedsrc/nativewindow/native/ios/IOSmisc.m (diff)
The file was addedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLDrawable.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/JoglVersion.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGLnBitmapCapsNEWT.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/PointsDemoES2.java (diff)
The file was modifiedmake/build-nativewindow.xml (diff)
The file was addedmake/scripts/make.jogl.all.ios.arm64.sh (diff)
The file was modifiedmake/scripts/tests-osx-x64.sh (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/LandscapeES2.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/texsequence_xxx.vp (diff)
The file was addedsrc/nativewindow/classes/jogamp/nativewindow/ios/IOSDummyUpstreamSurfaceHook.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/fbo-mrt-2.vp (diff)
The file was addedsrc/jogl/native/ios/IOSWindowSystemInterface.m (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/mgl_default_xxx.fp (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/texture02_xxx.fp (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was addedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLContext.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/elektronenmultiplizierer_development.fp (diff)
The file was addedmake/stub_includes/ios/QuartzCore/CALayer.h (diff)
The file was addedmake/stub_includes/macosx/UIKit/NSOpenGL.h (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGLProfileDeviceNEWT.java (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/ios/MacKeyUtil.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/RedSquareShader.vp (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/fbo-mrt-1.vp (diff)
The file was addedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLDynamicLibraryBundleInfo.java (diff)
The file was addedsrc/nativewindow/native/JVM_JNI8.c (diff)
The file was addedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSOnscreenEAGLDrawable.java (diff)
The file was addedsrc/jogl/native/ios/IOSWindowSystemInterface.h (diff)
The file was addedmake/stub_includes/macosx/UIKit/NSOpenGLView.h (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLProfile.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/RedSquareShader.fp (diff)
The file was addedmake/stub_includes/ios/OpenGLES/EAGL.h (diff)
The file was addedmake/stub_includes/ios/UIKit/UIKit.h (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/FBObject.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/javafx/JFXAccessor.java (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/es2/shader/mgl_default_xxx.vp (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile01NEWT.java (diff)
Commit 203f795cd3332d6d61c210c8b7901de069d9166a by Sven Gothel
iOS: Clean up promotion of EAGLLayer use down to FBObject

Initial commit bba73bc096250a3c7fc036d84b1ea054d1b70b06 hacked
its path using a context global EGLLayer instance attachement.
The hack was good for the first demo, however, it forbid using
other FBObjects etc on the way.

Properly specifying FBObject.Attachment.StorageDefinition,
allowing the user to inject code for selected FBO attachements
to define their storage. This might be useful for different
platforms as well - however, it is OS agnostic and instance specific now.

In this sense, GLFBODrawableImpl, hosting FBObject,
has a more specific instance of FBObject.Attachment.StorageDefinition
for color-renderbuffer. It is passed along newly created color renderbuffer.

GLDrawableFactoryImpl.createGLDrawable uses a derived interface,
OnscreenFBOColorbufferStorageDefinition which is defined in
IOSEAGLDrawableFactory and return by its getter.
GLDrawableFactoryImpl.createGLDrawable is therefor platform agnostic again.

Bottom line is, as more platforms will be added, these semi-public interfaces
have to adapt to suit them all ..

All this due to iOS architecture for 'onscreen rendering' using a FBO
which shares its color renderbuffer storage with the EAGLLayer,
associated with the UIView. A bit weird maybe in first sight,
but efficient for creating cheap hardware design ;-)
Only criticism here is that Apple didn't bother using EGL and an extension.
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/FBObject.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLDrawableFactory.java (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/ios/Hello.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLContext.java (diff)
Commit 019a6fe3c2f5efe550d41f7262b8010d3cfa0aa0 by Sven Gothel
iOS: EAGLLayer FBO w/ DEPTH buffer workaround 1

Notable bug as mentioned before:
The FBO used and sharing the COLORBUFFER RENDERBUFFER
memory resources with CAEAGLLayer to be displayed in the UIView
seemingly cannot handle GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24
or GL_DEPTH_COMPONENT32 depth buffer - none at all (Device + Simulation).

This workaround re-binds the used color renderbuffer for EAGLLayer presentation
at the end of the FBO drawable instantiation.

FBO DEPTH buffer works now as demonstrated w/ GearsES2.

We have to issue one more test now, using a demo using an FBO itself.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
The file was modifiedsrc/nativewindow/native/ios/IOSmisc.m (diff)
Commit 9a12ff413a216b7d591950e9d5fc9a261786bc00 by Sven Gothel
NEWT: Align native MacOS / IOS file- and classnames
The file was modifiedmake/build-newt.xml (diff)
The file was addedsrc/newt/native/IOSWindow.m (diff)
The file was removedsrc/newt/native/NewtMacWindow.m (diff)
The file was addedsrc/newt/native/MacNewtNSWindow.m (diff)
The file was removedsrc/newt/native/IOSUIWindow.m (diff)
The file was removedsrc/newt/native/NewtMacWindow.h (diff)
The file was modifiedsrc/newt/native/MacWindow.m (diff)
The file was addedsrc/newt/native/MacNewtNSWindow.h (diff)
Commit f006cb6a0794c0d4fdfc59ded579fc3d91551d0b by Sven Gothel
Fix build test jar regression (commit bba73bc096250a3c7fc036d84b1ea054d1b70b06)

java.part.test.all was erroneously removed, redefined.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedmake/build-test.xml (diff)
Commit 7fc01d666ae35bd789232b18f8d3f2df7146e4d3 by Sven Gothel
NEWT WindowImpl.doPointerEvent: Use native short[] for pNames

and not int[], this avoid copying in case given pNames are normalized.

This is benecifical for X11, Windows and the upcoming iOS touch/pointer support.
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/native/X11Display.c (diff)
Commit a307ab505ed3fb5fe64f01478ce6d2933cd26c7d by Sven Gothel
Copyright: Add missing Copyright tag

Adding the missing JogAmp copyright tag on certain files.

Currently in debate whether 'JogAmp Community' is a legal Copyright tag in the first place,
we might need to add (or replace it with) my authorship.
However, as authorship is well documented via the git repository,
this should be no real world issue.
The file was modifiedsrc/newt/native/MacNewtNSWindow.m (diff)
The file was modifiedsrc/newt/native/NewtCommon.c (diff)
The file was modifiedsrc/newt/native/AndroidWindow.c (diff)
The file was modifiedsrc/newt/native/KDWindow.c (diff)
The file was modifiedsrc/newt/native/MacWindow.m (diff)
Commit f74e9c1597612edbff81425d4f2f528da5ebaf43 by Sven Gothel
iOS / MacOS: PixelScale Update

- IOSUtil/OSXUtil: Return float value and refine name to GetScreenPixelScale*

- WindowDriver's updateMaxScreenPixelScaleByDisplayID(..) and updateMaxScreenPixelScaleByWindowHandle(..)
will only update the maxPixelScale, as actual user pixelSize change should not be triggered here.

A user pixelSize adaption to the changed underlying scale capabilities (e.g. switch monitor)
should be supported by the implemented WindowDriver's: updatePixelScale(..) called by native code.
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java (diff)
The file was modifiedsrc/nativewindow/native/macosx/OSXmisc.m (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/ios/IOSUtil.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/nativewindow/native/ios/IOSmisc.m (diff)
The file was modifiedsrc/newt/native/MacNewtNSWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java (diff)
Commit d488ff097fc329a3185c6c64a8a6908e1f9f63d6 by Sven Gothel
NEWT iOS / MacOS: Simplify setJavaWindowObject
The file was modifiedsrc/newt/native/IOSWindow.m (diff)
The file was modifiedsrc/newt/native/MacWindow.m (diff)
Commit 0f97d9292cc7ff97f61f68b69c5a375cc023a5af by Sven Gothel
NEWT iOS: Support Multi-Touch Events, PixelScale, ..

Note: Two subsequent commit will add some required change in the
native UIWindow/UIView creation methods to actually make the NEWT view being displayed ;-)

The demo 'com.jogamp.opengl.demos.ios.Hello' demonstrated a standard NEWT application
running on iOS.
Previous NativeWindow wrap-around demo is preserved in 'com.jogamp.opengl.demos.ios.Hello1'.

Tested on ipad 11'inch arm64 and x86_64 simulation:
- Using GearsES2 demo
- PixelScale 1f, 2f and 0f - last two using max pixel scale
- Touch w/ GearsES2 works:
-- 1 finger rotate
-- 2 finger drag
-- 2 finger pinch-zoom gesture detection
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedsrc/newt/native/IOSNewtUIWindow.h (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/newt/native/NewtCommon.h (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/nativewindow/native/ios/IOSmisc.m (diff)
The file was modifiedsrc/newt/native/IOSWindow.m (diff)
The file was modifiedsrc/newt/native/MacWindow.m (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/ios/Hello.java (diff)
The file was modifiedsrc/newt/native/IOSNewtUIWindow.m (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/ios/Hello1.java (diff)
The file was modifiedsrc/newt/native/MouseEvent.h (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2SimpleNEWT.java (diff)
The file was modifiedsrc/newt/native/NewtCommon.c (diff)
Commit 004c67c73a0309158c30929cd0d6513e23f34803 by Sven Gothel
NEWT iOS WindowDriver: native UIWindow/UIView creation change

Astonishingly, the original code path doesn't show up the CAEAGL View/Layer (only the red test background)
even though t is 1:1 equal to this alternative calls.
Keeping the original path intact for future validation, another round of hours of analysis.

The original code path will be removed in the next commit.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/IOSWindow.m (diff)
Commit b4fef61928cfd379dcb956e17a63495a18444f8a by Sven Gothel
NEWT iOS WindowDriver: Remove unused orig UIWindow/UIView creation path

See commit 004c67c73a0309158c30929cd0d6513e23f34803
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/IOSWindow.m (diff)
Commit 29ad35ab598b6d97367e2e9763f0d2a96c52bcaa by Sven Gothel
NEWT iOS: Support translucent windows

and remove the redColor default background (debug only).

IOSUtil.CreateUIWindow(..) also gets its 'visible' attribute,
to be true only for demo Hello1 code - false for intended Proxy Surface Hook.
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/ios/IOSDummyUpstreamSurfaceHook.java (diff)
The file was modifiedsrc/nativewindow/native/ios/IOSmisc.m (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/ios/Hello.java (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/ios/Hello1.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/ios/IOSUtil.java (diff)
The file was modifiedsrc/newt/native/IOSWindow.m (diff)
Commit 56db83dab0c8a70f1177425c557b7b664e06fb47 by Sven Gothel
iOS: IOSUtil_CreateGLViewDemoA0 tests native UIWindow parenting (works)
The file was modifiedsrc/nativewindow/native/ios/IOSmisc.m (diff)
Commit df7c0ad3b98d3520f023e026b6163bcba2c7ee7e by Sven Gothel
Fixed native header generation for native windowing code
The file was modifiedmake/build-nativewindow.xml (diff)
Commit 14e0740459036f57a7b06ca04b66e60a7eef33ed by Sven Gothel
Removed obsolete tools.jar

In Java 9+, the tools.jar file also no longer exists in Java
installations (it's now stored in a secret non-JAR format), so removed
it.
The file was modifiednbproject/ide-file-targets.xml (diff)
The file was modifiednbproject/project.xml (diff)
Commit eca5d53ab4370d73362dab8d1f0cc3eb974f16a8 by Sven Gothel
Removed references to non-existent method getPeer() in debug code
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/awt/GLCanvas.java (diff)
Commit 8579724abe960693e2f8f853a4d651d095ca1ca7 by Sven Gothel
Removed import that caused GLUgl2/GLUgl2ProcAddressTable not to compile
The file was modifiedmake/config/jogl/glu-gl2.cfg (diff)
Commit 0268e69fceb87ff7eeb1b9c61ceccf532f0cd83b by Sven Gothel
Bug 1363: Java 11: javah replacement: Use conditional ant targets instead of branches, also re-add bootclasspath

Refines commit df7c0ad3b98d3520f023e026b6163bcba2c7ee7e
The file was modifiedmake/build-nativewindow.xml (diff)
Commit 229adcb91ecb47391b93bb1c36453262acf70ff6 by Sven Gothel
Bug 1363: Java 11: Adapt build scripts for java11
The file was modifiedmake/scripts/make.jogl.all.android-armv6-cross.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.linux-aarch64-cross.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.solaris-x86.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.linux-x86_64-clang.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.linux-x86_64.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.win64.bat (diff)
The file was modifiedmake/scripts/make.jogl.all.android-aarch64-cross.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.linux-x86.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.ios.arm64.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.linux-armv6hf-cross.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.win32.bat (diff)
The file was modifiedmake/scripts/make.jogl.all.android-x86-cross.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.generic.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.ios.amd64.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.solaris-x86_64.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.linux-x86-clang.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.macosx.sh (diff)
Commit 63e31d05ad9f1df99663997c2f04ad086f29c8fc by Sven Gothel
Removed remaining bootclasspath and javah; build now works on Windows 10

(sgothel: This cherry picked merge will be refined)

Also removed a couple of duplicate "source" tags in javac tasks.
The file was modifiedmake/build-oculusvr.xml (diff)
The file was modifiedmake/build-staticglgen.xml (diff)
The file was modifiedmake/build-nativewindow.xml (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedmake/build-test.xml (diff)
The file was modifiedmake/build-jogl.xml (diff)
Commit 2ea5948b6133c4dc82533f9ce4a8fd56eb04eda2 by Sven Gothel
Bug 1363: Java 11: bring back bootclasspath for java 8 target accuracy

Was removed mostly via commit 63e31d05ad9f1df99663997c2f04ad086f29c8fc

We have 2 choices building for java8 under java11:
1) use source, target and bootclasspath options
2) use release option

It is said that (2) is not yet accurate enough
and (1) shall be favored as it guarantees no java>8 class leak
from the build JDK.

This patch is isolated to allow removal of said bootclasspath
if desired by anybody
The file was modifiedmake/build-test.xml (diff)
The file was modifiedmake/build-staticglgen.xml (diff)
The file was modifiedmake/build-jogl.xml (diff)
The file was modifiedmake/build-oculusvr.xml (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedmake/build-nativewindow.xml (diff)
Commit 2871688753729ae03ab23bc9043af5012bfee8c6 by Sven Gothel
Bug 1363: Java 11: Complement javah replacement: Add new iOS

Complements patch 63e31d05ad9f1df99663997c2f04ad086f29c8fc
The file was modifiedmake/build-newt.xml (diff)
Commit 2dd5b6040858cbec29710be8e68374f46121a39a by Sven Gothel
Bug 1363: Java 11: Aligned HowToBuild.html w/ GlueGen's updated version
The file was modifieddoc/HowToBuild.html (diff)
Commit 4eaa83358b6518c667e9517685eeaafaef692656 by Sven Gothel
Bug 1363: Java 11: Adapt scripts for java11 (cont)
The file was removedmake/scripts/setvc9-jogl.bat (diff)
The file was modifiedmake/scripts/tests-solx32.sh (diff)
The file was modifiedmake/scripts/tests-x64.bat (diff)
The file was modifiedmake/scripts/tests-osx-x64-mainthread.sh (diff)
The file was removedmake/scripts/make.jogl.all.linux-x86_64.java7.sh (diff)
The file was modifiedmake/scripts/test-win32-smb_share.bat (diff)
The file was modifiedmake/scripts/tests-osx-x64.sh (diff)
The file was modifiedmake/scripts/tests-osx-x64-custom.sh (diff)
The file was modifiedmake/scripts/tests-x32.bat (diff)
The file was modifiedmake/scripts/tests-x64.sh (diff)
The file was modifiedmake/scripts/tests-javaws-x64.bat (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was removedmake/scripts/make.jogl.all.macosx-java6.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.macosx.sh (diff)
The file was removedmake/scripts/tests-macosx64-junit-java7.sh (diff)
The file was modifiedmake/scripts/tests-x32-dbg.bat (diff)
The file was modifiedmake/scripts/tests-x64-custom.sh (diff)
The file was modifiedmake/scripts/tests-x64-dbg.bat (diff)
The file was modifiedmake/scripts/tests-osx-x32.sh (diff)
The file was removedmake/scripts/tests-osx-x64-java6.sh (diff)
The file was modifiedmake/scripts/tests-solx64.sh (diff)
The file was modifiedmake/scripts/tests-x32.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.ios.amd64.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.ios.arm64.sh (diff)
Commit c834ffbeffe454f758089c6ee17f8863acc3e7c5 by Sven Gothel
Fixed clean target so it doesn't fail if GlueGenTask is not present

If gluegen was cleaned, the GlueGenTask would be absent, which would
cause a failure in jogl clean (even though GlueGenTask isn't needed in
the clean target). So, modified the jogl build so it doesn't load
GlueGenTask in the clean target.

Orig commit by Wade Walker.
This alternative patch uses the ant target common.gluegen.init
to define the 'gluegen' task post gluegen compile check and pre 'gluegen' call,
avoiding the if-then-else ant-task state query:
     <equals arg1="${ant.project.invoked-targets}" arg2="clean" />
The file was modifiedmake/build-nativewindow.xml (diff)
The file was modifiedmake/build-oculusvr.xml (diff)
The file was modifiedmake/build-common.xml (diff)
The file was modifiedmake/build-jogl.xml (diff)
Commit ddd64dc3eb0172654aff5a4c61a389b23d92d0e3 by Sven Gothel
Bug 1363: Java 11: (Hack) Inject OpenJFX [basic, graphics] into CLASSPATH

The OpenJDK JAR files within this folder
only conveniently serve to compile JOGL on all platforms.

They were extracted from Debian 10's 'libopenjfx-java' package version 11.0.2+1-1

See copyright (also extracted from package above) for (c) details.

Note: This is similar to our SWT injection etc.
The file was addedmake/lib/openjfx/11/README.txt (diff)
The file was addedmake/lib/openjfx/11/javafx-base-11.jar (diff)
The file was modifiedmake/build-common.xml (diff)
The file was addedmake/lib/openjfx/11/copyright (diff)
The file was addedmake/lib/openjfx/11/javafx-graphics-11.jar (diff)
Commit e1c8add69973b0eae9a87cf2181a0f1cbbe62f4b by Sven Gothel
Removed illegal reflective access to sun.java2d.opengl.OGLUtilities

We were reading a variety of surface type definitions from
sun.java2d.opengl.OGLUtilities using reflection, which has thrown
warnings since Java 9 and which soon will become illegal. For now, just
hard-coded these types to remove the warnings that happen during static
initialization. Eventually the entire Java2D class will have to be
revamped if we want to be able to actually use it.
The file was modifiedsrc/jogl/classes/jogamp/opengl/awt/Java2D.java (diff)
Commit 13c6bbbde5ea476d60e0a2f04a5172d3302d0edd by Sven Gothel
Bug 1363: Java 11: Don't use sun.awt.SunToolkit.awtLock/Unlock on Java9+ [illegal reflective access]

Avoid illegal reflective access to sun.awt.SunToolkit.awtLock/Unlock on Java9+

Apparently these give a performance benefit on X11 by avoiding taking
the AWT global lock, and instead only taking a Java lock defined in
sun.awt.SunToolkit. But this has thrown a warning since Java 9, and will
soon be illegal. If a performance problem remains on X11, we'll need to
find another solution.

Orig patch by Wade Walker.
This patch only skips utilizing said API on Java9+
while maintaining orig code path for Java8.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
Commit c7858dc766cb9f76ac8f543796b1587a0f8f9279 by Sven Gothel
Bug 1363: Java 11: Don't use GraphicsDevice.getScaleFactor() on Java9+ [illegal reflective access]

Use non-reflective method to get the pixel scale on Java9+

It's now possible to use GraphicsConfiguration.getDefaultTransform()
instead of using reflection to get the pixel scale, which eliminates an
illegal reflective access warning.

Orig patch by Wade Walker
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
Commit 24b75b2e91ec5f101b19fa24aa3804adb3819ebf by Sven Gothel
Bug 1363: Java 11: Use getPixelScale standard method even on Mac under Java9+

Changed getPixelScale to use standard method, even on Mac

Previously it used a Mac-specific method, but the new standard method of
device.getDefaultConfiguration().getDefaultTransform() seems to work on
Mac, so use it instead to avoid illegal reflective access warnings.

Orig patch by Wade Walker.
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
Commit 7ec068e0c95a230101450cc80031f76770a0cd49 by Sven Gothel
Bug 1363: Java 11: Resolve unsupported JAWTUtil.getMonitorDisplayID(..)

Previous commits removed access to OSX's GraphicsDevice.getCGDisplayID()
on Java9+, avoiding illegal reflective access.

Here we JAWTUtil.getMonitorDisplayID(..) simply returns null
if Java9 or !OSX, so the sole NewtFactory caller falls back
to the alternative working solution.

Orig patch Wade Walker:
    This was used on Mac OS only to create a MonitorDevice in
    NewtFactoryAWT. But there was a fallback method for creating
    MonitorDevice, and testing with TestGearsES2GLJPanelAWT shows that the
    fallback method seems to give identical results on Mac, so changed to
    just use the fallback method (which is now the only method) everywhere.
    This gets rid of an illegal reflective access.
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/awt/NewtFactoryAWT.java (diff)
Commit a17e86a07e53e47c778c6e36341c6c0e6874991e by Sven Gothel
Reverting erroneous junit-test task condition (ant build)

as introduced while hacking on iOS.

- Builds on MacOS, Windows and GNU/Linux now.

- All but 2 tests passed on Windows

- GNU/Linux AMD GPU regression
-- 1) No compat profiles on X11 device
-- 2) Remaining core only profiles disclose buggy GLProfile selection
-- This needs to be fixed pre-release
The file was modifiedmake/build.xml (diff)
Commit 1f0d7d4b416521ef56fdc81b28d128c7f3279188 by Sven Gothel
Bug 1101: Add missing disposal of Pipelined_QuadRenderer's VBOs

Original author is 'Tof'
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/awt/TextRenderer.java (diff)
Commit 209bb2f0dc3418d168dc6887802bf4368b6d6f4e by Sven Gothel
Bug 1384: Allow GLRendererQuirks to be overridden by user properties

Allow GLRendererQuirks to be overridden by user properties,
allowing to either force (inject) a quirk by a user property
or to ignore a quirk by a user property.

This helps:
- debugging certain quirk behavior (See Bug 1383)
- allowing a user to customize the quirk setting

+++

This patch also refines the quirk: GLNonCompliant -> GL3CompatNonCompliant,
i.e. constraints its semantics to GL3 compatible context.

+++

This patch also removed useless code of GLRendererQuirk,
i.e. the 'int[] quirk' array arguments which are nonsense
or wasteful, as we operate with bitmasks.
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 33531f146a5f92af65b458b422e673692806cecd by Sven Gothel
JoglVersion.getGLInfo: Increase robustness of debug output
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLProfile.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/JoglVersion.java (diff)
Commit 48d67487dba70f8fd3943ed220f3b774c0bec023 by Sven Gothel
GLRendererQuirks: Fix typo
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff)
Commit c896476cc309ab9705329da2c9776a6c481fdb5f by Sven Gothel
Bug 1383: Cleanup GLContextImpl.setGLFunctionAvailability(..): Parameter, variables and clip at 180 line width

This cleanup became necessary to re-analyse the code after quite some time.

Using clear immutable input input parameters for the requested OpenGL version+profile
and mutable current state 'has'.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 5d27c6400a472517e08a86165878f2360d4077bc by Sven Gothel
Bug 1383: GLContext.isValidGLVersion() ensure only one profile bit is set max; Add OpenGL version 4.6
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLContext.java (diff)
Commit 9a5f4c464404c1cde2a9b0eabdef39969349fda0 by Sven Gothel
Bug 1283: GLContextImpl.setGLFunctionAvailbility(..) calls: When leaving OpenGL version open, don't assume the profile

The profile should be queried at runtime like the version in these situations.
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11ExternalGLXContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXExternalCGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsExternalWGLContext.java (diff)
Commit 615359e6a70f88bbe3db9664d27c7a4276e58415 by Sven Gothel
Bug 1383: GLContextImpl.setGLFunctionAvailbility(..): Ensure only one requested profile bit is set; Query GL_CONTEXT_PROFILE_MASK for hasCtxProfileBits

and finally guess the GL profile bit if none could be determined:
  'isESReq ? GLContext.CTX_PROFILE_ES : GLContext.CTX_PROFILE_COMPAT'
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit bd4be8b54a43b95d7dec90f6dbd0905987ad7605 by Sven Gothel
Bug 1383: Final fix: Always test GL3CompatNonCompliant and test on requested version/profile, also ..

also, if requested version is within GL3CompatNonCompliant valid range, i.e. < 3.1,
the detected actual version will be clipped for valid mapping to the requested data.

Here it might be essential to know, that all versions are being 'scanned'
via mapGLVersions from high to low.
Therefor Version 3.0 would be tried before 2.0
and both will be mapped to the clipped actual version 3.0.
The true actual version could be the maximum, however,
using the very same would lead to trying an invalid unavailable GLProfile.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLProfile.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 21f82eb8b74a60cc8a869e073e124d44c75f217e by Sven Gothel
Bug 1383: Tighten version/profile qualification: fail if: requested compat profile && has core profile

On Mesa, if requesting a 3.1 compat profile, we receive a 4.5 core profile.

This is natural due to constraints within glXCreateContextAttribsARB,
i.e. GLX_CONTEXT_PROFILE_MASK_ARB is only a available for versions >= 3.2
and these are not available on Mesa.

Tested with Mesa 18.3.6 of Debian 10 Buster,
which also confirms Bug 1385 fix of limitating GL3CompatNonCompliant
to Mesa < 18.2.0
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 70f360d1a58405502a5a2a0f95a2f2abda94d488 by Sven Gothel
Bug 1385: Limit Quirk GL3CompatNonCompliant to Mesa < 18.2.0
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 2c4114b50f4023843073acf6d4cea223fb491e7e by Sven Gothel
Bug 1384: Move remaining 'lose' property quirks into GLRendererQuirks.Override
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLContext.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 4f312cc49796438394ab2d56f425536931086e8e by Sven Gothel
Bug 1363: Java 11: Use new Android SDK 24 for Eclipse Android .classpath
The file was modified.classpath (diff)
Commit d1f4bcc64222d53eb7241184210730aa28ae1f6d by Sven Gothel
check-junit: enhance output (make it a brief list of classes)
The file was modifiedmake/scripts/check-junit.sh (diff)
Commit c5431f46b7bf64f109315ec78461859dd88f202a by Sven Gothel
Bug 1363: Java 11: JAWTUtil: Use sun.awt.SunToolkit.awtLock/Unlock and disableBackgroundErase (impl. semantics)

Commit 13c6bbbde5ea476d60e0a2f04a5172d3302d0edd simply removed the
AWT commonly used SunToolkit lock/unlock methods, which was incorrect.
It lead to certain resources access collisions as access has to be synchronized
using the same reentry lock across AWT and NativeWindow/JOGL.

We utilize the new com.jogamp.common.util.UnsafeUtil of GlueGen commit 07c1885e9a3d1f3a3853414648c06fb3864bc69f
to disable the IllegalAccessLogger while fetching the methods/fields and making them accessible.

JAWUtil also hosts access to SunToolkit's disableBackgroundAccess(Component)
aligning the code for GLCanvas, NewtCanvasAWT and AWTCanvas.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/awt/GLCanvas.java (diff)
Commit b90fcb88cf208dad27402256e4f08659b17ba567 by Sven Gothel
Bug 1363: Java 11: Utilize UnsafeUtil.doWithoutIllegalAccessLogger(..) avoiding further unnecessary warnings

Access to said internal non-exported methods is essential.

See commit c5431f46b7bf64f109315ec78461859dd88f202a.

Further added verbose DEBUG output where applicable.
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/awt/AppContextInfo.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/windows/Win32SunJDKReflection.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/x11/X11SunJDKReflection.java (diff)
Commit 90760ac8eebe7431ac7392e4ebf3f9009e63cd72 by Sven Gothel
Bug 1390: Fix GLPixelBuffer.GLPixelAttributes::convert(GL, int, boolean) failure on unsupported GL data format/type

GLPixelBuffer.GLPixelAttributes::convert(GL, int, boolean) failed on unsupported GL data format/type

On Mesa/AMD for GLPBuffer chosen GLCaps used rgba 10/10/10/2
and the GLContext set default values:
GL_IMPLEMENTATION_COLOR_READ_FORMAT: 0x1908 GL_RGBA
GL_IMPLEMENTATION_COLOR_READ_TYPE: 0x8368 GL_UNSIGNED_INT_2_10_10_10_REV

GLPixelBuffer.GLPixelAttributes::getPixelFormat(int format, int type)
currently does not handle the type GL_UNSIGNED_INT_2_10_10_10_REV
and hence returned a null PixelFormat.

Therefor the ctor GLPixelAttributes failed and threw the exception:
"Caught GLException: Could not find PixelFormat for format and/or type:
PixelAttributes[fmt 0x1908, type 0x8368, null]"

This fix has the GLContext default values pre-validated in the convert(..) method
and to use default GL_RGBA and GL_UNSIGNED_BYTE fallback values if not supported.
This is most important to be future proof.

Later we may shall add these 32bit coding 2+10+10+10 and its reverse.
The file was modifiedmake/scripts/make.jogl.all.linux-x86_64.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.macosx.sh (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/GLPixelBuffer.java (diff)
Commit 35f719673b2c55b0766e6c9187961db7153d7d26 by Sven Gothel
Bug 1391: Cleanup to submit fix: Update known Quirk range; BuggyColorRenderbuffer enables NoFullFBOSupport
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLDrawableFactory.java (diff)
Commit 2ab629205c88978891271dd51cfa2a1669a6eec2 by Sven Gothel
Bug 1392: Add CapabilitiesFilter and GLCapabilitiesFilter supporting diverse reusable [GL]CapabilitiesImmutable list filter

To implement fix for Bug 1392, we have to remove certain GLCapabilitiesImmutable from the availability list.

These filter provide a a clean reusable utility for the fix.
The file was addedsrc/jogl/classes/com/jogamp/opengl/GLCapabilitiesFilter.java (diff)
The file was addedsrc/nativewindow/classes/com/jogamp/nativewindow/CapabilitiesFilter.java (diff)
Commit 56a9f30fde429663514c6d5c810af2c43cb7ebf3 by Sven Gothel
Bug 1391 Bug 1392: Implement GLRendererQuirks DontChooseFBConfigBestMatch and No10BitColorCompOffscreen

Further enhance unit tests TestGLProfile03NEWTOffscreen,
i.e. test all meta profile types on all offscreen drawable types (fbo, pbuffer and bitmap).

Align unit test name numbers of TestGLProfile01NEWT to TestGLProfile03NEWTOffscreen.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile03NEWTOffscreen.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile01NEWT.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfiguration.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11PbufferGLXDrawable.java (diff)
Commit 7f6d030ba91060aa4dedbf4311290c5cf5f61c4a by Sven Gothel
Bug 1392: X11PixmapGLXDrawable::createPixmap() requires X11GLXGraphicsConfiguration having a valid XVisualInfo

Therefor X11GLXGraphicsConfiguration::GLXFBConfig2GLCapabilities(..) also needs to clean the GLGraphicsConfigurationUtil.BITMAP_BIT
from drawableTypeBits and if all removed, drop the FBConfig.
The file was modifiedsrc/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfiguration.java (diff)
Commit 125e4bd1c8e0a8f4b434209b155e6cd0d8f09092 by Sven Gothel
Bug 1392: Simplify CapabilitiesFilter: Criteria -> Test, remove RemovalCriteria as all Test definitions may be used for anything.
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLCapabilitiesFilter.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/CapabilitiesFilter.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff)
Commit 534d764474cacf8bc380123cbfd164c7c55f236a by Sven Gothel
Buig 1389: Fix SIGSEGV on OpenJDK11 on [NSApplicationAWT sendEvent:]

Culprit of the crash and the non propagated action on NSApp main-thread
was _simply_ our OSXUtil_KickNSApp() 'kick alive'
NSApplicationDefined NSEvent sent to the NSApp.

Java11's NSApp code overrides sendEvent and handles
  NSApplicationDefined + subtype=ExecuteBlockEvent
using the given data1 as a function pointer. 8-O

ExecuteBlockEvent defined as 0, which we have sent.

Simply passing subtype=8888 avoids this side-effect.
Whether it is still required to KickNSApp() is another question.

+++

Further, make code a bit more robuts regarding the offscreenSurfaceLayer
at JAWTWindow invalidate. I.e. if still not detached, do the late cleanup there.
This just in case the OSX Context callback to disassociate the drawable
has been missed.
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
The file was removedmake/scripts/tests-macosx64-junit-swt.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/awt/TestGearsAWT.java (diff)
The file was modifiedsrc/nativewindow/native/macosx/OSXmisc.m (diff)
The file was modifiedmake/scripts/tests-osx-x64.sh (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
The file was addedmake/scripts/tests-osx-junit-swt.sh (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java (diff)
The file was addedmake/scripts/tests-osx-x64-java8.sh (diff)
Commit db843e65c6b93d720438c7e751413c0556f51a6e by Sven Gothel
OSXUtil::IsMainThread() Utilize ThreadLocal storage flag avoiding unnecessary JNI calls
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
Commit b12a80e386b12d9d8fa63cf07124f8da989dcd04 by Sven Gothel
Bug 1393: Run orderFront0(=setVisible) async off-thread on AppKit after sync AppKit NSWindow creation

MacOS 10.14.6 + OpenJDK11U produces occasional freezes on AppKit Main Thread

Latest manual tests after resolving Bug 1389
disclosed a few occasional freezes using NEWT + Java11.

These are related to probable AWT changes since Java8,
as these do not occur with Java8.

Fix: Spun off orderFront0(=setVisible) async off-thread on AppKit after sync AppKit NSWindow creation.

This fix also aligns the macos createWindow code with the new simplified ios implementation,
see commit 004c67c73a0309158c30929cd0d6513e23f34803
The file was modifiedsrc/newt/native/MacWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/IOSWindow.m (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase00.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/MacNewtNSWindow.m (diff)
Commit e33aa16904d8abddaeceb1374ffa45bd45a96210 by Sven Gothel
Bug 1393: MacOS/iOS: Issue updateSizePosInsets0 async to AppKit Main-Thread

Additionally, setPointerIcon0 must also be made async on AppKit (instead of wait),
we have to assume/hope the user won't pull the PointerIconImpl instance in-between ;-)
Hence removing the comment regarding the lifecycle.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
Commit 7e76df3a05b7eb2404cb4584ee0b34ea287eb9bf by Sven Gothel
Bug 1393: OSXUtil: Optionally inject Apple's 'Main Thread Checker'

To allow proper testing of whether all AppKit calls are performed on its Main-Thread where required,
we inject the libMainThreadChecker.dylib when property 'nativewindow.debug.OSXUtil.MainThreadChecker' is set.

See <https://developer.apple.com/documentation/code_diagnostics/main_thread_checker?language=objc>
Lib-Name: /Applications/Xcode.app/Contents/Developer/usr/lib/libMainThreadChecker.dylib
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedmake/scripts/tests.sh (diff)
Commit 9332937b86f329f483f3281780278c275b422e39 by Sven Gothel
NEWT Cleanup: WindowImpl::visibleChanged(ZZ): Remove unused 'defer' argument. Method only changes state.
The file was modifiedsrc/newt/native/X11Display.c (diff)
The file was modifiedsrc/newt/native/X11Event.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/intel/gdl/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/kd/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/X11Window.c (diff)
The file was modifiedsrc/newt/native/IOSNewtUIWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/egl/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/native/KDWindow.c (diff)
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/native/bcm_vc_iv.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/MacNewtNSWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/OffscreenWindow.java (diff)
Commit ee3ee1ffa22a6fb6a0a25b6a547ee90f80e2ef4d by Sven Gothel
NEWT Cleanup: WindowImpl: Drop unused 'defer' argument (state change only): insetsChanged + insetsVisibleChanged
The file was modifiedsrc/newt/native/MacNewtNSWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/X11Display.c (diff)
The file was modifiedsrc/newt/native/IOSNewtUIWindow.m (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/native/WindowsWindow.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/X11Window.c (diff)
Commit b8db98376069a72ad40b7ef2fe2d9003aea2b091 by Sven Gothel
Bug 1393: Add window position validation in TestDisplayLifecycle*NEWT

The OSX fixes for bug 1393 spun off certain tasks like position/size gathering async to AppKit,
hence we should validate whether both are valid.

Further the TestDisplayLifecycle02NEWT had one bug,
it retrieved 'screen.getViewportInWindowUnits()' while it was not yet initialized.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle01NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java (diff)
Commit fe6600234cafe16afb1d06a0254d2135ffb71b12 by Sven Gothel
Bug 1394 - NEWT X11Window didn't gather inset at window creation (properly)

X11Window.c's 'NewtWindows_getFrameExtends(..)'
retrieves the insets via XGetWindowProperty on _NET_FRAME_EXTENTS.

Right after window creation this method fails as the WM did not yet
provide the information as the window has not yet been mapped.

Implementation needs to retry for a certain amount of time (250ms)
and maximum number of attempts (96 XEvent).

This issue surfaced while validating fix for Bug 1393,
testing TestDisplayLifecycle02NEWT also on X11.
The file was modifiedsrc/newt/native/X11Window.c (diff)
Commit ecc6794670b31d859763eb363ed3ead15d757977 by Sven Gothel
Bug 1393: Adding test cases setting visibility before enabling exclusive context thread animator

MacOS Java11 freezes occur on 3rd NEWT window creation (orderFront) after enabling exclusive context thread animator.
Here we add set visibility upfront which does not trigger the freeze on the AppKit main thread.
Note: OpenJDK8 works flawlessly.
For some reason, the exclusive context thread enabled animator interferes when 'orderFront' is issued.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase00.java (diff)
Commit b0a222100ce8425485bea201adf28dc6509333ad by Sven Gothel
Bug 1393: MacOS: Implement AppKit EDTUtil operating solely on main-thread

Introducing boolean property 'newt.macos.useAppKitEDTUtil', which defaults to 'false'.
If enabled, the new AppKitEDTUtil is being used, operating on the AppKit main thread.
This is used to ease debugging Bug 1393, minimizing thread context switches.
The file was addedsrc/newt/classes/jogamp/newt/driver/macosx/AppKitEDTUtil.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java (diff)
Commit 1e48668514c2f9c6120b62f1a66b87422e511627 by Sven Gothel
MacOS: Add more debug log details
The file was modifiedsrc/nativewindow/native/macosx/OSXmisc.m (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff)
Commit e509bac8554b5a5e8a7cec6638aad53c4129eb68 by Sven Gothel
IOS: CGL.updateContextRegister(..) call on main-thread using AppKit
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
Commit 4a072cd1c09d3f2ba5fd04033091836d195c9409 by Sven Gothel
Bug 1393: MacOS: Wait for window position setting on main-thread (blocking)

Also issue the orderFront0 call within createWindow1 (aligned with IOS code)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/native/MacWindow.m (diff)
Commit 766bcfbb6346a4b0dc161d88dc2a38f2ec64ef4b by Sven Gothel
test scripts: add --illegal-access=warn
The file was modifiedmake/scripts/make.jogl.all.win64.bat (diff)
The file was modifiedmake/scripts/tests-x64.bat (diff)
The file was modifiedmake/scripts/tests-x32-dbg.bat (diff)
Commit cd07cb251ae2df8e8cfd455a91cbe7d5394a77e0 by Sven Gothel
make void* an opaque long in EGL generated class
The file was modifiedsrc/jogl/classes/jogamp/opengl/util/av/EGLMediaPlayerImpl.java (diff)
The file was modifiedmake/config/jogl/egl-common.cfg (diff)
Commit f4281b5ee80d7674134bfee357695a98382884a3 by Sven Gothel
detect gbm platform on linux when no other display server is running
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
Commit e1d767a4063d2503f9099d24a570664f6acd1a34 by Sven Gothel
add gbm java & build modifications
The file was modifiedmake/build-newt.xml (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/gbm/WindowDriver.java (diff)
The file was modifiedmake/build-common.xml (diff)
The file was addedsrc/newt/native/gbm.c (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/gbm/DisplayDriver.java (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/gbm/ScreenDriver.java (diff)
Commit df599b1c9b08da7335b2c6036c1c9f308ec56387 by Sven Gothel
add native gbm implementation for drm and gbm initialization.
The file was modifiedsrc/newt/native/gbm.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/gbm/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/gbm/DisplayDriver.java (diff)
Commit e1161a3773a35fdb7d94eb5263b1ab9a85e565fb by Sven Gothel
Bug 1156: EGL-GBM: Cherry pick changes ..
The file was modifiedsrc/newt/native/gbm.c (diff)
Commit 10d3ba66b725fb44dc2c646c9ddc9816a4d72777 by Sven Gothel
gbm/WindowDriver: make it compile and link
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/gbm/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/gbm.c (diff)
Commit 9b52db212f8749b61e4cf775fe3244b94c5ae41c by Sven Gothel
Bug 1156: EGL-GBM: Cleanup Code & Replace Newt GBM implementation

GBM driver is now under egl/gbm subpackage and has been replaced by bcm_vc_iv boilerplate.
Native code is reentrant capable and cleaned up.
TODO: EGLDisplayUtil work with SharedResourceRunner
The file was removedsrc/newt/classes/jogamp/newt/driver/gbm/ScreenDriver.java (diff)
The file was removedsrc/newt/classes/jogamp/newt/driver/gbm/WindowDriver.java (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedmake/build-common.xml (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
The file was addedsrc/newt/native/egl_gbm.c (diff)
The file was modifiedsrc/newt/native/bcm_vc_iv.c (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was removedsrc/newt/classes/jogamp/newt/driver/gbm/DisplayDriver.java (diff)
The file was removedsrc/newt/native/gbm.c (diff)
Commit 92497251d85a7e7cf39230a014955dbbda0a49ea by Sven Gothel
Bug 1156: EGL-GBM: Fix Cleanup (Newt package relocation / hack default GBM)

Now: TYPE_EGL_GBM == ".egl.gbm"
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
Commit 39169a80b7b1f604c4da2456c9f4852d2c8c0600 by Sven Gothel
Bug 1156: GBM: FIXME: Hard link gbm and drm (temporary)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedmake/scripts/tests.sh (diff)
Commit e674f4fa0e795bd67335025123f9af727d856f7d by Sven Gothel
Bug 1156: Utilize internal glGetStringi (same as glGetString) - Robostness

Using EGL-GBM, using desktop GL we end up with an unsatisfied linkage error after the ProcAddressTable
has been reset using the 'hasMajor' and 'hasCtxOptions'.
However looking up using 'reqMajor' and 'reqCtxOptions' seems to work.
Needs more analysis.

This change also increases robustness for scanning through GL profiles at initialization.
The file was modifiedsrc/jogl/classes/jogamp/opengl/ExtensionAvailabilityCache.java (diff)
The file was modifiedsrc/jogl/native/GLContext.c (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 29ec5eeccbe683e79106a44646c4ad99326609fa by Sven Gothel
Bug 1156: GBM: FIXME: Remove scanning for desktop-GL via EGL, see commit e674f4fa0e795bd67335025123f9af727d856f7d
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
Commit 4b9754d210b22f32e5f083d3524da8f3d886bfb7 by Sven Gothel
Bug 1156: EGL-GBM: [Re]use EGL Platform type for eglCreatePlatformWindowSurface as well (like eglGetPlatformDisplay)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLSurface.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
Commit 30826d978258c16b06cdab34e5a4265406545c3f by Sven Gothel
Bug 1156: EGL-GBM: Fix NativeWindowFactory native-window-type query according to Bug 1156

- Special files like '/dev/dri/card0' can't be tested via isFile(), use exists()

Order for GNU/Linux (and other unices) IMHO is

1) Display Server (Vendor neutral)
1.1) running X11 display server (DISPLAY check enough?)
1.2) running WAYLAND display server (WAYLAND_DISPLAY check enough?)

2) Console Mode Vendor Neutral
2.1) GBM (how to check?)

3) Console Mode Vendor Specific
3.1) VCIV (how to check)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/BcmVCArtifacts.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLES2DynamicLibraryBundleInfo.java (diff)
Commit 3dcfa24384078fca34ce3cc877649f7e2c2c084b by Sven Gothel
Bug 1156: NEWT: NewtFactory.getCustomClass(..) Robustness

getCustomClass(..) shall throw all required exceptions upstream.
Previous essential NEWT driver exception information got suppressed if failing, only disclosed in debug mode.
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/DisplayImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/ScreenImpl.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/NewtFactory.java (diff)
Commit bb83bd2df5723ed145f59e9bd5d212de6c4daba8 by Sven Gothel
Bug 1156: GBM: Fixing native GBM code, surviving initialization
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/egl_gbm.c (diff)
Commit 976e89ff24da3b2cdf206e8ef8f222f54fb467de by Sven Gothel
Bug 1156: GBM: Bring up incl GL rendering (TODO: GBM working page flip / sync)

- EGLSurface: Factor out 'eglCreate[Platform]WindowSurface'

NEWT egl.gbm.WindowDriver
-- Properly use GBM fourcc format and use as visualID
   for GBM surface creation and EGL config selection
-- Create eglSurface within this class
-- Hook up GBM/DRM page flip (not working yet, no visible artifacts - no swap)

- ProxySurfaceImpl.surfaceSwap() call upstreamSurface's implementation if available

TODO: 'Permission denied' calling:
- drmSetMaster (optional)
- drmModeSetCrtc
- drmModePageFlip
The file was modifiedmake/build-newt.xml (diff)
The file was addedsrc/newt/native/egl_gbm_drmflip.c (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/ProxySurfaceImpl.java (diff)
The file was modifiedsrc/newt/native/egl_gbm.c (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was addedsrc/newt/native/egl_gbm.h (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLSurface.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
Commit 3e19c2267500c0c459e7dce8d2087387a56f3296 by Sven Gothel
Bug 1156 - Implement DRM/GBM Support for JOGL(EGL) and NEWT

Adding new classes DRMLib (gluegen of drm + gbm), DRMUtil and DRMMode GBMDummyUpstreamSurfaceHook
to new package jogamp.nativewindow.drm, allowing full awareness of DRM + GBM within NativeWindow for JOGL + NEWT.

DRMMode replaces the previous native code of collecting drmMode* attributes: active connector, used mode, encoder etc
and also supports multiple active connectors.

DRMUtil handles the global static drmFd (file descriptor), currently only the GNU/Linux DRM device is supported.

GBMDummyUpstreamSurfaceHook provides a simple dummy GBM surface.

NativeWindow provides the new nativewindow_drm.so and nativewindow-os-drm.jar,
which are included in most 'all' jar packages.

build property: setup.addNativeEGLGBM -> setup.addNativeDRMGBM

Changes NativeWindowFactory:
- TYPE_EGL_GBM -> TYPE_DRM_GBM while keeping the package ID of '.egl.gbm' for NEWT (using EGL)
- Initializing DRMUtil at initialization

Changes EGLDrawableFactory:
- Using native GBM device for the default EGL display creation instead of EGL_DEFAULT_DISPLAY.
  This resolves issues as seen in Bug 1402, as well in cases w/o surfaceless support.

- GL profile mapping uses surfaceless when available for GBM,
  otherwise uses createDummySurfaceImpl (dummy GBM surface via GBMDummyUpstreamSurfaceHook)

- createDummySurfaceImpl uses a dummy GBM surface via GBMDummyUpstreamSurfaceHook

- DesktopGL not available with GBM, see Bug 1401

NEWT's DRM + GBM + EGL Driver
- Using DRMLib, DRMUtil and DRMMode, removed most native code but WindowDriver swapBuffer
- ScreenDriver uses DRMMode, however currently only first connected CRT.
- WindowDriver aligns position and size to screen, positions other than 0/0 causes DRM failure
- WindowDriver reconfigure n/a

NEWT TODO:
- DRM Cursor support (mouse pointer)
- Pointer event handling
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedmake/build-common.xml (diff)
The file was addedsrc/newt/native/drm_gbm.c (diff)
The file was addedmake/stub_includes/drm/drm_mode.h (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfiguration.java (diff)
The file was removedsrc/newt/native/egl_gbm.c (diff)
The file was removedsrc/newt/native/egl_gbm.h (diff)
The file was addedmake/stub_includes/drm/gbm.h (diff)
The file was addedsrc/nativewindow/classes/jogamp/nativewindow/drm/GBMDummyUpstreamSurfaceHook.java (diff)
The file was addedsrc/newt/native/drm_gbm.h (diff)
The file was modifiedsrc/nativewindow/native/JVM_JNI8.c (diff)
The file was addedmake/stub_includes/drm/xf86drmMode.h (diff)
The file was addedmake/config/nativewindow/drm-gbm-lib.cfg (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/GraphicsConfigurationFactory.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/VisualIDHolder.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was addedsrc/newt/native/drm_gbm_legacy.c (diff)
The file was addedsrc/nativewindow/classes/jogamp/nativewindow/drm/DRMUtil.java (diff)
The file was addedsrc/nativewindow/classes/jogamp/nativewindow/drm/DrmMode.java (diff)
The file was addedmake/stub_includes/drm/drm.h (diff)
The file was modifiedmake/scripts/gluegen-gl.sh (diff)
The file was removedsrc/newt/native/egl_gbm_drmflip.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was addedsrc/nativewindow/native/drm/DRMmisc.c (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff)
The file was addedmake/stub_includes/drm/drm-gbm-lib.c (diff)
The file was modifiedmake/build-nativewindow.xml (diff)
The file was addedmake/stub_includes/drm/xf86drm.h (diff)
Commit d7469d4fcbc6d92a696b90b52a75a233d4a30e5c by Sven Gothel
Bug 1402: Standalone native test attempting to reproduce issue

Mesa 18.3.6 issues mixing EGL_DEFAULT_DISPLAY and GBM device on EGL_PLATFORM_GBM_KHR

Interestingly, the issue is no more reproducible. Weird.

However, it is advised to use a real GBM device handle for EGL display creation
under EGL_PLATFORM_GBM_KHR.
The file was addedsrc/newt/native/drm_gbm_egl_test01.c (diff)
The file was addedsrc/newt/native/make-drm_gbm_egl_test01.sh (diff)
Commit f6cd403f3f554d37f63c498b4de956229b4c347a by Sven Gothel
Bug 1156: Using EGL.eglCreatePlatformWindowSurface(..) crashes on NVIDIA 430.40 on GNU/Linux X11

Avoiding this method for now.
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLSurface.java (diff)
Commit 4fe9e1dfa67f4e5d614f48c02ad88e4cdd1ed415 by Sven Gothel
Bug 1200: probeSurfacelessCtx works at least since NVIDIA 430.40.

Added this version as the safe version to limit GLRendererQuirks.NoSurfacelessCtx setting.

Bug 1200 - JOGL crashes on Debian8 GNU/Linux x86_64 'NVidia beta driver 355.06' @ probeSurfacelessCtx
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit d71743204ae2faa705739ce3fbb1bc9062323368 by Sven Gothel
Updating my eclipse jogl.build.launcher
The file was modified.externalToolBuilders/jogl builder.launch (diff)
Commit 0d505c3e6dc75687b8bb2ff4f6df6680a084736f by Sven Gothel
Bug 1156: DRM/GBM Native test: Add Cursor
The file was modifiedsrc/newt/native/drm_gbm_egl_test01.c (diff)
Commit bdbdcdc800294db3a84926b79503fc2e0e919128 by Sven Gothel
Bug 1156: LinuxKeyEventTracker: Fix 64bit InputEvent and attempt to only use keyboard event files

The time structure on 64bit machines uses two 8 byte long values instead of two 4 bytes int values on 32bit machines.
The insufficient read on 64bit machines caused an IllegalArgument exception.
This fix considers 32 or 64 bit operation.

Class renamed: LinuxEventDeviceTracker -> LinuxKeyEventTracker, as it tracks key events specifically.

Now the EventDeviceManager tries to only use /dev/input/by-id/*-event-kbd keyboard event files,
which reduces the handling on kbd event files only.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/linux/LinuxMouseTracker.java (diff)
The file was addedsrc/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff)
The file was removedsrc/newt/classes/jogamp/newt/driver/linux/LinuxEventDeviceTracker.java (diff)
Commit 381858b82c5197193ba2f490a8282149536a54f7 by Sven Gothel
Bug 1156: DRM/GBM: Add full PointerIcon (Cursor) Support

DRM allows 64x64 pixel cursor images, using GBM_FORMAT_ARGB888 only.

Notable: GBM_FORMAT_ARGB888 == PixelFormat.BGRA8888

Having fixed mouse and keyboard input with previous commit,
the demo com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT
shows via key press
- i -> pointer visible/invisible
- c -> pointer icon change
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/drm_gbm.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modifiedsrc/newt/native/drm_gbm_legacy.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff)
Commit 57b4c7af3ef2007942886f60a128a872d9bcee63 by Sven Gothel
Bug 1156: LinuxKeyEventTracker: Add '/dev/input/by-path/*-event-kbd' and more documentation
The file was modifiedsrc/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff)
Commit 20030fa36dfad924084aeaa130943165f51e8f0b by Sven Gothel
Bug 1156: HowToBuild: Add GNU/Linux dependencies to libdrm and libgbm
The file was modifieddoc/HowToBuild.html (diff)
Commit 3ab7bd61dc8370e579c827ebc75e45dc1eb611a1 by Sven Gothel
Adding test invocation script for linux aarch64 / Refined HowToBuild.html
The file was addedmake/scripts/tests-linux-aarch64.sh (diff)
The file was modifieddoc/HowToBuild.html (diff)
Commit 453f80e38bcb0945e7eac27a5917dce9bdc6446b by Sven Gothel
Bug 1156: LinuxKeyEventTracker, LinuxMouseTracker: Adding property to disable each

LinuxKeyEventTracker also disable the eventX reading by default, but can be enabled via new property.

The 'return bug' (crash due to underlying console) is indeed not occuring
when using a VT w/o running console application underneath.

As Xerxes showed, one may use chvt to a free known VT or openvt.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/linux/LinuxMouseTracker.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff)
Commit 94dbf9b151bfa8590ea223f58dfe43d45dc0783d by Sven Gothel
Bug 1156: LinuxKeyEventTracker, LinuxMouseTracker: Robostness (+NEWT fix)

commit 453f80e38bcb0945e7eac27a5917dce9bdc6446b added disabling the tracker,
however the NEWT usage didn't cover all mouse tracker null pointer.

Further, let's initialize and spawn off the threads only at first getSingleton() call
not at class initialization earlier.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/linux/LinuxMouseTracker.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff)
Commit 56045ef6f2b33509754fbff82affca94290ae6e0 by Sven Gothel
Bug 1156: Remove verbose print in native CreatePointer..
The file was modifiedsrc/newt/native/drm_gbm.c (diff)
Commit 6594838575d101d567f4e6dc50b6acd74a294bde by Sven Gothel
Scripts: Macos /opt-share -> /usr/local (Catalina Read-Only)
The file was modifiedmake/scripts/make.jogl.all.ios.amd64.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.ios.arm64.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.macosx.sh (diff)
Commit 97c5fbc891f3315f913e519aaf15cdc5d987b31d by Sven Gothel
Scripts: Tests No Verbose
The file was modifiedmake/scripts/tests.sh (diff)
Commit d3f454a3d8d608f9efe90987af3f08db89ad6e25 by xerxes
VC4: Broadcom uses libbrcmEGL.so, libbrcmGLESv2.so, libbrcmOpenVG.so and libbrcmWFC.so since 7 Jul 2016

Raspbian integration (two libGLES side-by-side)
https://github.com/anholt/mesa/issues/24
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLES2DynamicLibraryBundleInfo.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java (diff)
Commit 164db661e2688bfbc53fec3357fc6885b14ab893 by xerxes
VC4: Only load Broadcom EGL driver when guessVCIVUsed

Broadcom VC IV can be used from
both console and from inside X11

When used from inside X11
rendering is done on an DispmanX overlay surface
while keeping an X11 nativewindow under as input.

When Broadcom VC IV is guessed
only the Broadcom DispmanX EGL driver is loaded.
Therefore standard TYPE_X11 EGL can not be used.
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLES2DynamicLibraryBundleInfo.java (diff)
The file was modifiedsrc/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java (diff)
Commit 22ee0cfa7dc3f3a7ac5e30322537196dcab8b310 by Sven Gothel
Bug 1405: Provide stand alone demo launcher reducing complexity

The launcher script also allows inflating classes and native libs to test impact on Raspberry Pi 3 Model B+.
The file was addedsrc/demos/com/jogamp/opengl/demos/MiscUtils.java (diff)
The file was addedmake/scripts/test-demo-launcher0.sh (diff)
The file was addedsrc/demos/com/jogamp/opengl/demos/Launcher0.java (diff)
Commit e57de40bd0e1a318d59ca70f20a6f7d8a8921c74 by Sven Gothel
Bug 1406: DRMUtil: Probe DRM device whether it has resources attached (and is the desired one)

First issue was that the proper DRM file had to be queries,
as Raspberry 4 may have two of them:
<--
/dev/dri/dri0
/dev/dri/dri0
/dev/dri/by-path/platform-fec00000.v3d-card -> ../card0
/dev/dri/by-path/platform-soc:gpu-card -> ../card1
-->

This patch attempts to probe all /dev/dri/card[0..99]
using this arbitrary range.
The test loop ends if:
- drmOpenFile succeeds and drmModeGetResources delivers non-null value
- the iterated probed file doesn't even exist
- 100 files has been tested ;-)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/drm/DRMUtil.java (diff)
Commit ab18bcac9b258e32d99707aecf6e2dd6e1d4f417 by Sven Gothel
build-test.xml: fix (unused) java.part.demo.mobile
The file was modifiedmake/build-test.xml (diff)
Commit 0094f906b423ea4ad21da5de34076e066b9122b9 by Sven Gothel
Bug 1406: demos.Launcher0: More tests ..

Misc:
- Remove unused SysExit..
- showFPS=true default
- allow setting 'useDoubleBuffer' via '-single'
- demos.es2.GearsES2: Don't be verbose on display even w/o animator

IF '-noanim', issue glWindow.display() from main thread
instead of using the animator thread otherwise.
This shall test the swap buffering code in single threaded mode!
The file was modifiedmake/scripts/test-demo-launcher0.sh (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/Launcher0.java (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/es2/GearsES2.java (diff)
Commit 43dd50a8545f8fde8198091b136aece6f062cb38 by Sven Gothel
Bug 1406: demos.Launcher0: More code path reduction: useMultiplePointerIcon must be enabled via -pointerIcon
The file was modifiedsrc/newt/classes/com/jogamp/newt/opengl/util/NEWTDemoListener.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/parenting/NewtReparentingKeyAdapter.java (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/Launcher0.java (diff)
Commit 54d34cb749dd877fffcbb2d33cc3707763b94b7e by Sven Gothel
Bug 1156, Bug 1406: NEWT DRM/GBM WindowDriver.surfaceSwap(): Pass swapInterval to optionally skip VSYNC if 0
The file was modifiedsrc/newt/native/drm_gbm_legacy.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
Commit 4665875ac4689885da3b4a4c45cde7c6886322e3 by Sven Gothel
Bug 1406, Bug 1405: demos.Launcher0: No sleep w/o animator. VSYNC setting rules (launch script w/ key tracker)
The file was modifiedmake/scripts/test-demo-launcher0.sh (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/Launcher0.java (diff)
Commit d5ba4cae824087879a4857e20961a95da04eaebb by Sven Gothel
NEWT: Align DisplayImpl.createPointerIcon(..) behavior; PointerIconImpl.validatedHandle() shall not create native resource.

Semantic cleanup for clarity and equal behavior

Align DisplayImpl.createPointerIcon(..) behavior
- return null handle of createPointerIconImplChecked(..) shall be accepted,
  no exception for neither of the two creation methods.

PointerIconImpl.validatedHandle() shall not create native resource.
- throws exception if handle is null (about to be used)
- no native creation shall happen here.

Display.PointerIcon.validate(): Removed, not used.
The file was modifiedsrc/newt/classes/jogamp/newt/DisplayImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/PointerIconImpl.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Display.java (diff)
Commit 66976571abed5f14db5de9975ce08d62cfecc2c8 by Sven Gothel
Bug 1408: NEWT DRM/GBM DisplayDriver: Add device locking/unlocking decoration for PointerIcon operations
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
Commit c7778616ef7706461ee0b09e20591f5a6e4ea363 by Sven Gothel
Bug 1408: NEWT DisplayImpl PointerIcon: Property 'newt.disable.PointerIcon' disables PointerIcon usage in general.
The file was modifiedmake/scripts/test-demo-launcher0.sh (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/DisplayImpl.java (diff)
Commit 59fe721a926ff66e98b716a25a08bdfa584ca6fa by Sven Gothel
Bug 1408: NEWT DRM/GBM WindowDriver: Adding glFinish() before eglSwapBuffers(..) just in case ..

This is the poor man's SYNC: glFenceSync () with glWaitSync().
However, this change did not resolve Bug 1408. Earmarked to be removed!
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
Commit 78292f1098ef3a83c0426bd0e30b4e725805fa1a by Sven Gothel
Bug 1156: NEWT DRM/GBM PointerIcon: Use hotX/hotY drmModeSetCursor2(..), hence pass PointerIconImpl through
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modifiedsrc/newt/native/drm_gbm.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
Commit eaa81d524e9be6af9867c8b6750505c8660a6651 by Sven Gothel
Bug 1406, Bug 1405: demos.Launcher0: Allow passing GLEventListener via '-demo classname'
The file was modifiedsrc/demos/com/jogamp/opengl/demos/Launcher0.java (diff)
Commit bfc152be4203eeceebea919aff9513d33213c802 by Sven Gothel
NEWTDemoListener: Fix NPE
The file was modifiedsrc/newt/classes/com/jogamp/newt/opengl/util/NEWTDemoListener.java (diff)
Commit c80147e3112f3ac87e004c19819b820b42b737df by Sven Gothel
Bug 1156, Bug 1401: Disable DesktopGL on EGL w/ DRM/GBM earlier in initialization

Was within hasOpenGLDesktopSupport(), but then DesktopGL libs would have been already loaded and looked-up.
This is not necessary and only wastes resources and time.
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
Commit ea23776919eff10dee57519ce72354bbaea3544e by Sven Gothel
Bug 1406, Bug 1405: demos.Launcher0: Defaults to use multiple PointerIcons again

launch script test-demo-launcher0.sh: Tested with '-Xcheck:jni'
The file was modifiedmake/scripts/test-demo-launcher0.sh (diff)
The file was modifiedsrc/demos/com/jogamp/opengl/demos/Launcher0.java (diff)
Commit 84a2e5a250148d600d48a0dd58e07286a375f616 by Sven Gothel
LinuxKeyEventTracker: Factor out 'sendKeyEvent(..)' call with null check.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff)
Commit 033ee4cad3493038480b06f6caf3de015a3e8de7 by Sven Gothel
Bug 1405, Bug 1406, Bug 1408: Resolution: Call ReleasePrimitiveArrayCritical(..) in GetPrimitiveArrayCritical(..) code path!

Now that was quite a miss, causing the bugs in the first place!
The freeze was caused in the JVM, as this open GetPrimitiveArrayCritical(..) disabled the GC.
This was reported via '-Xcheck:jni'.
Depending on the system/jvm, the freeze may happen early or only after a while.

This code path was not executed with new property 'newt.disable.PointerIcon' set,
but from there to finding the missing critical release - a journey:

- jstack showed

  "main" #1 prio=5 os_prio=0 cpu=275.71ms elapsed=51.93s allocated=9710K defined_classes=472 tid=0x00007f7084015000 nid=0x1a39 waiting on condition  [0x00007f70897c2000]
     java.lang.Thread.State: RUNNABLE
          at jogamp.opengl.es3.GLES3Impl.dispatch_glUniformMatrix4fv1(Native Method)
          at jogamp.opengl.es3.GLES3Impl.glUniformMatrix4fv(GLES3Impl.java:2585)
          at jogamp.opengl.es3.GLES3Impl.glUniform(GLES3Impl.java:10713)

-- said that this thread was no more running, waiting on condition ..
-- glUniformMatrix4fv1 was given an array!

- '-Xcheck:jni' gave:

  Warning: Calling other JNI functions in the scope of Get/ReleasePrimitiveArrayCritical or Get/ReleaseStringCritical

-- Now it is clear that the lack of releasing the critical array, returning to Java and then calling other JNI methods
   caused the Warning - and eventually the freeze.
The file was modifiedsrc/newt/native/drm_gbm.c (diff)
Commit d693425e2e74a5e4a80c3fde552ffc7d757330f1 by Sven Gothel
PointerIcon new instances are always valid ..

Move native handle check to pre-destruction call in PointerIconImpl.destroyOnEDT(..), unifying single destruction and all.
The file was modifiedsrc/newt/classes/jogamp/newt/DisplayImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/PointerIconImpl.java (diff)
Commit c317985db39f840f6edf9860487c604e6e31c2ba by Sven Gothel
Bug 1409: GNU/Linux DRM Console: Clear stdin before exit and don't act on stdin in vsync-wait-loop

User input during test from the console will also end up in stdin of the console after the java application has been closed.
This is not only annoying, but also a security concern, as the input gets executed if containing a CR.

Further, the vsync-wait-loop shall ignore stdin.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
The file was modifiedsrc/newt/native/drm_gbm.c (diff)
The file was modifiedsrc/newt/native/drm_gbm_legacy.c (diff)
Commit 75afd5c6be7f68b32fbe9e5d319d888888b30719 by Sven Gothel
Fix regression of commit 2b899a55e365aa03aeb234187600526777c1a9ac

This bug never allowed a PointerIconImpl to be destroyed via PointerIconImpl.destroy()
The file was modifiedsrc/newt/classes/jogamp/newt/PointerIconImpl.java (diff)
Commit de13e49aadd4b4df09eb1ab37c84cda404586ba5 by Sven Gothel
Bug 1410: Fix NEWT PointerIcon Lifecycle (destroy and clean references @ closing)

Commit d5ba4cae824087879a4857e20961a95da04eaebb clarified and simplified the lifecycle of a PointerImpl instance, i.e. drop its resurrection in
PointerImpl.validateHandle() in favor of a hard exception.

This caused detection of subsequent PointerImpl lifecycle issues,
as instances were not fully destroyed on Display closing and
references not null'ed in Display and Screen instances.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
Commit ddc29141207d9c69f8558265a464cdc4bc014d65 by Sven Gothel
Bug 1412 - JNI: NEWT Check & Handle Exception after calling back into Java (X11Display + X11Window)
The file was modifiedsrc/newt/native/NewtCommon.h (diff)
The file was modifiedsrc/newt/native/NewtCommon.c (diff)
The file was modifiedsrc/newt/native/X11Window.c (diff)
The file was modifiedsrc/newt/native/X11Display.c (diff)
Commit 578edfc20915e2e2aa18aa06e49f7341f86990c4 by Sven Gothel
Bug 1413 - NEWT X11Window: NewtWindows_getFrameExtends(..) may hang on XPeekEvent(..)

The wait loop uses XPeekEvent(dpy, &e),
which can block indefinite if queue is empty.

Replace with timeout only _and_ only wait on CreateWindow0(..)
not when queried via X11Display dispatch loop on events
when it is assumed the information has been propagated already.
The file was modifiedsrc/newt/native/X11Common.h (diff)
The file was modifiedsrc/newt/native/X11Display.c (diff)
The file was modifiedsrc/newt/native/X11Window.c (diff)
Commit a8c2de110a2254af137a3d99007cc77e3ecd8078 by Sven Gothel
Bug 1412 - JNI: NEWT Check & Handle Exception after calling back into Java (NewtCommon.c)
The file was modifiedsrc/newt/native/NewtCommon.c (diff)
Commit abde7e96c8ea8f36b48e99ed62029bf0e178a8fa by Sven Gothel
Bug 1412: Fix commit a8c2de110a2254af137a3d99007cc77e3ecd8078
The file was modifiedsrc/newt/native/NewtCommon.c (diff)
The file was modifiedsrc/newt/native/NewtCommon.h (diff)
Commit b992423477ea1a76fb28946e28959a3feea97680 by Sven Gothel
Bug 1411 - Unit Test Subset for DRM/GBM JOGL(EGL) and NEWT

First step disables all AWT and SWT unit tests.
The file was modifiedmake/build-test.xml (diff)
The file was modifiedmake/build-common.xml (diff)
The file was addedmake/scripts/junit-linux-armv6hf-headless.sh (diff)
The file was addedmake/scripts/junit-linux-x86_64-headless.sh (diff)
Commit 6f750711fbcdf746451995e71165bbd119694269 by Sven Gothel
Bug 1156: DRM/GBM NEWT: Clarify drmModeSetCrtc(..)'s x/y parameter and earmark spanning across monitors

drmModeSetCrtc(..)'s x/y parameter are the surface's offset to be scanned out from one CRT!
The file was modifiedsrc/newt/native/drm_gbm_legacy.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
Commit bb3ee12b7aeef276a03f091333eacc68542e784b by Sven Gothel
Bug 1200: GLRendererQuirks.NoSurfacelessCtx still persists on Linux/X11 NVIDIA 440.36 using FBO

Tested with com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingGearsNewtAWT,
which crashes in native makeCurrent of NV driver gl-core when using SurfacelessCtx.

Therefor we had to revert the commit 4fe9e1dfa67f4e5d614f48c02ad88e4cdd1ed415
enabling SurfacelessCtx with NV driver >= 430.40.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 2e59792eba285d7cd3c2f4f4c78838b8cc8918f7 by Sven Gothel
Bug 1393: Make window position check more tolerant (2x insets or 64 pixels, whichever is greater)

Certain WM's may modify the windowing position 'a little', which has been experienced on one X11 server
during invisible setting. The insets were removed and its value added to the position!

We could argue that this is an issue in our windowing code, however, the WM is free to reposition a window.

Refines commit b8db98376069a72ad40b7ef2fe2d9003aea2b091
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/util/NewtTestUtil.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle01NEWT.java (diff)
Commit 136971bf41c9784bee187389f138daf77ba4392c by Sven Gothel
NEWT WindowImpl: Wording in comment
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
Commit dd8f6f0c884161eb1099ff1ab8af20383984771d by Sven Gothel
Bug 1415: ExclusiveContextBase00+10: Utilize one Animator per Window for clean ExclusiveContextThread

No, this does not resolve the issue - but is the proper test case.
ExclusiveContextBase10 also gets the preVis test.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase10.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase00.java (diff)
Commit 5e6f75991d885f1e48760668f86b305824bd972a by Sven Gothel
Bug 1415: MacOS: Disable multiple Window creation on ExclusiveContextThread in test case
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase00.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase10.java (diff)
Commit 12eed5d38616d23b6e8e2e5b497dfc2f54d90c90 by Sven Gothel
Bug 1393: Resolve EDT + AppKit Deadlock with native parenting: Fetch parent screen position directly w/o locking.
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedmake/scripts/make.jogl.all.linux-x86_64.sh (diff)
Commit 5047217ff8366b0d3280e478aac6c711170d7063 by Sven Gothel
Bug 1393: Apply 12eed5d38616d23b6e8e2e5b497dfc2f54d90c90 to IOS, avoiding AppKit/EDT deadlock for parent screen location lookup
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
Commit 3e92d34de3672d7f5e401ed6181bb55a58bdf4b6 by Sven Gothel
Bug 1156: NEWT Window: Better handling of fixed console case: Not resizable and not repositionable.

Our two fixed size and position console cases 'bcm.egl' and 'egl.gbm' (drm.gbm)
only operate in a console like fullscreen mode.

We should earmark and expose this behavior, as well as handle it by not waiting for a position / size
and not attempting to change position and size.

Reducing WindowImpl.minimumReconfigStateMask to bare minimum values:
  STATE_MASK_VISIBLE | STATE_MASK_FOCUSED;
New WindowImpl.mutableSizePosReconfigStateMask extends WindowImpl.minimumReconfigStateMask, representing previous values:
  STATE_MASK_VISIBLE | STATE_MASK_FOCUSED | STATE_MASK_FULLSCREEN | STATE_MASK_RESIZABLE | STATE_MASK_REPOSITIONABLE;

All WindowDriver implementations previously using WindowImpl.minimumReconfigStateMask
are now using WindowImpl.mutableSizePosReconfigStateMask but the explicit console driver named above.

I would have liked to add the STATE_BIT_FULLSCREEN  to the current stateMask to notify this semantics,
however this would have lead to more code changes as our fullscreen mode assumes to be 'on top' of the normal mode.
Here the normal mode is essentially fullscreen and no back/forth fullscreen setting is useful or allowed.
Therefore, both fixed size & position console driver won't expose themselves as being in fullscreen mode.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/X11Window.c (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/WindowImpl.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff)
The file was modifiedsrc/newt/native/Window.h (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/kd/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/intel/gdl/WindowDriver.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/Window.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/OffscreenWindow.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLContextSurfaceLockNEWT.java (diff)
Commit 3c9b7bcec2ae06060726c49e34b1d606f66d31c6 by Sven Gothel
Bug 1416 - Allow EGLDrawableFactory re-creation after shutdown() - be functional

TestShutdownCompleteNEWT revealed that EGLDrawableFactory won't be properly
re-created within subsequent GLProfile/GLDrawableFactory initSingleton()
after a GLProfile.shutdown() call.

Hence after the shutdown() call, subsequent GLProfile have no EGLDrawableFactory available and hence may not have a default device existent in case no desktop-factory is available.

Allow EGLDrawableFactory to be re-created after a shutdown().
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/InitConcurrentBaseNEWT.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfileXXNEWTPost.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java (diff)
Commit 438f4bef0004834485c36eee013dae9199dd55d9 by Sven Gothel
Bug 852: TestCPUSourcingAPINEWT Reference the bug entry and add a little reminder
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestCPUSourcingAPINEWT.java (diff)
Commit 606fbe8b3f4c420f1c4faecf4f49276e054543a0 by Sven Gothel
Bug 1156: NEWT WindowDriver: Handle case with requested CapabilitiesImmutable not being GLCapabilitiesImmutable
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLCapabilities.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff)
Commit 61eb1825663701fd50023328f6f3e8e8b24272b9 by Sven Gothel
Bug 1411: DRM/GBM JOGL: Specify 'junit.run.console' unit test target.
The file was modifiedmake/build-test.xml (diff)
Commit c5fabde01babfdd07c72347ff17ac0705b8c6c5a by Sven Gothel
Bug 1411 DRM/GBM JOGL: Fix 'junit.run.console' unit test target, use it in respective (renamed) scripts.

Added junit.run.console target in build.xml

build-test.xml
- Moves all results.test artifact moving from current directory into test-zip-archive target,
  reducing duplication.

- junit.run.console: Added proper dependencies etc

Renamed scripts to match junit.run.console:
  junit-linux-x86_64-headless.sh -> junit-linux-x86_64-console.sh
  junit-linux-armv6hf-headless.sh -> junit-linux-armv6hf-console.sh
The file was modifiedmake/build-test.xml (diff)
The file was removedmake/scripts/junit-linux-x86_64-headless.sh (diff)
The file was removedmake/scripts/junit-linux-armv6hf-headless.sh (diff)
The file was addedmake/scripts/junit-linux-x86_64-console.sh (diff)
The file was addedmake/scripts/junit-linux-armv6hf-console.sh (diff)
The file was modifiedmake/build.xml (diff)
Commit 5e38dc8cb69d9bec7ee3dc2b98d79c4abcf5e5f0 by Sven Gothel
Bug 1411 DRM/GBM JOGL: Fix 'junit.run.console' - three times a charm?

- Proper handling if junit is disabled
- Use proper class pattern, java.dir.junit already contains base folder ;-)
The file was modifiedmake/build-test.xml (diff)
Commit 548553e189f8f9fa60d6c59da6bf0a4bd1bf7505 by Sven Gothel
Bug 1411 DRM/GBM JOGL: Fix 'junit.run.console' - fourth times

the property 'generic.junit.run.newt.headless.include.pattern'
to run target 'generic.junit.run.newt.headless' multiple times for different unit tests
must be unset within the caller space of ant.

also fixed other occasions (never really worked on multiple calls).
The file was modifiedmake/build-test.xml (diff)
Commit 07de253dae77b39da944a946381bd6efec0066ba by Sven Gothel
Bug 1417 - Android: Adopt to gluegen/make/scripts/setenv-android-tools.sh changes
The file was modifiedmake/build-jogl.xml (diff)
The file was modifiedmake/build-nativewindow.xml (diff)
The file was modifiedmake/scripts/make.jogl.all.android-x86-cross.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.android-aarch64-cross.sh (diff)
The file was modifiedmake/scripts/make.jogl.all.android-armv6-cross.sh (diff)
The file was modifiedmake/build-newt.xml (diff)
Commit b91c680fb93a03720ff9fcb39cf052cfe8d40e76 by Sven Gothel
Bug 1156: Seperate DRM/GBM NEWT native library from main head NEWT native library

DRM/GBM is enabled for Linux in general.
Nativewindow's 'nativewindow_drm' DRM/GBM native library is already seperated.

NEWT get its 'newt_drm' DRM/GBM native library.

NEWT's main head native library is renamed from 'newt' -> 'newt_head'
and is earmarked for further seperation similar to Nativewindow's.
At least a 'newt_wayland' will probably followup when support is added.

Goal is to remove DRM/GBM dependency for Linux X11 operation
as well as removing X11 dependency for Linux DRM/GBM operation.
The file was modifiedsrc/newt/classes/jogamp/newt/driver/ios/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java (diff)
The file was modifiedmake/build-newt.xml (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/kd/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/egl/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/intel/gdl/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/bcm/vc/iv/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/android/DisplayDriver.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/util/MainThread.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/NEWTJNILibLoader.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/windows/DisplayDriver.java (diff)
The file was modifiedsrc/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff)
Commit c6ba090a0030c177d7e60f797a3ec25fecfe3546 by Sven Gothel
Bug 1417 - Android: Disable native FFmpeg binding for Android
The file was modifiedmake/build-common.xml (diff)
The file was modifiedmake/build-jogl.xml (diff)
Commit 784dcfa2094f3fb235ca4b60395708a1f87c0b1b by Sven Gothel
Bug 1156 Regression (Bug 1417): Probe whether 'eglGetPlatformDisplay(..)' is available before using

commit f4281b5ee80d7674134bfee357695a98382884a3 for Bug 1156 (DRM/GBM)
introduced the call to 'eglGetPlatformDisplay(..)' for known EGL-platforms.

However, 'eglGetPlatformDisplay(..)' is only available for EGL versions >= 1.5
or 'eglGetPlatformDisplayEXT(..)' if EGL extension 'EGL_EXT_platform_base' is available.

This patch adds a singular EGL version probe and a secondary extension fallback test
at first call using EGL_NO_DISPLAY on both EGL_VERSION and EGL_EXTENSION eglQueryString(..) calls.

If 'eglGetPlatformDisplay*(..)' is not available, simply use 'eglGetDisplay(..)'.

This regression also impacted Bug 1417 (Android bringup using current SDK + NDK),
i.e. disabled most Android devices as their EGL version is often 1.4.
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/android/NEWTGearsES2ActivityLauncher.java (diff)
Commit d91f8581eedf73663abab25524147d2bcab9109b by Sven Gothel
Bug 1417 - Android: Add adb scripts for x86 [re-]install
The file was addedmake/scripts/adb-reinstall-all-x86.sh (diff)
The file was addedmake/scripts/adb-install-all-x86.sh (diff)
Commit 95ca88ba975c7296098bbd34bec2d922aeb2b563 by Sven Gothel
Bug 1417 - Android: APK Manifest [min=21, target=28]; Adopt to GlueGen's 'aapt.signed' d8 usage
The file was modifiedmake/resources/android/AndroidManifest-jogl.xml (diff)
The file was modifiedmake/build.xml (diff)
The file was modifiedmake/build-test.xml (diff)
The file was modifiedmake/resources/android/AndroidManifest-test.xml (diff)
Commit 50f9c9e113b09ab54ba40abba6b2face27c9a139 by Sven Gothel
Bug 1287 - Complete Immutable glNamedBufferStorage support in GLBufferObjectTracker

As of the time of implementation, named immutable buffers were not fully supported within GL 4.4.
This has changed, i.e. GL 4.5 supports glNamedBufferStorage.
This patch adds support for the immutable named buffer storage case.

jogl commit 09fc7aa5539731bb0fba835caee61f6eb837ecff,
added GLBufferObjectTracker allowing to keep required references to NIO object.
This tracker complements the NIO buffer lifecycle with the GL semantics.
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLBufferObjectTracker.java (diff)
Commit e2223107cc54e08031bd9505ce8a9ccc72673be0 by Sven Gothel
Bug 1347: Resolve Merged EGL/Desktop Profile Mapping

GLProfile.computeProfileImpl(..) as of Bug 1084 is not the culprit here and its hardware criteria filter works.

The issue is commit 99a064327bf991318841c858d21d13e55d6b39db of Bug 1203,
in particular the change in GLProfile re:
"Merge computed EGL-Profile-Map (1) and Desktop-Profile-Map (2)
per device, instead of just using the last computation,
preserving and favoratizing the Desktop-Profile-Map."

Here the Desktop-Profile-Map overwrites the EGL-Profile-Map and hence
the software mapping gets used.

Indeed, this is a regression cause by the work of Bug 1203.

+++

Resolution is to revert the explicit 'union mapping'
and rely on an enhanced 'GLContextImpl.remapAvailableGLVersions(fromDevice, toDevice)' function.
Here the EGLDrawableFactory _already_ maps the EGL device's GL Versions to the 'host' device (e.g. X11).
This has to be refined so that the remap will not overwrite the 'host' device's already detected GL Versions.

That alone is enough, so that GLProfile can simply use the 'mappedEGLProfiles' of the 'host' device if detected, which already is a merged mapping of X11 host- and EGL sub-device.

In case no 'mappedEGLProfiles' are available, we simply use the 'mappedDesktopProfiles'.
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLContext.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/GLProfile.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 71773168d8ea67c03e9712c172c2f078099f6bbc by Sven Gothel
Reuse Gluegen's Bitfield.Util for 'PowerOf2' computation

See gluegen commit 178c7b9d40e06a04790542241912ca21d2c7b92f
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/texture/Texture.java (diff)
Commit f1117325c62a3f07d1bebf5586cdeb0d1176bfb1 by Sven Gothel
Gears* tests: Obey verbose flags
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/es2/GearsES2.java (diff)
Commit 658e25429aa150fad45a7c81a5a08f9ca35c4479 by Sven Gothel
Bug 1312: GLContextShareSet Cleanup

- refine some method names, eg
-- 'addNew' -> 'mapNewEntry'
-- 'hasCreatedSharedLeft(..)' -> 'hasCreatedSharesLeft(..)'

- add 'getCreatedShareCount(..)' and 'getDestroyedShareCount(..)'
- add 'getSize()' and 'printMap(..)'
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextShareSet.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextImpl.java (diff)
Commit 79833c9e4741bec9d1f56ea8b322679756b16f70 by Sven Gothel
Bug 1312: GLContextShareSet: Utilize WeakIdentityHashMap for shareMap and its destroyedShares

Picking up Tom Nuydens suggestion to utilize a WeakIdentityHashMap instead of a IdentityHashMap,
allowing destroyed GLContext to be removed from the GLContextShareSet through the GC.

TestSharedContextVBOES2NEWT5 demonstrates the use-case, having one master context
and several slaves being spawn off, killed and new sets to be spawn off.
Here the GLContextShareSet shall not hard-reference the destroyed and user-unreferenced context,
but allowing the system to GC 'em.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT3.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT5.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLContextShareSet.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT4.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)