summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Workaround MacOS + SWT 4.26: java.lang.NullPointerException: Cannot invoke ↵Sven Gothel2023-01-225-70/+151
| | | | | | | | | | | | | | | | | | | | | | | | | "org.eclipse.swt.internal.cocoa.NSGraphicsContext.saveGraphicsState()" because "context" is null On MacOS 12+ and SWT 4.26 while not using AWT (-Djava.awt.headless=true, -XstartOnFirstThread), we recently get the following Exception from SWT (suppressed): java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.internal.cocoa.NSGraphicsContext.saveGraphicsState()" because "context" is null at org.eclipse.swt.widgets.Widget.drawRect(Widget.java:764) at org.eclipse.swt.widgets.Canvas.drawRect(Canvas.java:170) at org.eclipse.swt.widgets.Display.windowProc(Display.java:6287) at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) at org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:5565) at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5965) at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) at org.eclipse.swt.internal.cocoa.NSApplication.nextEventMatchingMask(NSApplication.java:92) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3983) at com.jogamp.opengl.test.junit.util.SWTTestUtil$WaitAction$1.run(SWTTestUtil.java:52) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183) at org.eclipse.swt.widgets.Display.syncExec(Display.java:5250) at com.jogamp.opengl.test.junit.util.SWTTestUtil$WaitAction.run(SWTTestUtil.java:63) at com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2SWT3.test02AsyncEachAnimator(TestSharedContextVBOES2SWT3.java:376) This is not observed if running using AWT (-Djava.awt.headless=false).
* Add scripts/run-test-until-crash.sh: Used to stress test one unit test (for ↵Sven Gothel2023-01-221-0/+54
| | | | sporadic crashes)
* scripts/tests*.sh: Put 'ulimit -c unlimited' in root scriptSven Gothel2023-01-223-6/+5
|
* AWTRobot.getClickTimeout(): NEWT Case: Return maximum(AWT, NEWT), otherwise ↵Sven Gothel2023-01-222-18/+43
| | | | we see click-count 2 on MacOS 12
* Test MouseAdapter: Use volatile qualifier to avoid reading too old valuesSven Gothel2023-01-222-6/+6
|
* Minor auto formatting: @Override, ..Sven Gothel2023-01-224-5/+38
|
* MacOS: JAWTWindow: Complete MacOS 12+ SIGSEGV JAW Crash Fix; This: Destroy ↵Sven Gothel2023-01-221-5/+12
| | | | | | | | | | | | | | | NSWindow on MacOS main-thread Destroy NSWindow on MacOS main-thread, avoiding spurious more rare SIGSEGV on MacOS 13/aarch64 This closes the MacOS 12+ SIGSEGV JAWT (CALayer) crash fix, see commits: - 4009198e34b50bba9582be24f33eaf83b94a2cb8 - 3c4cf1f37dc27d8d527804d195361a2287575147 - d969f473fdc72c6ca95f1796ff5af3f0c8bd51b6 - 81f395975c06a66183ad36cc43e8dc9bc7f4545b - b8977465b2fb8452c2560a5d2561b2561472edf0 - 470a0ff3a2efbe43404d5f80a403efb38005598a - 9829550f5bcb586f94f98f6d3c39f4d78fd78f3b
* MacOS: JAWTWindow.invalidateNative(): Use copied references in off-thread ↵Sven Gothel2023-01-221-10/+12
| | | | | | operations and zero source references upfront. Have user being aware of disposal then triggered and not later when performed on MacOS main-thread
* MacOS: JAWTWindow's OffscreeLayer: Show semantics in argument names and ↵Sven Gothel2023-01-222-17/+19
| | | | complete null checks in detachSurfaceLayerImpl(), setSurfaceScale()
* MacOS: JAWTWindow.layoutSurfaceLayerImpl(): Perform ↵Sven Gothel2023-01-222-6/+14
| | | | OSXUtil.FixCALayerLayout() on main thread and hence fetch and validate getAttachedSurfaceLayer() when needed
* OSXMisc.m: Show semantics: caLayer -> rootCALayerSven Gothel2023-01-221-15/+14
|
* MacOSXCGLContext.AttachGLLayerCmd: Allow DetachGLLayerCmd to revoke the ↵Sven Gothel2023-01-211-5/+11
| | | | | | | | attach command, essential if attach hasn't been done yet @ detach Otherwise a pending attach would still pass through after DetachGLLayerCmd releases the sync-lock from AttachGLCmd. DetachGLCmd also tests 0 != nsOpenGLLayer
* JAWTWindow.ctor: Initialize offscreenSurfaceLayer before useSven Gothel2023-01-211-1/+1
|
* JAWTWindow.invalidateNative() and .detachSurfaceLayerImpl(): Pass copy of ↵Sven Gothel2023-01-214-15/+17
| | | | offscreenSurfaceLayer for pending off-thread operation and immediately zero reference marking its future destruction.
* TestSharedContextVBOES2NEWT5: Try harder having the objects destroyed and ↵Sven Gothel2023-01-212-7/+17
| | | | | | taken from the GLContextShareSet map The objects were more sticky on my MacOS 12 x86_64 machine, this double GC w/ sleep 100ms resolved it.
* Isolate SWT from core nativewindow; Android apk shall only include core ↵Sven Gothel2023-01-204-7/+19
| | | | nativewindow and the android specific jogl parts (make d8 'dex'ing' happy)
* Don't import conditional platform specific 'static' code but fully qualify ↵Sven Gothel2023-01-202-43/+23
| | | | names when in use, make Android d8 (Dex'ing) happy
* check-java-major-version.sh: Use unique output to validate one class version ↵Sven Gothel2023-01-201-3/+4
| | | | used (52 for Java8)
* Test: Linux: Disable automatic tests (TBD, WIP)Sven Gothel2023-01-181-17/+31
|
* Test: MacOS: Disable automatic tests (TBD, WIP)Sven Gothel2023-01-183-0/+47
|
* MacOSXCGLDrawableFactory.canCreateGLPbuffer(): Disabled for MacOS >= 12, ↵Sven Gothel2023-01-181-2/+5
| | | | here > 10.14.0 (Mojave)
* MacOSXCGLContext: Avoid data race on lastSetNSViewCmd, use local copy like ↵Sven Gothel2023-01-181-3/+4
| | | | in madeCurrent
* Disable oculusvr-sdk for MacOS aarch64, fails to buildSven Gothel2023-01-181-2/+2
|
* JAWTWindow: Constrain AppContextInfo creation where offscreen layer is ↵Sven Gothel2023-01-182-2/+13
| | | | supported (MacOS only)
* JAWTWindow: Remove java.applet.Applet detection .. it's gone :-(Sven Gothel2023-01-181-8/+12
|
* NewtCanvasSWT: Drop all newtChild.getDelegatedWindow() debug output due to: ↵Sven Gothel2023-01-171-10/+10
| | | | null com.jogamp.newt.swt.NewtCanvasSWT.access$200(com.jogamp.newt.swt.NewtCanvasSWT)
* Test*NewtEventModifiers*: Ensure SWT is initialized before AWTSven Gothel2023-01-175-25/+66
|
* build-test: Add jvmarg.modules for jvm [11..17) and jvm>=17Sven Gothel2023-01-171-0/+30
| | | | | jvm11: --illegal-access=warn jvm17: --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED
* MacOS build-oculusvr: Add arm64Sven Gothel2023-01-171-0/+2
|
* Realign HowToBuild w/ GlueGen (Debian 11, Windows)Sven Gothel2023-01-171-51/+15
|
* Bump oculusvs-sdk, fixed warningSven Gothel2023-01-171-0/+0
|
* JAR: Add Jar module parameter 'Add-Opens: java.desktop/sun.awt ↵Sven Gothel2023-01-179-0/+9
| | | | java.desktop/sun.java2d', preparation for potential future Java17+ Jar Module
* Update test scripts: Use Java17 module jvm args: --add-opens ↵Sven Gothel2023-01-1715-176/+37
| | | | java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED
* Build: Add swt.jar definition for MacOS aarch64Sven Gothel2023-01-171-8/+3
|
* SWTTestUtil: Add WaitAction2, using the EDTUtil to dispatch the ↵Sven Gothel2023-01-162-6/+43
| | | | display.readAndDispatch() wait action (experimental)
* SWT+AWT: Ensure SWTAccessor gets called before AWT initialization on GTK/X11 ↵Sven Gothel2023-01-162-8/+63
| | | | to avoid "cannot register existing type 'GdkDisplayManager'" and subsequent SIGSEGV
* SWT tests on MacOS (w/o AWT) require '-XstartOnFirstThread' JVM argument, ↵Sven Gothel2023-01-162-1/+9
| | | | else they crash.
* TestNewtCanvasSWTGLn: Only dispose canvas1 at end of test, if not yet ↵Sven Gothel2023-01-161-16/+29
| | | | disposed (manual test case)
* NewtCanvasSWT: Remove certain DEBUG output causing an exceptionSven Gothel2023-01-161-2/+4
| | | | 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
* SWTAccessor: Adopt to SWT 4.26Sven Gothel2023-01-161-32/+27
|
* Bump gitignoreSven Gothel2023-01-161-0/+3
|
* SWT 4.26: Add cocoa-maxosx-aarch64 blob w/o src; Add ↵Sven Gothel2023-01-168-6/+1442
| | | | scripts/tests-osx-aarch64.sh
* Merge pull request #108 from PeterC-DLS/swt-420-fixSven Gothel2023-01-161-1/+9
|\ | | | | Add new class location of SWT's gtk_widget_get_window
| * Add new class location of SWT's gtk_widget_get_windowPeter Chang2022-04-141-1/+9
| | | | | | | | | | | | | | 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.
* | X11GLXContext.getPlatformExtensionsStringImpl(): Add comment from pull ↵Sven Gothel2023-01-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Bump make/lib/swt to SWT 4.26Sven Gothel2023-01-1614-381/+832
| |
* | Merge pull request #107 from ndjojo/platform-extensionsSven Gothel2023-01-161-10/+2
|\ \ | | | | | | Return either glXQueryClientString or glXQueryExtensionsString when getting the GLX extensions
| * | Update X11GLXContext.javandjojo2021-01-201-10/+2
| |/
* | Fix GLProfile GL2 Mapping: Only use GL3bc is available, add additional ↵Sven Gothel2023-01-151-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | HowToBuild: adoptopenjdk -> adoptium, openjdk-11 -> openjdk-17; MacOS: min ↵Sven Gothel2023-01-151-14/+29
| | | | | | | | SDK version >= 11.0, description to produce fat OpenJDK libraries for x86_64 and aarch64