Replace AccessController.doPrivileged() w/ SecurityUtil.doPrivileged() - via GLEmitter (details)
Moved GlueGen's PlatformPropsImpl's static OSXVersion to GLContextImpl.MacOSVersion (details)
JAWTUtil: Cleanup MacOS JVM and OS version flags: Private and store comparison result (details)
build script: Add comment setting JDK-11, since default build is JDK-17 for Java-1.8 API. (details)
Build scripts: MacOS + Windows: Use JDK-17 to build our Java-1.8 API (details)
HowToBuild: adoptopenjdk -> adoptium, openjdk-11 -> openjdk-17; MacOS: min SDK version >= 11.0, description to produce fat OpenJDK libraries for x86_64 and aarch64 (details)
Fix GLProfile GL2 Mapping: Only use GL3bc is available, add additional GLContext.isGL3bcAvailable() check (details)
NewtCanvasSWT: Remove certain DEBUG output causing an exception (details)
TestNewtCanvasSWTGLn: Only dispose canvas1 at end of test, if not yet disposed (manual test case) (details)
SWT tests on MacOS (w/o AWT) require '-XstartOnFirstThread' JVM argument, else they crash. (details)
SWT+AWT: Ensure SWTAccessor gets called before AWT initialization on GTK/X11 to avoid "cannot register existing type 'GdkDisplayManager'" and subsequent SIGSEGV (details)
SWTTestUtil: Add WaitAction2, using the EDTUtil to dispatch the display.readAndDispatch() wait action (experimental) (details)
Build: Add swt.jar definition for MacOS aarch64 (details)
Update test scripts: Use Java17 module jvm args: --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED (details)
JAR: Add Jar module parameter 'Add-Opens: java.desktop/sun.awt java.desktop/sun.java2d', preparation for potential future Java17+ Jar Module (details)
build-test: Add jvmarg.modules for jvm [11..17) and jvm>=17 (details)
Test*NewtEventModifiers*: Ensure SWT is initialized before AWT (details)
NewtCanvasSWT: Drop all newtChild.getDelegatedWindow() debug output due to: null com.jogamp.newt.swt.NewtCanvasSWT.access$200(com.jogamp.newt.swt.NewtCanvasSWT) (details)
check-java-major-version.sh: Use unique output to validate one class version used (52 for Java8) (details)
Don't import conditional platform specific 'static' code but fully qualify names when in use, make Android d8 (Dex'ing) happy (details)
Isolate SWT from core nativewindow; Android apk shall only include core nativewindow and the android specific jogl parts (make d8 'dex'ing' happy) (details)
Add new class location of SWT's gtk_widget_get_window
In SWT version 4.20, some gtk methods moved to a new gtk3 subpackage so add check and find it in there. Note, this new package was not exported until SWT 4.23 (aka 3.119.0 or v4950) so intervening versions will not work when using OSGi class loading.
HowToBuild: adoptopenjdk -> adoptium, openjdk-11 -> openjdk-17; MacOS: min SDK version >= 11.0, description to produce fat OpenJDK libraries for x86_64 and aarch64
Fix GLProfile GL2 Mapping: Only use GL3bc is available, add additional GLContext.isGL3bcAvailable() check
Julien Gouesse resolved this odd issue, where a requested GL2 profile was mapped to GL3bc but is not implemented, see <https://forum.jogamp.org/InternalError-XXX0-profile-2-GL2-gt-profileImpl-GL3bc-not-mapped-td4041754i20.html#a4042018>.
I exploded his patch a little to reuse the GLContext.getAvailableGLProfileName() result and simplify the conditional statement.
This might need more testing perhaps, plus analyis why GLContext.getAvailableGLProfileName() offers GL3bc but is not available via GLContext.isGL3bcAvailable() check.
X11GLXContext.getPlatformExtensionsStringImpl(): Add comment from pull request regarding GLX extensions
https://github.com/sgothel/jogl/pull/107
Return either glXQueryClientString or glXQueryExtensionsString when getting the GLX extensions
ndjojo: glXQueryExtensionsString will make a request for glXQueryServerString if needed and will append the necessary client-side extensions. This doc, under the section "Using GLS Extensions", also suggests checking the glXQueryExtensionsString before using GLX extensions.
+++
aschleck: For some more context this came up with the release of Mesa 20.3.0, which has client support for GLX_EXT_swap_control but no server support. The current JOGL behavior of appending the client extensions to the server extensions is incorrect. They should instead be intersected (with client-only extensions then appended) as the doc Nicole linked above says, which is precisely what glXQueryExtensionsString does. With the current extension querying behavior JOGL thinks glXSwapIntervalEXT is available under Mesa/llvmpipe even though it is not, causing a segfault at JOGL initialization time.
I originally filed this as a Mesa bug (https://gitlab.freedesktop.org/mesa/mesa/-/issues/4128) along with some code that repro'd JOGL's checking behavior but it became apparent that Mesa is fine and the checking behavior is incorrect.
NewtCanvasSWT: Remove certain DEBUG output causing an exception
Cannot invoke "com.jogamp.newt.Window.getDelegatedWindow()" because the return value of "com.jogamp.newt.swt.NewtCanvasSWT.access$200(com.jogamp.newt.swt.NewtCanvasSWT)" is null
SWT+AWT: Ensure SWTAccessor gets called before AWT initialization on GTK/X11 to avoid "cannot register existing type 'GdkDisplayManager'" and subsequent SIGSEGV
NewtCanvasSWT: Drop all newtChild.getDelegatedWindow() debug output due to: null com.jogamp.newt.swt.NewtCanvasSWT.access$200(com.jogamp.newt.swt.NewtCanvasSWT)