commit 7982cc52344c025c40da45fd4b946056a63bc855 Author: Sven Gothel Date: Tue Jan 31 22:57:23 2023 +0100 NEWT Soft-PixelScale (p7): get{Global->}PixelScaleEnv(..): Support per monitor values w/ QT_SCREEN_SCALE_FACTORS syntax, use for X11 Per-monitor values are parsed if value is not a float and stored in a given Map, parallel to a detected global_pixel_scale_xy. The per-monitor value syntax matches QT_SCREEN_SCALE_FACTORS, i.e. the regular expression '(=;)+', e.g. QT_SCREEN_SCALE_FACTORS='DP-1=1.25;DP-2=1.25;HDMI-1=1.25;' The per-monitor value is preferred and on X11 stored within the MonitorDevice, matching the MonitorDevice's name. The following env-var names are searched on X11: "QT_SCREEN_SCALE_FACTORS", "QT_SCALE_FACTOR", "GDK_SCALE", "SOFT_SCALE" commit ad38d1559854985b1131e5b6c7274a392b5bc265 Author: Sven Gothel Date: Tue Jan 31 22:45:17 2023 +0100 NEWT X11: Fix positionChanged: We need to translate the 0/0 client position to the root window (global screen) .. .. otherwise, we might end up receiving a client position of 0/0, while being positioned in a different absolute place within root. commit 84fe8402e4845ee1e14071e4922a7f2b3b445851 Author: Sven Gothel Date: Tue Jan 31 22:40:55 2023 +0100 NEWT MonitorDevice: Fix pixelScale storage, own float[2], don't reuse given object commit 97de7b52b8c0ca7f1afff394321a15e7f3df293d Author: Sven Gothel Date: Tue Jan 31 22:39:47 2023 +0100 NEWT Screen: Cleanup get*Monitor*() methods commit 1632172369d0d6fee2ab21788582033dc316c7af Author: Sven Gothel Date: Tue Jan 31 22:38:09 2023 +0100 NEWT: MonitorDevice: Add monitor-name, maybe an empty string. Implemented for X11 and Windows for now. commit 3462aa70de7d4a6fdd59f0cb90b6563d68731c61 Author: Sven Gothel Date: Tue Jan 31 09:16:43 2023 +0100 NEWT WindowImpl: Bring back DEBUG output on positionChanged(..) commit d6b4c7dd3546b8de876a9ddcbf5f1f56be8ef281 Author: Sven Gothel Date: Tue Jan 31 09:15:59 2023 +0100 NEWT Regression: Move superSizeChangedOffThread() back to iOS/MacOS WindowDriver, used to call the super class method. Regression of commit cfc35549810d3a0fb5eeb866c9450417e48cd8a1 Note to myself: You can't enforce a 'this' method call overridden with a virtual from a subclass. commit 9b1b1df6afe32be3ad514c3e3c7b31c940225e2c Author: Sven Gothel Date: Tue Jan 31 07:49:31 2023 +0100 Fix comment for WindowImpl.insets: value is in window units commit 97b79ad351e48e7d3c6f9c95bacdf4f9d5d158ef Author: Sven Gothel Date: Tue Jan 31 07:35:58 2023 +0100 NEWT Soft-PixelScale (p6): Implement Soft-PixelScale for X11 and Windows ... (working state) Both: - Using Soft-PixelScale mode, i.e. converting all given window-units to pixel-units for native GDI/X11 ops - Using scaled pixel-sized surface - Adjusting NEWT's Monitor's window-unit viewport value to pixel-scale For X11: - Using global scale factor from environment variable, either: "GDK_SCALE", "QT_SCALE_FACTOR" or "SOFT_SCALE". The latter is for testing only. See https://wiki.archlinux.org/title/HiDPI For Windows: - Using actual monitor's pixel-scale via native SHC API (Shellscaling API, shcore.dll) Misc: - SurfaceScaleUtils.getGlobalPixelScaleEnv() reads a float value from given env names, first come, first serve - MonitorModeProps.streamInMonitorDevice(..): Add `invscale_wuviewport` argument to scale wuvieport for soft-pixel-scale - TestGearsNEWT: Enhance GL2 demo to be suitable for manual tests, this since my Windows KVM machine doesn't support ES2 - TestGLContextDrawableSwitch10NEWT: Add a few more test constraints .. working Tested: - Manually on a Windows virtual machine (KVM) using - 2 virtualized 'Video QXL' cards and - and 'remote-viewer' to see the 2 monitors since `Virtual Machine Manager` build-in doesn't support - remote-viewer spice://localhost:5917 - Manually on a Linux machine w/ SOFT_SCALE - Both, X11 and Windows - Place window on each monitor - Move window across monitors w/ pixel-scale change (or not) - TODO: Test and fix utilization with AWT, i.e. NewtCanvasAWT commit 6eb13066996e94b2fe40bf64e74ea43d8f4e9171 Author: Sven Gothel Date: Tue Jan 31 05:02:40 2023 +0100 NEWT Soft-PixelScale (p5): Add WindowImpl.applySoftPixelScale(..) for general usage See MonitorDevice.getOrientationTo(MonitorDevice, int[]) to setup the move_diff as added in commit 43dc472c4797f34e4079028a5eb04bc420c11c2a commit ab6d84721e2a15550289e14b751e06701bd68726 Author: Sven Gothel Date: Tue Jan 31 05:00:57 2023 +0100 NEWT Soft-PixelScale (p4): WindowImpl: Change SetSizeAction to optionally set a custom position additionally to size This added functionality is desired when adjusting the window position and size when changing the soft-pixel-scale commit 1d4c077b29a69fd13526dfd25d00ee87c0d5b3fe Author: Sven Gothel Date: Tue Jan 31 04:58:29 2023 +0100 NEWT Soft-PixelScale (p3): WindowImpl.createNativeImpl(..): Add boolean positionModified[] return value, allowing to not wait for the previous custom position This is required if createNativeImpl(..) modifies the target position, i.e. due to soft-pixel-scale. commit 43dc472c4797f34e4079028a5eb04bc420c11c2a Author: Sven Gothel Date: Tue Jan 31 04:54:13 2023 +0100 NEWT Soft-PixelScale (p2): MonitorDevice: Add getOrientationTo(..) to determine the orientation of this monitor to the other incl. the 'move_diff' move_diff int[2] to store the move delta for each axis from this-monitor to the other This will be utilized when a NEWT window moved across monitors to signal the move_diff, which helps to properly adjust the new position. Tested: All 4 monitor crossings right_of, left_of, above and below. TODO: Test and support a 'diagonal' move, i.e. move_diff on both axis. commit cfc35549810d3a0fb5eeb866c9450417e48cd8a1 Author: Sven Gothel Date: Tue Jan 31 04:49:43 2023 +0100 NEWT Soft-PixelScale (p1): WindowImpl: Separate window and pixel units for size and position via atomic-replacable int arrays NEWT's Soft-PixelScale supports software pixel-scale by multiplying the underlying surface pixel-size with the scale-factor and dividing the window position and size by same scale-factor. Hence the window position and size space is kept virtually steady at virtually assumed DPI 96 at higher actual screen DPI and the surface size is adjusted. +++ This window- and pixel-unit separation also includes all callbacks for the native driver implementations, hence the changes native code - allowing to determine whether window- or pixel-units were given. commit ef206c881a9fd462e52241fac506bee5441902ad Author: Sven Gothel Date: Tue Jan 31 04:27:30 2023 +0100 Fix NewtFactoryAWT: screen.getMonitor(..) -> screen.getMonitorById(..); Misc left-over changes .. GDIUtil: Remove uncommented GetMonitorPixelScale(..) point variant JAWTUtil: Clarify Java version comment w/ spacing NEWT Display.getThreadName(): Return 'Thread[0x, ]' NEWT Screen: Add getFullyEnteredMonitor(..) NewtCanvasAWT: @SuppressWarnings for determineIfApplet() and use FQN within method commit 50f07e601a9de0ccad0cdb393898dc01d147cadb Author: Sven Gothel Date: Tue Jan 31 04:20:46 2023 +0100 Update Eclipse settings (add openjfx jar) commit ed4cf029c22c3380e04971011a51ef2c666aa6d9 Author: Sven Gothel Date: Tue Jan 31 04:20:16 2023 +0100 NativeWindow: Add getBounds() (moved from NEWT Window) and getSurfaceBounds() commit 54760cd667365277c9c2473350bdc56ba5398348 Author: Sven Gothel Date: Tue Jan 31 04:00:04 2023 +0100 Nativewindow Rectangle*: Add contains, scale*(float..) and make union(List) public; Fix union/intersection 'off-by-1' for pos2. commit bebb7e9b078f6eaed478143ffbdeeece5ca0e037 Author: Sven Gothel Date: Tue Jan 31 03:57:48 2023 +0100 GDIUtil: Add GetMonitor*() variants incl. PixelScale (Part-2, adding missing native header and code files) Part-1 in commit e96aeb6e9acd2b1435f5fad244a1488e74a3a6d6 commit e96aeb6e9acd2b1435f5fad244a1488e74a3a6d6 Author: Sven Gothel Date: Sun Jan 29 19:56:45 2023 +0100 GDIUtil: Add GetMonitor*() variants incl. PixelScale; NEWT MonitorDevice: Add 64-bit nativeHandle (Windows HMONITOR), add PixelScale for Windows commit 516d3d57eb54f6fe95d842d29a2929e024ee8f34 Author: Sven Gothel Date: Fri Jan 27 12:45:33 2023 +0100 WindowImpl: Reorder protected methods, groupd callbacks used for native callbacks .. commit 5a960e361ffb3838417de66d74b463eee1a9d181 Author: Sven Gothel Date: Tue Jan 24 13:36:48 2023 +0100 HowToBuild: Add back multiarch i386 on amd64 section for Debian 11 commit 8e1233037e130629b2406ba01852ca17310753a2 Author: Sven Gothel Date: Mon Jan 23 14:05:03 2023 +0100 TestDisplayLifecycle01NEWT: Invisible window might have been moved away (Windows 10) commit df73148ad769d65d2d4633c3f80deeccac90ad39 Author: Sven Gothel Date: Mon Jan 23 10:39:37 2023 +0100 tests-x64.bat: Use absolute path for LIB_DIR (commented out, using jars) commit 6a5e104d784a09c03525d4c40d83ad4696601a67 Author: Sven Gothel Date: Mon Jan 23 10:12:44 2023 +0100 Remove Windows dll-rename, adopting to cpptasks.jar change commit bd2004b140f12afeb2e2337a1b426a212b1ba492 Author: Sven Gothel Date: Sun Jan 22 09:17:41 2023 +0100 Execute AWT's Frame.setTitle() on AWT-EDT if already visible (avoid rare deadlock) commit be4fa1f3fc1a97ad712b8d907e611a99c2bd4c83 Author: Sven Gothel Date: Sun Jan 22 08:06:18 2023 +0100 TestSharedContextVBOES2SWT3: Remove unused import commit f8db4cf0d7133f938b74a0c88047f8db2734e5f5 Author: Sven Gothel Date: Sun Jan 22 08:06:00 2023 +0100 SWTAccessor.invokeOnOSTKThread(): Fix comment .. commit 766b2507ddaf792e9345076e69666032d008b0bd Author: Sven Gothel Date: Sun Jan 22 08:05:20 2023 +0100 build-test.xml junit.run.swt.awt: Add missing 'jvmarg.generic' commit f8a932f932bad986c649e287fd042210341cdcbf Author: Sven Gothel Date: Sun Jan 22 07:05:46 2023 +0100 MacOSXCGLContext: Fix typo in DEBUG output commit f91bd273d59eef08d8ae2d8b2a86e8ba2c8f17ac Author: Sven Gothel Date: Sun Jan 22 07:05:30 2023 +0100 MacOSXCGLContext: Enable DEBUG1398 explicitly w/o debugAll() commit 9e9dc6d407baa893234e2f1e4a938cef27848eaa Author: Sven Gothel Date: Sun Jan 22 07:04:48 2023 +0100 jogl's Debug.class: Add explicit debugNotAll(..) variant to skip debugAll() commit 7a352d3747233be44edb4333da108228ca75f0f3 Author: Sven Gothel Date: Sun Jan 22 07:04:11 2023 +0100 Workaround MacOS + SWT 4.26: java.lang.NullPointerException: Cannot invoke "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). commit ae21ab3e418cb80de10dd1fd265b67bec7d2d31e Author: Sven Gothel Date: Sun Jan 22 03:36:19 2023 +0100 Add scripts/run-test-until-crash.sh: Used to stress test one unit test (for sporadic crashes) commit 5b8f42a801de10c6b324edae0dacfbbdd2742467 Author: Sven Gothel Date: Sun Jan 22 03:35:06 2023 +0100 scripts/tests*.sh: Put 'ulimit -c unlimited' in root script commit d509a3d435e8357a6148617d7792f164dbd0b529 Author: Sven Gothel Date: Sun Jan 22 03:27:51 2023 +0100 AWTRobot.getClickTimeout(): NEWT Case: Return maximum(AWT, NEWT), otherwise we see click-count 2 on MacOS 12 commit b0ac7056205ed423eab9a04417d2e9e6387cc5a0 Author: Sven Gothel Date: Sun Jan 22 03:17:00 2023 +0100 Test MouseAdapter: Use volatile qualifier to avoid reading too old values commit 06b1563dc84125ab1c589499f30034162ddca0c8 Author: Sven Gothel Date: Sun Jan 22 03:16:09 2023 +0100 Minor auto formatting: @Override, .. commit 1711008b95534d1bf3c87570990253c0fa7cd9f6 Author: Sven Gothel Date: Sun Jan 22 03:14:21 2023 +0100 MacOS: JAWTWindow: Complete MacOS 12+ SIGSEGV JAW Crash Fix; This: Destroy 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 commit 9829550f5bcb586f94f98f6d3c39f4d78fd78f3b Author: Sven Gothel Date: Sun Jan 22 01:27:23 2023 +0100 MacOS: JAWTWindow.invalidateNative(): Use copied references in off-thread operations and zero source references upfront. Have user being aware of disposal then triggered and not later when performed on MacOS main-thread commit 470a0ff3a2efbe43404d5f80a403efb38005598a Author: Sven Gothel Date: Sun Jan 22 01:25:24 2023 +0100 MacOS: JAWTWindow's OffscreeLayer: Show semantics in argument names and complete null checks in detachSurfaceLayerImpl(), setSurfaceScale() commit b8977465b2fb8452c2560a5d2561b2561472edf0 Author: Sven Gothel Date: Sun Jan 22 01:21:31 2023 +0100 MacOS: JAWTWindow.layoutSurfaceLayerImpl(): Perform OSXUtil.FixCALayerLayout() on main thread and hence fetch and validate getAttachedSurfaceLayer() when needed commit 81f395975c06a66183ad36cc43e8dc9bc7f4545b Author: Sven Gothel Date: Sun Jan 22 01:18:12 2023 +0100 OSXMisc.m: Show semantics: caLayer -> rootCALayer commit d969f473fdc72c6ca95f1796ff5af3f0c8bd51b6 Author: Sven Gothel Date: Sat Jan 21 21:08:09 2023 +0100 MacOSXCGLContext.AttachGLLayerCmd: Allow DetachGLLayerCmd to revoke the 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 commit 3c4cf1f37dc27d8d527804d195361a2287575147 Author: Sven Gothel Date: Sat Jan 21 21:03:00 2023 +0100 JAWTWindow.ctor: Initialize offscreenSurfaceLayer before use commit 4009198e34b50bba9582be24f33eaf83b94a2cb8 Author: Sven Gothel Date: Sat Jan 21 21:01:20 2023 +0100 JAWTWindow.invalidateNative() and .detachSurfaceLayerImpl(): Pass copy of offscreenSurfaceLayer for pending off-thread operation and immediately zero reference marking its future destruction. commit f71abdf19bdcf3ccfcc5455cb15aff4e93d468bb Author: Sven Gothel Date: Sat Jan 21 04:15:35 2023 +0100 TestSharedContextVBOES2NEWT5: Try harder having the objects destroyed and 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. commit 1645b44851550989736b1ec93af46d5892ec56e1 Author: Sven Gothel Date: Fri Jan 20 05:36:22 2023 +0100 Isolate SWT from core nativewindow; Android apk shall only include core nativewindow and the android specific jogl parts (make d8 'dex'ing' happy) commit 05f26f2638c2ac1cc8eab7a8b1c951020df03dd8 Author: Sven Gothel Date: Fri Jan 20 05:34:32 2023 +0100 Don't import conditional platform specific 'static' code but fully qualify names when in use, make Android d8 (Dex'ing) happy commit 7f820007531da1d44c8016dbba1e2f8ade17f0e5 Author: Sven Gothel Date: Fri Jan 20 04:12:48 2023 +0100 check-java-major-version.sh: Use unique output to validate one class version used (52 for Java8) commit 54ed519d5000765499f7783b57d00fbe75f5f046 Author: Sven Gothel Date: Wed Jan 18 04:47:46 2023 +0100 Test: Linux: Disable automatic tests (TBD, WIP) commit 9e5599b0687a27ffd1251f7c058a70b1f94324aa Author: Sven Gothel Date: Wed Jan 18 04:47:34 2023 +0100 Test: MacOS: Disable automatic tests (TBD, WIP) commit 1562a6d4c71b27378612306f825c2530c938f859 Author: Sven Gothel Date: Wed Jan 18 04:37:18 2023 +0100 MacOSXCGLDrawableFactory.canCreateGLPbuffer(): Disabled for MacOS >= 12, here > 10.14.0 (Mojave) commit 86460616271743970d1ffb2f64ee671e3deeb4cc Author: Sven Gothel Date: Wed Jan 18 04:35:01 2023 +0100 MacOSXCGLContext: Avoid data race on lastSetNSViewCmd, use local copy like in madeCurrent commit d55cc1f40820ae93e8ab0d5930514bc33b3e6a2f Author: Sven Gothel Date: Wed Jan 18 03:29:46 2023 +0100 Disable oculusvr-sdk for MacOS aarch64, fails to build commit 95c3d9162693c0e655bd8764faefd8126a3ec982 Author: Sven Gothel Date: Wed Jan 18 00:12:24 2023 +0100 JAWTWindow: Constrain AppContextInfo creation where offscreen layer is supported (MacOS only) commit 736a127297aa561ea5967acd66d61d494646dca3 Author: Sven Gothel Date: Wed Jan 18 00:08:39 2023 +0100 JAWTWindow: Remove java.applet.Applet detection .. it's gone :-( commit f76378696aa20df6bbb260d859c328c0d83f73b7 Author: Sven Gothel Date: Tue Jan 17 23:39:58 2023 +0100 NewtCanvasSWT: Drop all newtChild.getDelegatedWindow() debug output due to: null com.jogamp.newt.swt.NewtCanvasSWT.access$200(com.jogamp.newt.swt.NewtCanvasSWT) commit 509d8a01a2655fa2a1d1e3cdf4b357bd7294fb3e Author: Sven Gothel Date: Tue Jan 17 23:39:04 2023 +0100 Test*NewtEventModifiers*: Ensure SWT is initialized before AWT commit c33ea9f33dd0f074464ee119e0c631b091fdeb1a Author: Sven Gothel Date: Tue Jan 17 23:37:29 2023 +0100 build-test: Add jvmarg.modules for jvm [11..17) and jvm>=17 jvm11: --illegal-access=warn jvm17: --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED commit 1695e5b63b259647dc90947e69822555a3c5408c Author: Sven Gothel Date: Tue Jan 17 23:35:51 2023 +0100 MacOS build-oculusvr: Add arm64 commit fb82ac1c071c2e6638c1d8ecb1567fe0046aeed8 Author: Sven Gothel Date: Tue Jan 17 23:35:29 2023 +0100 Realign HowToBuild w/ GlueGen (Debian 11, Windows) commit 4b0c0aa9612c804b1e2e434e0eed0fd4d938e16e Author: Sven Gothel Date: Tue Jan 17 23:35:02 2023 +0100 Bump oculusvs-sdk, fixed warning commit a4dd3fb979908b593e663e754b7de5f333fe85e7 Author: Sven Gothel Date: Tue Jan 17 21:41:04 2023 +0100 JAR: Add Jar module parameter 'Add-Opens: java.desktop/sun.awt java.desktop/sun.java2d', preparation for potential future Java17+ Jar Module commit 37fbc231dba30fb9abb2466f372b95deef598bf7 Author: Sven Gothel Date: Tue Jan 17 21:30:35 2023 +0100 Update test scripts: Use Java17 module jvm args: --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED commit 8127406b4f537d63245c2bf9febfa0997f82de6e Author: Sven Gothel Date: Tue Jan 17 21:25:13 2023 +0100 Build: Add swt.jar definition for MacOS aarch64 commit 5fe510b9be98b8490b6ffb4e0ca0a76115f429ab Author: Sven Gothel Date: Mon Jan 16 20:34:56 2023 +0100 SWTTestUtil: Add WaitAction2, using the EDTUtil to dispatch the display.readAndDispatch() wait action (experimental) commit 8eb84e8234bc85f2cf096a1e24523660441d0b73 Author: Sven Gothel Date: Mon Jan 16 20:30:48 2023 +0100 SWT+AWT: Ensure SWTAccessor gets called before AWT initialization on GTK/X11 to avoid "cannot register existing type 'GdkDisplayManager'" and subsequent SIGSEGV commit 4b31fa321bdf02ce87648dcb7c0034b297a9e71f Author: Sven Gothel Date: Mon Jan 16 02:56:32 2023 +0100 SWT tests on MacOS (w/o AWT) require '-XstartOnFirstThread' JVM argument, else they crash. commit 654a3a9bb82c20b03a5286a7d9ac84c3a38923d4 Author: Sven Gothel Date: Mon Jan 16 02:23:51 2023 +0100 TestNewtCanvasSWTGLn: Only dispose canvas1 at end of test, if not yet disposed (manual test case) commit 3430e0abeee2e934f167edd38126450f27c7b348 Author: Sven Gothel Date: Mon Jan 16 02:21:19 2023 +0100 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 commit c8da0cb0b636c9f06a59c1f7ba9521b1d5f4ee65 Author: Sven Gothel Date: Mon Jan 16 02:20:30 2023 +0100 SWTAccessor: Adopt to SWT 4.26 commit e568487a8b61123793c83a7bab2a257a2e2c22ca Author: Sven Gothel Date: Mon Jan 16 02:19:29 2023 +0100 Bump gitignore commit d22c3f963bab9afa8fffd198362cfcda0498a381 Author: Sven Gothel Date: Mon Jan 16 02:19:07 2023 +0100 SWT 4.26: Add cocoa-maxosx-aarch64 blob w/o src; Add scripts/tests-osx-aarch64.sh commit a8bb3295b467d35d26bc33c11797b516ba775903 Author: Sven Gothel Date: Mon Jan 16 01:02:47 2023 +0100 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. commit a1514cb44f2d9e82e737cc6a6f7e3477bb0fbbcc Author: Sven Gothel Date: Mon Jan 16 00:59:34 2023 +0100 Bump make/lib/swt to SWT 4.26 commit edf0d33ba913fd37f9e6ce0a771d8dfb6fa962e6 Author: Sven Gothel Date: Sun Jan 15 05:46:40 2023 +0100 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 . 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. commit f10f0658a8e6e91684ab07573fafe20dd87219d3 Author: Sven Gothel Date: Sun Jan 15 04:57:34 2023 +0100 HowToBuild: adoptopenjdk -> adoptium, openjdk-11 -> openjdk-17; MacOS: min SDK version >= 11.0, description to produce fat OpenJDK libraries for x86_64 and aarch64 commit b6a10d76e0c6085ca77420730e7295341f1638b8 Author: Sven Gothel Date: Sun Jan 15 04:08:59 2023 +0100 Build scripts: MacOS + Windows: Use JDK-17 to build our Java-1.8 API commit 629bf805104b65f312a839db1296fd5399a1f5dc Author: Sven Gothel Date: Sun Jan 15 03:48:44 2023 +0100 build script: Add comment setting JDK-11, since default build is JDK-17 for Java-1.8 API. commit 471683eb4550af38f2186056f6094c5ea361b8b4 Author: Sven Gothel Date: Sun Jan 15 03:47:38 2023 +0100 JAWTUtil: Cleanup MacOS JVM and OS version flags: Private and store comparison result commit 7f9c117d01f5eba1af5bf5843480f7d9ff7ce4a0 Author: Sven Gothel Date: Sun Jan 15 03:46:18 2023 +0100 Moved GlueGen's PlatformPropsImpl's static OSXVersion to GLContextImpl.MacOSVersion commit 0df8f2042a1bcb1c5995c3546f1ea9ab3e844170 Author: Sven Gothel Date: Sat Jan 14 21:38:27 2023 +0100 Replace AccessController.doPrivileged() w/ SecurityUtil.doPrivileged() - via GLEmitter commit 72a8be591d5daba1e4e231c386812c543d503fce Author: Sven Gothel Date: Sat Jan 14 21:31:45 2023 +0100 Replace AccessController.doPrivileged() w/ SecurityUtil.doPrivileged() commit 4dfe7369d8e58978dc56235344731f927a1c8ae4 Author: Sven Gothel Date: Sat Jan 14 20:32:59 2023 +0100 Eclipse: Update settings commit 8a2938cd36fd695dec0804997319f799ba4e4929 Author: Sven Gothel Date: Sat Jan 14 20:28:06 2023 +0100 MacOS: NEWT: Remove keySymbol mapping using 'HIToolbox' TSMGetInputSourceProperty(), crashing on MacOS >= 13 Perhaps we want a replacement? Fallback code uses keyCode, i.e. dropping the current keyboard layout (-> US). commit 4b944d5ae8cd0040ee43fcdefa92bfe06c56518b Author: Sven Gothel Date: Sat Jan 14 20:23:46 2023 +0100 MacOS: MacOSXCGLContext.drawableUpdatedNotify(): Issue updateContext() on main thread, deferred w/o wait (MacOS >= 13) updateContextRegister() stays in current thread. commit b367231929a8e4d8eac53933a59a297b75ef5e58 Author: Sven Gothel Date: Sat Jan 14 20:19:55 2023 +0100 MacOS: MacOSXCGLContext.NSOpenGLImpl.release(): Don't wait for releasing context view on MacOS >= 10.14 (deadlock) commit d2d1b56db362f2a5ce45e034141acb52f5254770 Author: Sven Gothel Date: Sat Jan 14 20:18:39 2023 +0100 MacOS: MacOSXCGLContext: Simplify version flags, remove Tiger, add Mojave. commit 4756314cf631f180aad89d54d35e51a470667a89 Author: Sven Gothel Date: Sat Jan 14 19:58:59 2023 +0100 MacOS: Prepare build + test on aarch64 w/o ffmpeg and SWT commit a85012696606080a474185fffc380e736a37eeaa Author: Peter Chang Date: Thu Apr 14 13:18:48 2022 +0100 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. commit ecbd490cfaaeb44905ce3009004966c1f99a0675 Author: ndjojo <77743111+ndjojo@users.noreply.github.com> Date: Wed Jan 20 16:11:57 2021 -0500 Update X11GLXContext.java commit ecf6e499d3b582d651a28693c871ca14d6e8c991 Author: Sven Gothel Date: Mon Jun 15 01:50:05 2020 +0200 Fix TestBug1398Deadlock02AWT: Missed adaption of unit test to AWTRobotUtil & GLTestUtil changes when 'front porting' Thanks to Julien Gouesse reminding me of this issue. commit d335d99df25cc929d06765c3f1af3944f124f6a7 Author: Sven Gothel Date: Mon Jun 15 01:21:44 2020 +0200 Fix 'typo' in branching, valid config index is >= 0 (not < 0) This issue was introduced in commit 0a6a592c04a85d8124aa9d38b67f0caa1d739b75 and the '2nd choice branch' obviously never tested. Thanks to Lathanda finding this issue on 6/14/20. commit 5c729959363167f3b9286c4b82d8d0347ef6fca8 Author: Sven Gothel Date: Mon Apr 6 13:24:02 2020 +0200 Bug 1398: MacOSXCGLContext: Ensure AWT is available before using it when query java.awt.EventQueue.isDispatchThread() If AWT is not available, isAWTEventDispatchThread() returns false, otherwise returns java.awt.EventQueue.isDispatchThread(). commit 685695952ee273a6ca9939f0b9566427bc542349 Author: Sven Gothel Date: Mon Apr 6 13:27:41 2020 +0200 Bug 1398: Adding TestBug1398Deadlock02AWT to manual testing tests.sh See commits 9e8a24933e9f396406f895ec137d18aefb1c2fe8 and 348d2ab9a20a3b339e2cb1ff4250c3de76c79c2a commit 348d2ab9a20a3b339e2cb1ff4250c3de76c79c2a Author: Sven Gothel Date: Fri Mar 27 16:28:48 2020 +0100 Bug 1398: Adding test case of commit f33681bbeeb459af4de81331d6d9241d8c9a75de commit 9e8a24933e9f396406f895ec137d18aefb1c2fe8 Author: Sven Gothel Date: Fri Mar 27 15:06:04 2020 +0100 Bug 1398: Avoid AWT-AppKit blocking feedback flush deadlock and SetNSViewCmd on initial makeCurrent when offscreen makeCurrent shall skip SetNSViewCmd for offscreen, i.e. refine criteria of nsViewChanged. Previous term enforced SetNSViewCmd on initial call as lastNSViewDescr was null. Expand first term to require an actual non null NSView. contextMadeCurrent must avoid blocking to wait for completion of our SetNSViewCmd on AppKit. AWT has procedures running on AppKit under certain situations, where it issues a feedback flush on AWTEDT (from Appkit) blocking. This in turn deadlocks our SetNSViewCmd waiting on the AppKit, as we are blocking the AWTEDT waiting for same command. Further avoiding other potential deadlocks, by adding a 500ms timeout. Also clearing the lastSetNSViewCmd field post wait, regardless, which avoid repeatitive SetNSViewCmd issuance on timeout. Note that the SetNSViewCmd, we failed to wait for eventually gets executed. commit 0779f229b0e9538c640b18b9a4e095af1f5a35b3 Author: Sven Gothel Date: Fri Mar 6 21:34:17 2020 +0100 Add missing SWTTestUtil, missed in commit 36ca7245653b1a0897f2070b9acbe0f0898f5949 commit d88ca606f67e16c144b36f8fd1f188fdf8531ee0 Author: Sven Gothel Date: Thu Mar 5 20:04:17 2020 +0100 Bug 1398: Ensure CGLContext lock will be acquired before leaving user makeCurrent() call Command SetNSViewCmd sets NSOpenGLContext's NSView via [NSOpenGLContext setView:] on the main-thread as enforced since XCode 11 using SDK macosx10.15, see Bug 1398. This command is injected into OSX's main-thread @ NSOpenGLImpl.makeCurrent(long) only if required, i.e. issued only for a newly bound NSView and skipped for surface-less or offscreen 'surfaces'. This operation must be performed w/o blocking other tasks locking the NativeSurface on main-thread to complete. Since [NSOpenGLContext setView:] acquires the CGLContext lock on the main-thread, it can't be locked by the calling thread until this task has been completed. Command issuer NSOpenGLImpl.makeCurrent(long) will not acquire the CGLContext lock if this command is pending. contextMadeCurrent(true) cures the potential unlocked CGLContext by issuing a whole GLContext.release() and GLContext.makeCurrent() cycle while waiting for this command to be completed in-between. This GLContext cycle also ensures an unlocked NativeSurface.getLock() in-between, allowing potentially blocked other tasks on the main-thread to complete and hence this queued command to execute. Notable test provoking critical multithreading issues is com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NewtCanvasSWT. Notable test exposing issues with an unlocked CGLContext is com.jogamp.opengl.test.junit.jogl.glsl.TestGLSLShaderState02NEWT. commit 3e141416ea6c85c14dc622dae57f071d5fd0ff4f Author: Sven Gothel Date: Thu Mar 5 19:20:19 2020 +0100 Bug 1398: Expose NativeSurface implementation's RecursiveLock if utilized This prepares proper release of the acquired NativeSurface lock to cure the missing CGLContext lock, see followup commit. commit 36ca7245653b1a0897f2070b9acbe0f0898f5949 Author: Sven Gothel Date: Wed Mar 4 14:42:07 2020 +0100 OSX/SWT Testing: Drop using 'com.jogamp.newt.util.MainThread' enforcing default test behavior SWT and OSX's UI TK have their strict threading policy we require to comply with, e.g. see Bug 1398 lately. It doesn't help using our own MainThread vehicle to move the unit test on the OS main thread, as this removes potential causes of deadlocks - which we intend to find and resolve. This patch removed using MainThread altogether from our ant unit testing recipe as well from our manual test scripts. Unit tests are no more executed on the 'main thread'. SWT tests are patched to comply with SWT's UI threading policy. We also catch violations within NewtCanvasSWT and our SWT GLCanvas to provide same behavior on all platforms. commit 8ccea1f0ff48a39e806839330ebeb5369bc0c79a Author: Sven Gothel Date: Mon Feb 24 05:35:53 2020 +0100 TestSharedContextVBOES2*3: Properly validateBuffers and setSyncObjects(..) in concurrent async test case. commit 0fc0b0d5da38bc3a73689b95626861ca9d70e5de Author: Sven Gothel Date: Mon Feb 24 05:33:58 2020 +0100 IOSUtil.IsMainThread(): Utilize caching ThreadLocal like OSXUtil's variant. commit d1a4d790c89934616fa1883312b4064bda9fa420 Author: Sven Gothel Date: Mon Feb 24 05:07:15 2020 +0100 Bug 1398: MacOS: Perform [NSOpenGLContext setView:] on main-thread async w/o blocking Set NSOpenGLContext's NSView via [NSOpenGLContext setView:] on the main-thread as enforced since XCode 11 using SDL macosx10.15, using Runnable SetNSViewCmd. This operation must be performed async w/o blocking to allow other tasks locking the NativeSurface on main-thread to complete. Further, since [NSOpenGLContext setView:] acquired the CGLContext lock, it can't be locked until this task has been completed. Worst case scenario for a late [NSOpenGLContext setView:] issuance might be corrupt initial frame(s) displayed. Since all concurrent locking is performed within JOGL, the unlocked CGLContext window risk is only academic. However, if native 3rd party toolkits take share control, we might have a situation. +++ SetNSViewCmd is issued @ makeCurrent() now as opposed to createContext(..) and associateDrawable(true). The latter was actually late as well, as it also happened after makeCurrent when updating the drawable association. It also missed setting a null NSView when detached! release() will also set a null NSView if called after associateDrawable(false). SetNSViewCmd will only be issued if the NSView has been changed, i.e. first makeCurrent() or changing the drawable. If issued, makeCurrent() will not lock the underlying CGLContext and hence allow SetNSViewCmd to perform - see above. +++ NSViewDescriptor class structure replaces the less convenient method 'getNSViewHandle(..)', exposing all collected drawable characteristics as fields. NSViewDescriptor also respects a ProxySurface's OPT_UPSTREAM_SURFACELESS mode, which results in not using any underlying NSView - similar to OPT_UPSTREAM_WINDOW_INVISIBLE. This change ensures that all surfaceless GL operations will not use any NSView. commit 78b96b89a68ff35969aea83de294cd3cc1178f26 Author: Sven Gothel Date: Sat Feb 22 15:11:17 2020 +0100 Bug 1398: Crash only occurs @ -[NSOpenGLContext setView:] when using XCode 11 _and_ its default SDK 'macosx10.15' This patch demonstrates that using the SDK 'macosx10.11' does not cause the crash @ -[NSOpenGLContext setView:]. SDK 'macosx10.15' enforces Apple's own Cargo Cult of 'main-thread' by throwing a SIGILL signal (or SIGABRT) - essentially an exception. This surely renders our code officially invalid due to this policy, i.e. we are not allowed to issue [* setView] on any non main-thread. +++ The crash occurs independently of used Java version on Java 8 - 11, as well as on JogAmp 2.3.2 - current master tip. +++ The initial remedy to issue said action on the main-thread in a blocking/wait manner has the risk to deadlock, due to 1) [NSOpenGLContext setView:] itself using a mutex (Thanks to Ken Harris's analysis) and (2) in case where we are 'thread hopping': - [main-thread] Event like 'window ready' -> kick off action on EDT-thread *blocking* - [EDT-thread] Create stuff incl OpenGLContext -> kick off setView on main-thread *blocking* This has to be further investigated. This crash finally has been reliably reproduced now. commit ff780fc11602fb79a7ce1dcf879fdaeb865b9fa8 Author: Sven Gothel Date: Fri Feb 21 19:23:52 2020 +0100 Bug 1398: Refine test case: Make classpath and libpath runtime configurable + show JOGL version commit f4f92cdc0eb89c62070a865601527097e6d5cc72 Author: Sven Gothel Date: Fri Feb 21 15:03:42 2020 +0100 Bug 1398: Fixing native test allowing its execution using JOGL 2.3.2 and latest tip using XCode 11 Changes to test - Using own 'NSApplicationMain' entry to avoid the 'missing Info.plist' message! - Configurable CLASSPATH and LIBPATH at compile time. Note that the java.library.path is now hardcoded as well. - Don't close stderr in test, just fflush - Don't close the JVM after launch via 'die(env)', let it run. - Java: Add GLEventListener RedSquareES2 to see something in action @ 30fps - Java: GLCanvase visible bounds commit 4fad4869d4a929739c830f6ce3ac171d8dd5427a Author: Sven Gothel Date: Fri Feb 21 14:58:10 2020 +0100 Bug 1398: Importing Jani's native test, attempting to reproduce the crash using XCode 11 and JOGL 2.3.2 as well as current tip This change imports 'jani@nexcus.com' patch as reported and provided in Bug 1398. I can not execute this patch properly, as received a error message regarding missing Info.plist at start. commit 77ae1b75f3c6feab97a4fffea44aadbd6e1d0b15 Author: Sven Gothel Date: Sun Feb 2 05:36:38 2020 +0100 When explicitly generating native header, avoid implicit referenced classes. Thanks to Phil Jordan, who is debating certain build issues of JOGL with me, we figured that certain generated header files ended up in the wrong build folder. E.g. on GNU/Linux, jogamp_nativewindow_windows_GDI.h ended up in build-x86_64/nativewindow/gensrc/native/drm/ This happens due to the new java11 way of generating header files using javac. Per default, all referenced files are being compiled and header files were generated in this case for all of them using the given '-h location' argument. Since nativewindow generates headers for the new drm functionality first (where available), all headers of all included referenced classes ended up in this drm build location. Subsequent javac was skipped 'thanks' to the already existing class files ;-) This patch disables implicit class file creation when explicitly generating headers only using the javac argument '-implicit:none'. This is done for the whole JOGL project (nativewindow, jogl and newt). Other JogAmp modules should not be concerned due to the lack of overspecific platform parts .. commit 8e5dae78bb99a0fbcd5593e91c2b08e84dd639e4 Author: Sven Gothel Date: Fri Jan 17 15:20:22 2020 +0100 Bug 1422: Windows test*.bat: Add C:\temp to PATH, allowing picking up custom libraries for testing Used for testing Bug 1422 on Windows via qemu-kvm using Mesa 19.3.2 . Here I dropped the native libs to C:\temp and moved the C:\Windows\System32\OpenGL32.dll out of sight by renaming it. commit ba83a59363023ba0cc314746d7864ccf2cdd4d7a Author: Sven Gothel Date: Fri Jan 17 15:17:17 2020 +0100 Bug 1374: NEWT/AWT: Annotation regarding general High-DPI for even non native DPI toolkit aware platforms (Linux, Windows) NEWT + NewtCanvasAWT: Maybe create "interface ScalableSurface.Upstream { void pixelScaleChangeNotify(final float[] curPixelScale, final float[] minPixelScale, final float[] maxPixelScale); }" to allow downstream to notify upstream ScalableSurface implementations like NEWT's Window to act accordingly. +++ AWT GLCanvas: Add remark where to add the potential pixel scale. commit e03204605f95dc3586d8e3582250211954542be5 Author: Sven Gothel Date: Thu Jan 16 12:20:50 2020 +0100 Bug 1423: NEWT Child Window on OSX: Don't use parent derived location in fullscreen mode WindowDriver OSX: useParent(..) -> useParentLocation(..) and add !isFullscreen() as a criteria to use the parent derived location. commit a1bc7ebb1b66f445a5134e4ed4b6ff6118291c51 Author: Sven Gothel Date: Thu Jan 16 12:17:35 2020 +0100 NEWT: Enhance FullScreen.run DEBUG output a bit; NEWTDemoListener ignore input if not visible. commit f63b94cccc71cf154a7a6d3359ceface3a683229 Author: Sven Gothel Date: Thu Jan 16 07:33:33 2020 +0100 Bug 1422: NewtCanvasSWT: Handle case of !OSX && DPIUtil.getScalingFactor() > 1 NewtCanvasSWT.SWTNativeWindow's surfaceSize in pixel units shall only return scaled-up windowUnits using SWTAccessor.deviceZoomScaleUp(..) for !OSX and potentially auto scaled-up pixelUnits to passthrough (OSX). See detailed API doc to NewtCanvasSWT.newtScaleUp(..) commit 78609202731252f0024e6330cc94c52b05c1d146 Author: Sven Gothel Date: Thu Jan 16 01:37:21 2020 +0100 Bug 1422: Use own deviceZoomScaleUp(..) disregarding higher-toolkit's compensation like 'DPIUtil.useCairoAutoScale()' We can't use DPIUtil's 'autoScaleUp(..)' method on non-native DPI scaling platforms as it uses a scale-factor of 1f if the higher toolkit compensates, i.e. 'DPIUtil.useCairoAutoScale()'. Since NEWT uses X11 and GDI directly, which are not DPI scale-aware, we have to drop the semnatics of 'DPIUtil.useCairoAutoScale()' and merely use the actual 'deviceZoom'. This was proposed by Marcel Au in the first place. At least I understand these semantics by now. +++ Additionally NewtCanvasSWT.SWTNativeWindow needs to return the 'deviceZoomScaleUp(..)' values for returning its size in window- and pixel-units (surface). commit a0a2278721a1b0a8c5acc78d4d42b7cd7efeb47d Author: Sven Gothel Date: Thu Jan 16 00:52:24 2020 +0100 NEWT.Window: Refine string representation, renamed append(StringBuilder) -> toString(..), added toSimpleString(..) This also revised commit f56adf14deadd4ee8f434ea1293e27bcafdf2a90 Window API addition of 'append(StringBuilder)', which has been renamed to 'toString(StringBuilder)' as aligned to out other classes. commit d671b2ab3badbcfdbe0ff57f55ff997ba7bcb060 Author: Sven Gothel Date: Wed Jan 15 08:02:18 2020 +0100 Bug 1422: Emulate DPI Scaling on non-native DPI autoscale platforms (!MacOS) Bug 1422 shows that it seems to be desired to emulate DPI scaling where the native toolkit does not implmement the same. On GTK, DPIUtil.mapDPIToZoom (int dpi) reads: double zoom = (double) dpi * 100 / 96; int roundedZoom = (int) Math.round (zoom); return roundedZoom; While having dpi calculated as: dpi = 96 * GDK.gdk_monitor_get_scale_factor(monitor); Well, this seems to exist to allow 96 dpi fixed layout to 'look' OK on high-dpi screens. However, you get in trouble if you layout high-dpi aware, i.e. using percentages etc. There is one exception: If DPIUtil.useCairoAutoScale() is true, scalingFactor is 1f and hence the scaling emulation dropped. 'DPIUtil.setUseCairoAutoScale((sx[0]*100) == scaleFactor || OS.isGNOME);' commit 9bcc384e66e40706225b86e9750c5822cb8f8c57 Author: Sven Gothel Date: Wed Jan 15 07:45:49 2020 +0100 Nativewindow Rectangle*: Cleanup up union(..), intersection(..): Return a new Rectangle instance (mutable) Also return 'this' for setter methods for chaining. commit 88cc287a47066c81ee0b385e2e0ca96f027286b3 Author: Sven Gothel Date: Wed Jan 15 05:32:18 2020 +0100 TestGLCanvasSWTNewtCanvasSWTPosInTabs: Only use 1 Animator to easy example code Otherwise one would want to pause the Animator instance for the hidden GLWindow, otherwise such animator with zero visible drawables will become a CPU hog. commit 6c9eedf03a196d8718ddccbb47c0166c7c6267b8 Author: Sven Gothel Date: Wed Jan 15 04:58:24 2020 +0100 Bug 1421: NEWT OSX Invisible: Refine 'Fake invisible child window' off-viewport position Ensure it stays out of sight by moving it to 2x width/height of viewport. Otherwise one could see the child window moving from lower-right to upper-left ;-) commit cfdfa7716422e76123c911a8f70bf84a682875e0 Author: Sven Gothel Date: Wed Jan 15 04:51:09 2020 +0100 Bug 1421: Conclude OSX: Forward SHOW and HIDE events to NewtCanvasSWT instances if 'below notification threshold' 'below notification threshold' here is simply being a child SWT Control of like a Composition or SashForm etc where these events won't get propagated. commit 9263c27e98cb85b5cdff301dcb943a5a40ae6c3b Author: Sven Gothel Date: Wed Jan 15 04:47:00 2020 +0100 Bug 1421: NEWTCanvasSWT: No action on SWT.Activate, use SWT.FocusIn. Also remove all SWT listener on dispose. Additionally print more details about the newtChild's state in DEBUG mode. commit f56adf14deadd4ee8f434ea1293e27bcafdf2a90 Author: Sven Gothel Date: Wed Jan 15 03:26:27 2020 +0100 NEWT.Window: Add 'StringBuilder append(StringBuilder sb)' supporting building custom efficient presentations commit 85b332e0954af4afc9225eb84d758bee834dc497 Author: Sven Gothel Date: Wed Jan 15 02:24:25 2020 +0100 Bug 1421: NEWT OSX Invisible: Implement 'Fake invisible child window' 'Fake invisible child window' is implemented by simply moving the window out of sight (viewport). - orderOut0 needs to use '[mWin orderWindow: NSWindowBelow relativeTo:..' parentWindow instead of '[mWin orderBack:..', otherwise the whole parent application gets invisible w/ SWT ;-) - NewtNSWindow may also needs to use parent's Screen instance if moved offscreen, as the own Screen is invalid (zero size) in this case. - WindowDriver: Adding special treatment for 'Fake invisible child window' (tagged as such): -- reconfigureWindowImpl: setWindowClientTopLeftPointAndSize0(..) will be called using the viewport's max position -> out of sight. -- screenPositionChanged: ignore the 'new' position -- sizeChanged: ignore the 'new' size This sensitive NEWT change set shall benefit other toolkits being used as parentWindow besides SWT, as this behavior is the same across MacOS. commit 6d341e110912f9085194cb94ba6f6c358104ee71 Author: Sven Gothel Date: Wed Jan 15 01:56:57 2020 +0100 Bug 1421: NEWT OSX Invisible: Fix orderOut0 re commit d92dc518eb891f2d125a8136efd6ed603d74a6e9 We also cannot use 'mWin orderWindow: NSWindowOut relativeTo:..]' as it also removes the child-NSWindow from its parent like 'orderOut'. Hence only use 'orderBack' to keep the relationship inplace. Fake invisible child window is in progress, i.e. moving it out of the overal viewport (all screens). commit fcad9bd8856f4058925389854a31ec265b94d5e0 Author: Sven Gothel Date: Wed Jan 15 01:47:47 2020 +0100 NEWT OSX MacWindow.c: Add parentWindow to DBG_PRINT commit abc833e8e3763b1477e8e7c22a04b6fecf97cf20 Author: Sven Gothel Date: Tue Jan 14 23:12:30 2020 +0100 NEWT OSX/IOS WindowDriver: Minor cleanup of local var usage (prefer reuse); reconfig: Only orderOut w/ valid window-handle commit d92dc518eb891f2d125a8136efd6ed603d74a6e9 Author: Sven Gothel Date: Tue Jan 14 23:07:22 2020 +0100 Bug 1421: NEWT OSX Invisible: Refining child window visibility setting, commenting on child-window orderOut Actual small change is to have child-NSWindow to use '[myWindow orderWindow: NSWindowAbove relativeTo:..' instead of 'orderFront' in creation and use the simple 'orderFront' to set a top-level NSWindow visible. Adding comment why we can't use 'orderOut' on child-NSWindow setting it invisible, this is due to OSX 10.7 changes and testing detaching the child-window from its parent causes havoc w/ SWT at least. Hence we only issue 'mWin orderWindow: NSWindowOut relativeTo:..]' and the result is having the child-NSWindow below the application. This in turn will make it visible again when moving the application around, as this child-NSWindow will no more follow the position. Suggestion is to have this 'fake invisible' child-NSWindow to be moved out of the overal viewport (all screens). commit 2cdf7730b6d3e813a8693087582f3cf3ac44f015 Author: Sven Gothel Date: Mon Jan 13 14:05:11 2020 +0100 NewtCanvasSWT Tests: Add NEWTDemoListener giving weight to toolkit independent UI interaction coding commit a1d9e3d0deaa06a417efac9fcd223db35ec6d255 Author: Sven Gothel Date: Mon Jan 13 13:51:13 2020 +0100 TestSWTAccessor02NewtGLWindow: Setup SWT EDTUtil for NEWT, avoiding deadlocks on OSX and Windows Essentially same code path as NewtCanvasSWT commit 17ced028996740af751542ddcd78d2e81d0fbbcf Author: Sven Gothel Date: Mon Jan 13 08:41:43 2020 +0100 build-test.xml: FIX usage of generic.junit.run.swt.headless.include.pattern (its a property!) Missed the SWT headless unit tests altogether ;-) commit 99327d6f66d9e0acfe0794e56f508aa3c8eb55b3 Author: Sven Gothel Date: Mon Jan 13 08:40:52 2020 +0100 build-test.xml: *generic* tests: unset temp vars and be more verbose on used pattern commit 39af5ca418d0db9669aca5db77fa47e801e2a1d9 Author: Sven Gothel Date: Mon Jan 13 06:54:01 2020 +0100 Bug 1421 Related: Handle SWT Events: Activate (focus), Show and Hide. Show and Hide handling resolves TabFolder layout, i.e. hiding the 'hidden' and showing the current tab. commit 12bbb049b716282321c979ae78918801ef071884 Author: Sven Gothel Date: Mon Jan 13 06:52:22 2020 +0100 Bug 1421, Bug 1358, Bug 969, Bug 672: Fix NEWT's coordinate conversion on MacOS (fixes NewtCanvasSWT on SWT positioning) Newt's OSX Window consist out of NSView wrapped up within its own NSWindow. It's position is being set via its NSWindow's client-area position on screen (frame), which we derive from NSView's client-area position. When NEWT reparents into a new 'window', on OSX it uses the parent's NSView and its NSWindow to attach its own NSView and NSWindow as a subview and childwindow. SWT's OSX implementation uses NSView's for each Compositor, but an individual NSWindow is only established for the Shell (Window). An oversight in Nativewindow and NEWT's coordinate translation: 'top-left view <-> top-left screen' by missing the 'view <-> window' translation caused this whole issue. The oversight occured as NEWT's 'view <-> window' translation had no impact due to its 1-view to 1-window mapping. Fixing the coordinate translation resolves the mess for SWT and for potential other toolkits on OSX. NewtCanvasSWT behaves same on OSX as on X11 etc finally. commit e3e671e3ca63235830a2ebf7875650a4c86ce18e Author: Sven Gothel Date: Sun Jan 12 04:12:29 2020 +0100 NativeWindow Point.set*(..): Return instance for scaling (chaining) commit f6a5ae588440ff873fd72f3b52956e7b02d4e728 Author: Sven Gothel Date: Thu Jan 9 17:49:47 2020 +0100 NEWT JVM_JNI8: Adapt to native library separation (head, drm) of commit b91c680fb93a03720ff9fcb39cf052cfe8d40e76 See commit b91c680fb93a03720ff9fcb39cf052cfe8d40e76 To support static libraries JEP 178, we have to provide JNI_OnLoad_ etc. Hence change and add function entries accordingly. commit 557f3d57cc2ca60678fe87df4b4a9c99c016e575 Author: Sven Gothel Date: Mon Jan 6 19:40:12 2020 +0100 Bug 1358: Merely simplifying the non MacOS getClientAreaInPixels() code path This also demonstrates that on non MacOS, SWT's scale-factor is artificially imposed on the actual pixel-units, as SWT's getClientArea() is simply returning: DPIUtil.autoScaleDown(getClientAreaInPixels()) commit 141fa0fba0f47851f20acfcb078e11659ebc74cc Author: Sven Gothel Date: Mon Jan 6 18:58:01 2020 +0100 Bug 1421: Tackle wrong position of TabFolder, SashForm etc getClientArea() on MacOS produces a 'difficult' result regarding the position, which usually is returned as zero. Using a zero position issues the bug w/ SashForm, where the offset doesn't seems to be covered by the native NSView nor an SWT parent Composition. Then using the getLocation() as is (i.e. the view's frame position) may also cause issues with the TabFolder, as it includes the tab's trimming. Here the native NSView 's position includes the tab's trimming, gladly the parent (TabFolder or a Composition)'s clientArea includes this offset. Therefor, as a testbed - on OSX, getClientArea2(..) returns - position: getLocation() - getParent().getClientArea().position - size: getSize() This at least works OK'sh using - no special layout parent - TabFolder - SashForm ++++ Unit test TestGLCanvasSWTNewtCanvasSWTPosInTabs: Adding 'addComposite' to test matrix. 'addComposite' wraps our GLCanvas or NewtCanvasSWT into a Composite instead of adding it directly into the layouting parent. It demonstrates an issue with the new test 'test32_NewtCanvasSWTTabSashGLWComp', i.e. the NewtCanvasSWT is shown on the left as the SashForm's offset is being dropped. Summary: - No more issues with High-DPI pixelScale observed! - GLCanvas is being most well layouted, no issues in tests - NewtCanvasSWT may show severe positioning issues -> test32_NewtCanvasSWTTabSashGLWComp - NewtCanvasSWT always shows a small positioning offset into the lower-right corner w/ overlapping - NewtCanvasSWT overall positioning is not perfectly understood - NewtCanvasSWT misses to hide the NEWT child when changing tabs in TabFolder commit 0209655c26e9240639c5f0a76ca6ca54ae0584b1 Author: Sven Gothel Date: Mon Jan 6 18:31:44 2020 +0100 Bug 1421: Minor commenting commit 95fd39e361190c6c23019e1aa5ec21e6fe85fcd3 Author: Sven Gothel Date: Mon Jan 6 18:31:17 2020 +0100 Bug 1421: Minor cleanup / commenting commit 20921924e994e9f612a82009026081a4573b3bdd Author: Sven Gothel Date: Mon Jan 6 18:20:09 2020 +0100 Bug 1421: Move Bug 1362 'setBackground(..)' fix before potential 'setNEWTChild(..)' commit abbc95745b69dcd7f5f84c7a56bf32947c23e74d Author: Sven Gothel Date: Mon Jan 6 18:16:47 2020 +0100 Bug 1421: OSXUtil: Add GetLocation(..), simply returning the view's frame position commit 8ab8412568d362b0bf65a40d727ba052a519ea3d Author: Sven Gothel Date: Mon Jan 6 06:59:39 2020 +0100 Bump SWT to Release 4.14-201912100610 (jogl/make/lib/swt) Due to issues on MacOS, added the src.zip for MacOS as well. commit 87eeadadfe3a519ca6f6a6688ea854b147eca13b Author: Sven Gothel Date: Mon Jan 6 04:54:41 2020 +0100 Bug 1421, Bug 1358, Bug 969, Bug 672: Deleting merged tests (obsolete) commit 05b3978d47e304b2e0223bbdf34d393a2e4c7c26 Author: Sven Gothel Date: Mon Jan 6 04:51:19 2020 +0100 Bug 1421, Bug 1358, Bug 969, Bug 672: Generalization of test case TestGLCanvasSWTNewtCanvasSWTPosInTabs (2/2) Complete merging unit tests. commit 69db39c035455fc0154006304e7340d825415e99 Author: Sven Gothel Date: Mon Jan 6 04:49:15 2020 +0100 SWT GLCanvas: Fix NPE in DEBUG mode; NewtCanvasSWT: Resurect comment in setBounds(..) commit 8caf3fab68dc890855961d22cb235d1c8f5c52c6 Author: Sven Gothel Date: Sun Jan 5 23:02:55 2020 +0100 Bug 1358: GLCanvas: Call new OSXUtil.SetWindowPixelScale(..) when GLCanvas gets realized on MacOS This fixes GLCanvas's High-DPI scaled size issue on MacOS of Bug 1358. commit 1216aa7bc4284e5568d7dd7bbd7f6d9fed27d25b Author: Sven Gothel Date: Sun Jan 5 23:00:16 2020 +0100 Bug 1421, Bug 1358, Bug 969, Bug 672: SWTAccessor: Add get[Location|Size]InPixels(..) and getLocationOnScreen() commit 9512a4bbda02002d06fcbb34504c3bea9c7abdc8 Author: Sven Gothel Date: Sun Jan 5 22:57:14 2020 +0100 Bug 1421, Bug 1358, Bug 969, Bug 672: Generalization of test case TestGLCanvasSWTNewtCanvasSWTPosInTabs (1/2) Testing the TabFolder and a SashForm in the 2nd tab covering both SWT layout use cases on both out SWT support classes SWT GLCanvas and NewtCanvasSWT. Merging TestBug1421NewtCanvasSWTPosInTabs + TestBug672NewtCanvasSWTSashFormComposite into TestGLCanvasSWTNewtCanvasSWTPosInTabs. TestBug672NewtCanvasSWTSashFormComposite exposes that SWT GLCanvas still requires work for proper High-DPI scaling on OSX! commit 741e62820299bc384741d692e2665d22d97c1970 Author: Sven Gothel Date: Sun Jan 5 17:24:57 2020 +0100 Bug 1421: NewtCanvasSWT child on layouted SWT parent only occurs on MacOS, regardless of High-DPI commit b2a150a2a9bcf4f821ec84085774168276c108a1 Author: Sven Gothel Date: Sun Jan 5 15:52:57 2020 +0100 Bug 1421: Demo wrong NEWT Child window position within an SWT TabFolder layout using NewtCanvasSWT on MacOSX with High-DPI Retina commit 82f267acee3485464ea62328e14eff4e124e8f21 Author: Sven Gothel Date: Sat Jan 4 21:32:20 2020 +0100 linker.cfg.linux.*.nativewindow: Specialize for x86 and amd64 allowing cross-compilation 32bit on 64bit commit 2cb7f6af4813041bfff6c8a631e329ed5a63dba3 Author: Sven Gothel Date: Sat Jan 4 21:30:49 2020 +0100 scripts: use gluegen's renamed setenv-build-jogl-* -> setenv-build-jogamp-* commit c9e85c8effac97d679891219cae6918ff561c368 Author: Sven Gothel Date: Sat Jan 4 21:01:22 2020 +0100 swt.jar: On linux-i586 and windows-i586 we have to use any 64bit for compilation - as 32bit builds are no more supported since SWT 4.10 commit b15522b677b8473b2eb193f6d9484687b894e5a7 Author: Sven Gothel Date: Sat Jan 4 19:47:43 2020 +0100 fix windows build scripts commit 4e2e4011764ab9d839351e43363100499304f5b0 Author: Sven Gothel Date: Sat Jan 4 18:41:44 2020 +0100 native.tag.jar: Revert explicit inclusion of *.symbols file reverting commit cb092e517461b3047c966c38e92668010a3b7ef6 commit 7d7d4e4f194ed25dc8b450e13ab67020c607445b Author: Sven Gothel Date: Sat Jan 4 17:18:02 2020 +0100 Bug 1358: MacOS NEWT WindowDriver / NewtCanvasSWT High-DPI: Even w/ commit fb211581fefc994d1458a2a74801dfb937170f39, propagating the SWT pixelScale to NEWT-Child, hasPixelScale was never updated via updatePixelScale() through native callback [NSView viewDidChangeBackingProperties]! [NSView viewDidChangeBackingProperties] not being called on [created] child windows (NewtCanvasSWT) confused the overal pixelScale state, i.e. no hasPixelScale update via updatePixelScale(..). This change explicitly queries OSXUtil.GetWindowPixelScale(handle) (commit e6d53e29f05a6928192f6c4a988b2aa558be8d65)for: 1) updateMaxScreenPixelScaleByWindowHandle(..), which now updates the actual hasPixelScale after native creation and for 2) setSurfaceScale(..), which directly calls updatePixelScale(..) with the queried actual pixelScale instead of relying on the native callback [NSView viewDidChangeBackingProperties]. commit fb211581fefc994d1458a2a74801dfb937170f39 Author: Sven Gothel Date: Sat Jan 4 17:07:00 2020 +0100 Bug 1358: NewtCanvasSWT High-DPI: Propagate pixelScale to NEWT-Child and utilize it for convertTo*Units(..) Detected pixelScale on SWT should be propagated to the NEWT Child using 'newtChild.setSurfaceScale(pixelScale)' to allow an impact. Also utilize computed pixel for converTo*Units(..) implementation. commit 3b60cb464cea77a22f866155c14c8786dea360ba Author: Sven Gothel Date: Sat Jan 4 17:03:22 2020 +0100 Bug 1358: NewtCanvasSWT High-DPI: Use window-units where required instead of pixel-units Commit ca7f0fb61b0a608b6e684a5bbde71f6ecb6e3fe0 did one thing wrong: Using the pixel-unit size for NEWT child window operations where window-units are required. commit e6d53e29f05a6928192f6c4a988b2aa558be8d65 Author: Sven Gothel Date: Sat Jan 4 16:58:49 2020 +0100 Bug 1358: Add OSXUtil.GetWindowPixelScale(..) It is now possible to retrieve the pixel scale [NSWindow backingScaleFactor] after native creation by NEWT - as we have changed the lifecycly (all-in-one native method on AppKit) commit 2be7001101dbb16e5264c9c38b9764ba1e39ab5c Author: Sven Gothel Date: Fri Jan 3 02:32:31 2020 +0100 Bug 1420: Add FFMpeg 4.* versioned lib-names and provide optional internal lib lookup New property 'jogl.ffmpeg.lib' may be set to 'internal', setting PREFER_SYSTEM_LIBS:=false (default it true) Non system internal libraries are named 'internal_', e.g. 'internal_avutil'. System default libraries are named '', e.g. 'avutil'. If PREFER_SYSTEM_LIBS is true (default), we lookup the default library first, then the versioned library names and last the internal library. If PREFER_SYSTEM_LIBS is false, we lookup the internal library first, then the versioned library names and last the default library. commit cb092e517461b3047c966c38e92668010a3b7ef6 Author: Sven Gothel Date: Thu Jan 2 16:36:37 2020 +0100 native.tag.jar: include *.symbols (fix) commit e2fe0fbf558da39f762df3779e120d1956e4c47c Author: Sven Gothel Date: Thu Jan 2 16:18:11 2020 +0100 native.tag.jar: include *.symbols commit 929ca42ab05e305de7af1caa5401f608626285a5 Author: Sven Gothel Date: Thu Jan 2 08:55:07 2020 +0100 javadoc: Enable frames commit 24b083240568bd0454572630c1f633c605a49659 Author: Sven Gothel Date: Thu Jan 2 08:46:32 2020 +0100 javadoc: replair gluegen-javadoc.path and drop com.jogamp.newt.util.applet3.* commit 999e1ca3ec1a406d3dba65f0bae79054580fb287 Author: Sven Gothel Date: Thu Jan 2 04:44:19 2020 +0100 Bug 1393: MacOS: getLocationOnScreen w/ JAWT Parent: Use parent's unblocking specialization On MacOS, commit 12eed5d38616d23b6e8e2e5b497dfc2f54d90c90 replaced all parent.getLocationOnScreen(..) calls with OSXUtil.GetLocationOnScreen(parentHandle, ..) avoiding the EDT + Appkit Deadlock with native parenting. On MacOS AWT and JAWT are using offscreen CALayer since Java >= 1.7.0, therefor the MacOSXJAWTWindow's native window handle can't be used to gather the screen position via OSXUtil. However, the JAWT Window specialization MacOSXJAWTWindow implements a non-locking code-path and we can decide to use it by querying the general interface OffscreenLayerOption. commit ef2600134f07902dd32cf6524d9c947bdc915b45 Author: Sven Gothel Date: Thu Jan 2 00:51:37 2020 +0100 all build scripts: make.jogl.all-host-macos.sh make.jogl.all-host-linux.sh commit 4d070e6be4f6f5b2eeb4f29e5d3fe7d0fdc4c7ad Author: Sven Gothel Date: Thu Jan 2 00:34:56 2020 +0100 iOS build scripts: Bump iOS 12.2 -> 13.2; Use GLUEGEN_CPPTASKS_FILE instead of -DisIOS*=true commit 3e8719272d435e4e4c278acafa063651144ee4e0 Author: Sven Gothel Date: Wed Jan 1 18:20:41 2020 +0100 update make-all script commit 79833c9e4741bec9d1f56ea8b322679756b16f70 Author: Sven Gothel Date: Tue Dec 31 05:45:00 2019 +0100 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. commit 658e25429aa150fad45a7c81a5a08f9ca35c4479 Author: Sven Gothel Date: Tue Dec 31 05:37:35 2019 +0100 Bug 1312: GLContextShareSet Cleanup - refine some method names, eg -- 'addNew' -> 'mapNewEntry' -- 'hasCreatedSharedLeft(..)' -> 'hasCreatedSharesLeft(..)' - add 'getCreatedShareCount(..)' and 'getDestroyedShareCount(..)' - add 'getSize()' and 'printMap(..)' commit f1117325c62a3f07d1bebf5586cdeb0d1176bfb1 Author: Sven Gothel Date: Tue Dec 31 05:25:15 2019 +0100 Gears* tests: Obey verbose flags commit 71773168d8ea67c03e9712c172c2f078099f6bbc Author: Sven Gothel Date: Tue Dec 31 03:11:55 2019 +0100 Reuse Gluegen's Bitfield.Util for 'PowerOf2' computation See gluegen commit 178c7b9d40e06a04790542241912ca21d2c7b92f commit e2223107cc54e08031bd9505ce8a9ccc72673be0 Author: Sven Gothel Date: Sat Dec 28 04:16:18 2019 +0100 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'. commit 50f9c9e113b09ab54ba40abba6b2face27c9a139 Author: Sven Gothel Date: Fri Dec 27 03:50:32 2019 +0100 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. commit 95ca88ba975c7296098bbd34bec2d922aeb2b563 Author: Sven Gothel Date: Thu Dec 26 05:03:29 2019 +0100 Bug 1417 - Android: APK Manifest [min=21, target=28]; Adopt to GlueGen's 'aapt.signed' d8 usage commit d91f8581eedf73663abab25524147d2bcab9109b Author: Sven Gothel Date: Thu Dec 26 05:02:50 2019 +0100 Bug 1417 - Android: Add adb scripts for x86 [re-]install commit 784dcfa2094f3fb235ca4b60395708a1f87c0b1b Author: Sven Gothel Date: Wed Dec 25 08:28:19 2019 +0100 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. commit c6ba090a0030c177d7e60f797a3ec25fecfe3546 Author: Sven Gothel Date: Wed Dec 25 02:09:03 2019 +0100 Bug 1417 - Android: Disable native FFmpeg binding for Android commit b91c680fb93a03720ff9fcb39cf052cfe8d40e76 Author: Sven Gothel Date: Wed Dec 25 02:07:50 2019 +0100 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. commit 07de253dae77b39da944a946381bd6efec0066ba Author: Sven Gothel Date: Tue Dec 24 19:29:17 2019 +0100 Bug 1417 - Android: Adopt to gluegen/make/scripts/setenv-android-tools.sh changes commit 548553e189f8f9fa60d6c59da6bf0a4bd1bf7505 Author: Sven Gothel Date: Mon Dec 9 08:59:23 2019 +0100 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). commit 5e38dc8cb69d9bec7ee3dc2b98d79c4abcf5e5f0 Author: Sven Gothel Date: Mon Dec 9 08:06:18 2019 +0100 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 ;-) commit c5fabde01babfdd07c72347ff17ac0705b8c6c5a Author: Sven Gothel Date: Mon Dec 9 07:40:14 2019 +0100 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 commit 61eb1825663701fd50023328f6f3e8e8b24272b9 Author: Sven Gothel Date: Mon Dec 9 07:13:52 2019 +0100 Bug 1411: DRM/GBM JOGL: Specify 'junit.run.console' unit test target. commit 606fbe8b3f4c420f1c4faecf4f49276e054543a0 Author: Sven Gothel Date: Mon Dec 9 07:12:56 2019 +0100 Bug 1156: NEWT WindowDriver: Handle case with requested CapabilitiesImmutable not being GLCapabilitiesImmutable commit 438f4bef0004834485c36eee013dae9199dd55d9 Author: Sven Gothel Date: Mon Dec 9 07:11:45 2019 +0100 Bug 852: TestCPUSourcingAPINEWT Reference the bug entry and add a little reminder commit 3c9b7bcec2ae06060726c49e34b1d606f66d31c6 Author: Sven Gothel Date: Mon Dec 9 07:07:36 2019 +0100 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(). commit 3e92d34de3672d7f5e401ed6181bb55a58bdf4b6 Author: Sven Gothel Date: Mon Dec 9 02:24:44 2019 +0100 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. commit 5047217ff8366b0d3280e478aac6c711170d7063 Author: Sven Gothel Date: Sun Dec 8 19:04:45 2019 +0100 Bug 1393: Apply 12eed5d38616d23b6e8e2e5b497dfc2f54d90c90 to IOS, avoiding AppKit/EDT deadlock for parent screen location lookup commit 12eed5d38616d23b6e8e2e5b497dfc2f54d90c90 Author: Sven Gothel Date: Sun Dec 8 09:44:35 2019 +0100 Bug 1393: Resolve EDT + AppKit Deadlock with native parenting: Fetch parent screen position directly w/o locking. commit 5e6f75991d885f1e48760668f86b305824bd972a Author: Sven Gothel Date: Sun Dec 8 07:40:29 2019 +0100 Bug 1415: MacOS: Disable multiple Window creation on ExclusiveContextThread in test case commit dd8f6f0c884161eb1099ff1ab8af20383984771d Author: Sven Gothel Date: Sun Dec 8 07:39:24 2019 +0100 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. commit 136971bf41c9784bee187389f138daf77ba4392c Author: Sven Gothel Date: Sun Dec 8 06:54:34 2019 +0100 NEWT WindowImpl: Wording in comment commit 2e59792eba285d7cd3c2f4f4c78838b8cc8918f7 Author: Sven Gothel Date: Sun Dec 8 04:55:02 2019 +0100 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 commit bb3ee12b7aeef276a03f091333eacc68542e784b Author: Sven Gothel Date: Sun Dec 8 02:46:20 2019 +0100 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. commit 6f750711fbcdf746451995e71165bbd119694269 Author: Sven Gothel Date: Sat Dec 7 08:33:48 2019 +0100 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! commit b992423477ea1a76fb28946e28959a3feea97680 Author: Sven Gothel Date: Fri Dec 6 20:06:23 2019 +0100 Bug 1411 - Unit Test Subset for DRM/GBM JOGL(EGL) and NEWT First step disables all AWT and SWT unit tests. commit abde7e96c8ea8f36b48e99ed62029bf0e178a8fa Author: Sven Gothel Date: Fri Dec 6 10:16:00 2019 +0100 Bug 1412: Fix commit a8c2de110a2254af137a3d99007cc77e3ecd8078 commit a8c2de110a2254af137a3d99007cc77e3ecd8078 Author: Sven Gothel Date: Fri Dec 6 09:21:13 2019 +0100 Bug 1412 - JNI: NEWT Check & Handle Exception after calling back into Java (NewtCommon.c) commit 578edfc20915e2e2aa18aa06e49f7341f86990c4 Author: Sven Gothel Date: Fri Dec 6 08:43:05 2019 +0100 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. commit ddc29141207d9c69f8558265a464cdc4bc014d65 Author: Sven Gothel Date: Fri Dec 6 08:36:19 2019 +0100 Bug 1412 - JNI: NEWT Check & Handle Exception after calling back into Java (X11Display + X11Window) commit de13e49aadd4b4df09eb1ab37c84cda404586ba5 Author: Sven Gothel Date: Fri Dec 6 02:07:59 2019 +0100 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. commit 75afd5c6be7f68b32fbe9e5d319d888888b30719 Author: Sven Gothel Date: Fri Dec 6 01:29:37 2019 +0100 Fix regression of commit 2b899a55e365aa03aeb234187600526777c1a9ac This bug never allowed a PointerIconImpl to be destroyed via PointerIconImpl.destroy() commit c317985db39f840f6edf9860487c604e6e31c2ba Author: Sven Gothel Date: Thu Dec 5 22:31:51 2019 +0100 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. commit d693425e2e74a5e4a80c3fde552ffc7d757330f1 Author: Sven Gothel Date: Thu Dec 5 17:42:02 2019 +0100 PointerIcon new instances are always valid .. Move native handle check to pre-destruction call in PointerIconImpl.destroyOnEDT(..), unifying single destruction and all. commit 033ee4cad3493038480b06f6caf3de015a3e8de7 Author: Sven Gothel Date: Thu Dec 5 07:38:48 2019 +0100 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. commit 84a2e5a250148d600d48a0dd58e07286a375f616 Author: Sven Gothel Date: Thu Dec 5 07:25:32 2019 +0100 LinuxKeyEventTracker: Factor out 'sendKeyEvent(..)' call with null check. commit ea23776919eff10dee57519ce72354bbaea3544e Author: Sven Gothel Date: Thu Dec 5 07:24:03 2019 +0100 Bug 1406, Bug 1405: demos.Launcher0: Defaults to use multiple PointerIcons again launch script test-demo-launcher0.sh: Tested with '-Xcheck:jni' commit c80147e3112f3ac87e004c19819b820b42b737df Author: Sven Gothel Date: Thu Dec 5 07:13:07 2019 +0100 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. commit bfc152be4203eeceebea919aff9513d33213c802 Author: Sven Gothel Date: Thu Dec 5 07:05:32 2019 +0100 NEWTDemoListener: Fix NPE commit eaa81d524e9be6af9867c8b6750505c8660a6651 Author: Sven Gothel Date: Thu Dec 5 07:05:14 2019 +0100 Bug 1406, Bug 1405: demos.Launcher0: Allow passing GLEventListener via '-demo classname' commit 78292f1098ef3a83c0426bd0e30b4e725805fa1a Author: Sven Gothel Date: Thu Dec 5 06:56:36 2019 +0100 Bug 1156: NEWT DRM/GBM PointerIcon: Use hotX/hotY drmModeSetCursor2(..), hence pass PointerIconImpl through commit 59fe721a926ff66e98b716a25a08bdfa584ca6fa Author: Sven Gothel Date: Wed Dec 4 22:44:08 2019 +0100 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! commit c7778616ef7706461ee0b09e20591f5a6e4ea363 Author: Sven Gothel Date: Wed Dec 4 22:42:12 2019 +0100 Bug 1408: NEWT DisplayImpl PointerIcon: Property 'newt.disable.PointerIcon' disables PointerIcon usage in general. commit 66976571abed5f14db5de9975ce08d62cfecc2c8 Author: Sven Gothel Date: Wed Dec 4 22:40:53 2019 +0100 Bug 1408: NEWT DRM/GBM DisplayDriver: Add device locking/unlocking decoration for PointerIcon operations commit d5ba4cae824087879a4857e20961a95da04eaebb Author: Sven Gothel Date: Wed Dec 4 22:38:45 2019 +0100 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. commit 4665875ac4689885da3b4a4c45cde7c6886322e3 Author: Sven Gothel Date: Wed Dec 4 20:30:41 2019 +0100 Bug 1406, Bug 1405: demos.Launcher0: No sleep w/o animator. VSYNC setting rules (launch script w/ key tracker) commit 54d34cb749dd877fffcbb2d33cc3707763b94b7e Author: Sven Gothel Date: Wed Dec 4 19:47:33 2019 +0100 Bug 1156, Bug 1406: NEWT DRM/GBM WindowDriver.surfaceSwap(): Pass swapInterval to optionally skip VSYNC if 0 commit 43dd50a8545f8fde8198091b136aece6f062cb38 Author: Sven Gothel Date: Wed Dec 4 19:44:00 2019 +0100 Bug 1406: demos.Launcher0: More code path reduction: useMultiplePointerIcon must be enabled via -pointerIcon commit 0094f906b423ea4ad21da5de34076e066b9122b9 Author: Sven Gothel Date: Wed Dec 4 06:52:11 2019 +0100 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! commit ab18bcac9b258e32d99707aecf6e2dd6e1d4f417 Author: Sven Gothel Date: Wed Dec 4 06:48:10 2019 +0100 build-test.xml: fix (unused) java.part.demo.mobile commit e57de40bd0e1a318d59ca70f20a6f7d8a8921c74 Author: Sven Gothel Date: Wed Dec 4 04:54:22 2019 +0100 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 ;-) commit 22ee0cfa7dc3f3a7ac5e30322537196dcab8b310 Author: Sven Gothel Date: Wed Dec 4 04:35:06 2019 +0100 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+. commit 164db661e2688bfbc53fec3357fc6885b14ab893 Author: Xerxes Rånby Date: Wed Dec 4 00:11:40 2019 +0100 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. commit d3f454a3d8d608f9efe90987af3f08db89ad6e25 Author: Xerxes Rånby Date: Mon Dec 2 22:55:27 2019 +0100 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 commit 97c5fbc891f3315f913e519aaf15cdc5d987b31d Author: Sven Gothel Date: Mon Dec 2 08:23:47 2019 +0100 Scripts: Tests No Verbose commit 6594838575d101d567f4e6dc50b6acd74a294bde Author: Sven Gothel Date: Mon Dec 2 08:23:11 2019 +0100 Scripts: Macos /opt-share -> /usr/local (Catalina Read-Only) commit 56045ef6f2b33509754fbff82affca94290ae6e0 Author: Sven Gothel Date: Sat Nov 30 19:27:50 2019 +0100 Bug 1156: Remove verbose print in native CreatePointer.. commit 94dbf9b151bfa8590ea223f58dfe43d45dc0783d Author: Sven Gothel Date: Sat Nov 30 08:20:29 2019 +0100 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. commit 453f80e38bcb0945e7eac27a5917dce9bdc6446b Author: Sven Gothel Date: Sat Nov 30 06:38:01 2019 +0100 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. commit 3ab7bd61dc8370e579c827ebc75e45dc1eb611a1 Author: Sven Gothel Date: Sat Nov 30 06:34:22 2019 +0100 Adding test invocation script for linux aarch64 / Refined HowToBuild.html commit 20030fa36dfad924084aeaa130943165f51e8f0b Author: Sven Gothel Date: Fri Nov 29 19:34:06 2019 +0100 Bug 1156: HowToBuild: Add GNU/Linux dependencies to libdrm and libgbm commit 57b4c7af3ef2007942886f60a128a872d9bcee63 Author: Sven Gothel Date: Fri Nov 29 19:18:35 2019 +0100 Bug 1156: LinuxKeyEventTracker: Add '/dev/input/by-path/*-event-kbd' and more documentation commit 381858b82c5197193ba2f490a8282149536a54f7 Author: Sven Gothel Date: Fri Nov 29 07:32:52 2019 +0100 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 commit bdbdcdc800294db3a84926b79503fc2e0e919128 Author: Sven Gothel Date: Fri Nov 29 07:25:20 2019 +0100 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. commit 0d505c3e6dc75687b8bb2ff4f6df6680a084736f Author: Sven Gothel Date: Thu Nov 28 21:16:12 2019 +0100 Bug 1156: DRM/GBM Native test: Add Cursor commit d71743204ae2faa705739ce3fbb1bc9062323368 Author: Sven Gothel Date: Thu Nov 28 02:14:01 2019 +0100 Updating my eclipse jogl.build.launcher commit 4fe9e1dfa67f4e5d614f48c02ad88e4cdd1ed415 Author: Sven Gothel Date: Thu Nov 28 02:13:26 2019 +0100 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 commit f6cd403f3f554d37f63c498b4de956229b4c347a Author: Sven Gothel Date: Thu Nov 28 02:11:20 2019 +0100 Bug 1156: Using EGL.eglCreatePlatformWindowSurface(..) crashes on NVIDIA 430.40 on GNU/Linux X11 Avoiding this method for now. commit d7469d4fcbc6d92a696b90b52a75a233d4a30e5c Author: Sven Gothel Date: Thu Nov 28 02:06:09 2019 +0100 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. commit 3e19c2267500c0c459e7dce8d2087387a56f3296 Author: Sven Gothel Date: Thu Nov 28 02:00:29 2019 +0100 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 commit 976e89ff24da3b2cdf206e8ef8f222f54fb467de Author: Sven Gothel Date: Sat Nov 23 17:22:39 2019 +0100 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 commit bb83bd2df5723ed145f59e9bd5d212de6c4daba8 Author: Sven Gothel Date: Fri Nov 22 17:20:00 2019 +0100 Bug 1156: GBM: Fixing native GBM code, surviving initialization commit 3dcfa24384078fca34ce3cc877649f7e2c2c084b Author: Sven Gothel Date: Fri Nov 22 17:18:57 2019 +0100 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. commit 30826d978258c16b06cdab34e5a4265406545c3f Author: Sven Gothel Date: Fri Nov 22 17:16:55 2019 +0100 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) commit 4b9754d210b22f32e5f083d3524da8f3d886bfb7 Author: Sven Gothel Date: Fri Nov 22 17:13:50 2019 +0100 Bug 1156: EGL-GBM: [Re]use EGL Platform type for eglCreatePlatformWindowSurface as well (like eglGetPlatformDisplay) commit 29ec5eeccbe683e79106a44646c4ad99326609fa Author: Sven Gothel Date: Fri Nov 22 17:11:49 2019 +0100 Bug 1156: GBM: FIXME: Remove scanning for desktop-GL via EGL, see commit e674f4fa0e795bd67335025123f9af727d856f7d commit e674f4fa0e795bd67335025123f9af727d856f7d Author: Sven Gothel Date: Fri Nov 22 17:10:58 2019 +0100 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. commit 39169a80b7b1f604c4da2456c9f4852d2c8c0600 Author: Sven Gothel Date: Fri Nov 22 17:06:24 2019 +0100 Bug 1156: GBM: FIXME: Hard link gbm and drm (temporary) commit 92497251d85a7e7cf39230a014955dbbda0a49ea Author: Sven Gothel Date: Thu Nov 21 09:32:57 2019 +0100 Bug 1156: EGL-GBM: Fix Cleanup (Newt package relocation / hack default GBM) Now: TYPE_EGL_GBM == ".egl.gbm" commit 9b52db212f8749b61e4cf775fe3244b94c5ae41c Author: Sven Gothel Date: Thu Nov 21 07:33:19 2019 +0100 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 commit 10d3ba66b725fb44dc2c646c9ddc9816a4d72777 Author: Xerxes Rånby Date: Wed Sep 11 23:03:33 2019 +0200 gbm/WindowDriver: make it compile and link commit e1161a3773a35fdb7d94eb5263b1ab9a85e565fb Author: Sven Gothel Date: Thu Nov 21 03:50:52 2019 +0100 Bug 1156: EGL-GBM: Cherry pick changes .. commit df599b1c9b08da7335b2c6036c1c9f308ec56387 Author: Erik De Rijcke Date: Sun May 10 22:06:27 2015 +0200 add native gbm implementation for drm and gbm initialization. commit e1d767a4063d2503f9099d24a570664f6acd1a34 Author: Erik De Rijcke Date: Sun May 10 21:13:04 2015 +0200 add gbm java & build modifications commit f4281b5ee80d7674134bfee357695a98382884a3 Author: Erik De Rijcke Date: Wed May 6 16:30:42 2015 +0200 detect gbm platform on linux when no other display server is running commit cd07cb251ae2df8e8cfd455a91cbe7d5394a77e0 Author: Erik De Rijcke Date: Wed May 6 16:30:09 2015 +0200 make void* an opaque long in EGL generated class commit 766bcfbb6346a4b0dc161d88dc2a38f2ec64ef4b Author: Sven Gothel Date: Thu Nov 21 03:05:00 2019 +0100 test scripts: add --illegal-access=warn commit 4a072cd1c09d3f2ba5fd04033091836d195c9409 Author: Sven Gothel Date: Thu Nov 21 03:04:33 2019 +0100 Bug 1393: MacOS: Wait for window position setting on main-thread (blocking) Also issue the orderFront0 call within createWindow1 (aligned with IOS code) commit e509bac8554b5a5e8a7cec6638aad53c4129eb68 Author: Sven Gothel Date: Thu Nov 21 02:58:31 2019 +0100 IOS: CGL.updateContextRegister(..) call on main-thread using AppKit commit 1e48668514c2f9c6120b62f1a66b87422e511627 Author: Sven Gothel Date: Thu Nov 21 02:55:37 2019 +0100 MacOS: Add more debug log details commit b0a222100ce8425485bea201adf28dc6509333ad Author: Sven Gothel Date: Mon Sep 16 12:29:08 2019 +0200 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. commit ecc6794670b31d859763eb363ed3ead15d757977 Author: Sven Gothel Date: Mon Sep 16 12:10:23 2019 +0200 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. commit fe6600234cafe16afb1d06a0254d2135ffb71b12 Author: Sven Gothel Date: Wed Sep 11 04:16:31 2019 +0200 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. commit b8db98376069a72ad40b7ef2fe2d9003aea2b091 Author: Sven Gothel Date: Wed Sep 11 04:09:57 2019 +0200 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. commit ee3ee1ffa22a6fb6a0a25b6a547ee90f80e2ef4d Author: Sven Gothel Date: Tue Sep 10 01:48:10 2019 +0200 NEWT Cleanup: WindowImpl: Drop unused 'defer' argument (state change only): insetsChanged + insetsVisibleChanged commit 9332937b86f329f483f3281780278c275b422e39 Author: Sven Gothel Date: Tue Sep 10 01:38:08 2019 +0200 NEWT Cleanup: WindowImpl::visibleChanged(ZZ): Remove unused 'defer' argument. Method only changes state. commit 7e76df3a05b7eb2404cb4584ee0b34ea287eb9bf Author: Sven Gothel Date: Mon Sep 9 09:36:50 2019 +0200 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 Lib-Name: /Applications/Xcode.app/Contents/Developer/usr/lib/libMainThreadChecker.dylib commit e33aa16904d8abddaeceb1374ffa45bd45a96210 Author: Sven Gothel Date: Mon Sep 9 09:33:23 2019 +0200 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. commit b12a80e386b12d9d8fa63cf07124f8da989dcd04 Author: Sven Gothel Date: Mon Sep 9 09:29:43 2019 +0200 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 commit db843e65c6b93d720438c7e751413c0556f51a6e Author: Sven Gothel Date: Sun Sep 8 12:58:08 2019 +0200 OSXUtil::IsMainThread() Utilize ThreadLocal storage flag avoiding unnecessary JNI calls commit 534d764474cacf8bc380123cbfd164c7c55f236a Author: Sven Gothel Date: Sun Sep 8 12:56:57 2019 +0200 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. commit 125e4bd1c8e0a8f4b434209b155e6cd0d8f09092 Author: Sven Gothel Date: Sat Sep 7 18:48:42 2019 +0200 Bug 1392: Simplify CapabilitiesFilter: Criteria -> Test, remove RemovalCriteria as all Test definitions may be used for anything. commit 7f6d030ba91060aa4dedbf4311290c5cf5f61c4a Author: Sven Gothel Date: Sat Sep 7 02:24:44 2019 +0200 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. commit 56a9f30fde429663514c6d5c810af2c43cb7ebf3 Author: Sven Gothel Date: Sat Sep 7 02:20:55 2019 +0200 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. commit 2ab629205c88978891271dd51cfa2a1669a6eec2 Author: Sven Gothel Date: Sat Sep 7 02:15:00 2019 +0200 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. commit 35f719673b2c55b0766e6c9187961db7153d7d26 Author: Sven Gothel Date: Sat Sep 7 01:08:05 2019 +0200 Bug 1391: Cleanup to submit fix: Update known Quirk range; BuggyColorRenderbuffer enables NoFullFBOSupport commit 90760ac8eebe7431ac7392e4ebf3f9009e63cd72 Author: Sven Gothel Date: Thu Sep 5 05:38:25 2019 +0200 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. commit b90fcb88cf208dad27402256e4f08659b17ba567 Author: Sven Gothel Date: Wed Sep 4 04:23:49 2019 +0200 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. commit c5431f46b7bf64f109315ec78461859dd88f202a Author: Sven Gothel Date: Wed Sep 4 04:20:22 2019 +0200 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. commit d1f4bcc64222d53eb7241184210730aa28ae1f6d Author: Sven Gothel Date: Wed Sep 4 04:09:36 2019 +0200 check-junit: enhance output (make it a brief list of classes) commit 4f312cc49796438394ab2d56f425536931086e8e Author: Sven Gothel Date: Wed Sep 4 03:55:12 2019 +0200 Bug 1363: Java 11: Use new Android SDK 24 for Eclipse Android .classpath commit 2c4114b50f4023843073acf6d4cea223fb491e7e Author: Sven Gothel Date: Fri Aug 23 07:30:29 2019 +0200 Bug 1384: Move remaining 'lose' property quirks into GLRendererQuirks.Override commit 70f360d1a58405502a5a2a0f95a2f2abda94d488 Author: Sven Gothel Date: Fri Aug 23 07:28:33 2019 +0200 Bug 1385: Limit Quirk GL3CompatNonCompliant to Mesa < 18.2.0 commit 21f82eb8b74a60cc8a869e073e124d44c75f217e Author: Sven Gothel Date: Fri Aug 23 07:25:53 2019 +0200 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 commit bd4be8b54a43b95d7dec90f6dbd0905987ad7605 Author: Sven Gothel Date: Thu Aug 22 20:02:54 2019 +0200 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. commit 615359e6a70f88bbe3db9664d27c7a4276e58415 Author: Sven Gothel Date: Thu Aug 22 18:55:22 2019 +0200 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' commit 9a5f4c464404c1cde2a9b0eabdef39969349fda0 Author: Sven Gothel Date: Thu Aug 22 18:32:40 2019 +0200 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. commit 5d27c6400a472517e08a86165878f2360d4077bc Author: Sven Gothel Date: Thu Aug 22 18:28:21 2019 +0200 Bug 1383: GLContext.isValidGLVersion() ensure only one profile bit is set max; Add OpenGL version 4.6 commit c896476cc309ab9705329da2c9776a6c481fdb5f Author: Sven Gothel Date: Thu Aug 22 18:25:43 2019 +0200 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'. commit 48d67487dba70f8fd3943ed220f3b774c0bec023 Author: Sven Gothel Date: Wed Aug 21 08:40:07 2019 +0200 GLRendererQuirks: Fix typo commit 33531f146a5f92af65b458b422e673692806cecd Author: Sven Gothel Date: Wed Aug 21 08:39:53 2019 +0200 JoglVersion.getGLInfo: Increase robustness of debug output commit 209bb2f0dc3418d168dc6887802bf4368b6d6f4e Author: Sven Gothel Date: Wed Aug 21 02:19:20 2019 +0200 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. commit 1f0d7d4b416521ef56fdc81b28d128c7f3279188 Author: Sven Gothel Date: Tue Aug 20 18:51:29 2019 +0200 Bug 1101: Add missing disposal of Pipelined_QuadRenderer's VBOs Original author is 'Tof' commit a17e86a07e53e47c778c6e36341c6c0e6874991e Author: Sven Gothel Date: Tue Aug 20 01:52:40 2019 +0200 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 commit 7ec068e0c95a230101450cc80031f76770a0cd49 Author: Sven Gothel Date: Mon Aug 19 13:14:24 2019 +0200 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. commit 24b75b2e91ec5f101b19fa24aa3804adb3819ebf Author: Sven Gothel Date: Mon Aug 19 12:59:27 2019 +0200 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. commit c7858dc766cb9f76ac8f543796b1587a0f8f9279 Author: Sven Gothel Date: Mon Aug 19 12:29:48 2019 +0200 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 commit 13c6bbbde5ea476d60e0a2f04a5172d3302d0edd Author: Sven Gothel Date: Mon Aug 19 12:14:07 2019 +0200 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. commit e1c8add69973b0eae9a87cf2181a0f1cbbe62f4b Author: Wade Walker Date: Fri Jan 4 09:51:44 2019 -0600 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. commit ddd64dc3eb0172654aff5a4c61a389b23d92d0e3 Author: Sven Gothel Date: Mon Aug 19 11:57:04 2019 +0200 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. commit c834ffbeffe454f758089c6ee17f8863acc3e7c5 Author: Sven Gothel Date: Mon Aug 19 11:19:17 2019 +0200 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: commit 4eaa83358b6518c667e9517685eeaafaef692656 Author: Sven Gothel Date: Mon Aug 19 11:14:09 2019 +0200 Bug 1363: Java 11: Adapt scripts for java11 (cont) commit 2dd5b6040858cbec29710be8e68374f46121a39a Author: Sven Gothel Date: Mon Aug 19 10:06:11 2019 +0200 Bug 1363: Java 11: Aligned HowToBuild.html w/ GlueGen's updated version commit 2871688753729ae03ab23bc9043af5012bfee8c6 Author: Sven Gothel Date: Mon Aug 19 09:39:25 2019 +0200 Bug 1363: Java 11: Complement javah replacement: Add new iOS Complements patch 63e31d05ad9f1df99663997c2f04ad086f29c8fc commit 2ea5948b6133c4dc82533f9ce4a8fd56eb04eda2 Author: Sven Gothel Date: Mon Aug 19 09:38:02 2019 +0200 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 commit 63e31d05ad9f1df99663997c2f04ad086f29c8fc Author: Wade Walker Date: Sat Dec 29 10:05:58 2018 -0600 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. commit 229adcb91ecb47391b93bb1c36453262acf70ff6 Author: Sven Gothel Date: Mon Aug 19 09:02:38 2019 +0200 Bug 1363: Java 11: Adapt build scripts for java11 commit 0268e69fceb87ff7eeb1b9c61ceccf532f0cd83b Author: Sven Gothel Date: Mon Aug 19 09:02:08 2019 +0200 Bug 1363: Java 11: javah replacement: Use conditional ant targets instead of branches, also re-add bootclasspath Refines commit df7c0ad3b98d3520f023e026b6163bcba2c7ee7e commit 8579724abe960693e2f8f853a4d651d095ca1ca7 Author: Wade Walker Date: Fri Dec 28 10:14:11 2018 -0600 Removed import that caused GLUgl2/GLUgl2ProcAddressTable not to compile commit eca5d53ab4370d73362dab8d1f0cc3eb974f16a8 Author: Wade Walker Date: Fri Dec 28 10:13:11 2018 -0600 Removed references to non-existent method getPeer() in debug code commit 14e0740459036f57a7b06ca04b66e60a7eef33ed Author: Wade Walker Date: Fri Dec 28 09:45:45 2018 -0600 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. commit df7c0ad3b98d3520f023e026b6163bcba2c7ee7e Author: Wade Walker Date: Thu Dec 27 09:49:51 2018 -0600 Fixed native header generation for native windowing code commit 56db83dab0c8a70f1177425c557b7b664e06fb47 Author: Sven Gothel Date: Mon Jul 8 06:16:29 2019 +0200 iOS: IOSUtil_CreateGLViewDemoA0 tests native UIWindow parenting (works) commit 29ad35ab598b6d97367e2e9763f0d2a96c52bcaa Author: Sven Gothel Date: Mon Jul 8 06:15:59 2019 +0200 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. commit b4fef61928cfd379dcb956e17a63495a18444f8a Author: Sven Gothel Date: Mon Jul 8 06:13:02 2019 +0200 NEWT iOS WindowDriver: Remove unused orig UIWindow/UIView creation path See commit 004c67c73a0309158c30929cd0d6513e23f34803 commit 004c67c73a0309158c30929cd0d6513e23f34803 Author: Sven Gothel Date: Mon Jul 8 05:11:56 2019 +0200 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. commit 0f97d9292cc7ff97f61f68b69c5a375cc023a5af Author: Sven Gothel Date: Mon Jul 8 05:10:02 2019 +0200 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 commit d488ff097fc329a3185c6c64a8a6908e1f9f63d6 Author: Sven Gothel Date: Mon Jul 8 04:59:14 2019 +0200 NEWT iOS / MacOS: Simplify setJavaWindowObject commit f74e9c1597612edbff81425d4f2f528da5ebaf43 Author: Sven Gothel Date: Mon Jul 8 04:55:28 2019 +0200 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. commit a307ab505ed3fb5fe64f01478ce6d2933cd26c7d Author: Sven Gothel Date: Mon Jul 8 04:38:42 2019 +0200 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. commit 7fc01d666ae35bd789232b18f8d3f2df7146e4d3 Author: Sven Gothel Date: Mon Jul 8 04:35:04 2019 +0200 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. commit f006cb6a0794c0d4fdfc59ded579fc3d91551d0b Author: Sven Gothel Date: Mon Jul 8 04:27:18 2019 +0200 Fix build test jar regression (commit bba73bc096250a3c7fc036d84b1ea054d1b70b06) java.part.test.all was erroneously removed, redefined. commit 9a12ff413a216b7d591950e9d5fc9a261786bc00 Author: Sven Gothel Date: Wed Jun 26 08:39:37 2019 +0200 NEWT: Align native MacOS / IOS file- and classnames commit 019a6fe3c2f5efe550d41f7262b8010d3cfa0aa0 Author: Sven Gothel Date: Mon Jun 24 22:05:47 2019 +0200 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. commit 203f795cd3332d6d61c210c8b7901de069d9166a Author: Sven Gothel Date: Mon Jun 24 14:57:55 2019 +0200 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. commit bba73bc096250a3c7fc036d84b1ea054d1b70b06 Author: Sven Gothel Date: Sun Jun 23 08:03:04 2019 +0200 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. commit 154e91978498d8b6db9ce34a1f06b298bcf4c361 Author: Sven Gothel Date: Mon May 13 11:20:34 2019 +0200 Bug 1381: Keep host PixelFormat functional using requested immutable alphaRequested + add appropriate API doc commit ea3edf9cfc6b6fda9780c540e1de099c97207bc1 Author: Sven Gothel Date: Mon May 6 13:17:41 2019 +0200 Update CSS; Add responsive viewport design tag commit 771b90f3453bdb94d6a4a3833ba72cb31f3d4997 Author: Sven Gothel Date: Mon May 6 13:04:57 2019 +0200 Update CSS; Add responsive viewport design tag commit ca7f0fb61b0a608b6e684a5bbde71f6ecb6e3fe0 Author: Sven Gothel Date: Wed Apr 10 05:36:16 2019 +0200 Bug 1358: 'Honor' SWT's projection of High-DPI Scaling (Reading hidden pixel dimensions) Christian reported this bug and described multiple pathways. This change usese the following: - access to getClientAreaInPixels w/ fallback of - DPIUtil.autoScaleUp(getClientArea()) I hardly have tested this on Linux/GTK, even though I use a High DPI monitor, maybe just because of it and Eclipse _poor_ state of proper UI presentation. Christian: Please test this .. if buggy, reopen quick for release 2.4.0 SWT/GTK High-DPI is a PIA: - GDK_SCALE renders offscreen and scales the image (wow & ugly) - GDK_DPI_SCALE works at least on the fonts properly - swt.autoScale is pretty much like: What will be scaled? It scales some icons in Eclipse, not fonts and result in Eclipse looks horrible. Maybe I just made this patch to vent about this poor state of things. Notable: KDE looks great and uses DPI, firefox some GDK_DPI_SCALE equivalent (OK) One also wonders why there is only a single scale dimension, where DPI differs x/y! But enough of my rant :) commit fc2edeb79e42897b926081769ad3cb3e509aed71 Author: Sven Gothel Date: Wed Apr 10 04:04:20 2019 +0200 AWTRobotUtil Cleanup: Use specific argument types (AWT, NEWT, ..) Most fixed, some marked as FIXME left still .. Also fixed AWTRoboUtil regression of last commit(s), where AWTRobotUtil.addClosingListener(..) called to itself causing a StackOverflowError. commit 35e3789ba401e94cb4778971470eb90d5c383f79 Author: Sven Gothel Date: Wed Apr 10 00:35:59 2019 +0200 Bug 1362: Final general lifecycle fixes of unit tests SWT unit tests must wait while issuing 'display.readAndDispatch()' so essential event dispatching won't get blocked. Previous AWTRobotUtil cleanup and these patches ensure proper lifecycle checks. commit b865c4bcd1a89632ea49b7be56ac230a5aa2da63 Author: Sven Gothel Date: Wed Apr 10 00:16:10 2019 +0200 Cleanup AWTRobotUtil ..: Add 'Runnable waitAction' also to waitForFocus and closeWindow, etc .. commit 6df8cd254d2a82910477f9e5d9bf7a742157de7a Author: Sven Gothel Date: Tue Apr 9 23:46:31 2019 +0200 Cleanup AWTRobotUtil 3: TestUtil.WindowClosingListener must be public commit 0a0673f71d50715999aabd815803c7c383e28ec3 Author: Sven Gothel Date: Tue Apr 9 23:29:43 2019 +0200 Cleanup AWTRobotUtil 2: Align signatures of waitForVisible(..) and waitForRealized(..) commit bb588480a2978da6b8ffec821821f19eb6a83e40 Author: Sven Gothel Date: Tue Apr 9 22:20:53 2019 +0200 Cleanup AWTRobotUtil: Extract GLTestUtil + NewtTestUtil; all three based on TestUtil commit 705c7f7b3fb36c1d654f5d9b9016859506d93764 Author: Sven Gothel Date: Tue Apr 9 21:33:17 2019 +0200 Bug 1362: Minimal action required: setBackground of the parent canvas before reparenting! Bug 1362 fix or workaround: Seems SWT/GTK3 at least performs lazy initialization Minimal action required: setBackground of the parent canvas before reparenting! commit ca3bf988bfad6adac9ad9ac240f3c15b129ef85e Author: Sven Gothel Date: Tue Apr 9 19:31:23 2019 +0200 Bug 1362: Minimal action required: setBackground + fillRectangle of some space in canvas ONCE before reparenting! Bug 1362 fix or workaround: Seems GTK3 at least performs lazy initialization Minimal action required: setBackground + fillRectangle of some space in canvas ONCE before reparenting! commit a2f09981ee7d590204bf865314c2cdf802c4ed77 Author: Sven Gothel Date: Tue Apr 9 12:55:49 2019 +0200 Bug 1362: TestSWTAccessor02NewtGLWindow demonstrates a fix by letting the Canvas PAINT! This commit shows the very little change set required to allow working on SWT >= 4.10 + GTK3, i.e. adding the PAINT listener to Canvas and letting it paint. Almost too ridiculous? I stumbled over it by creating this test in the first place when copying the 01 test -> 02 and adding the native parenting. Possible explanation: The parent Canvas may need to paint once at least due to some lazy initialization within SWT or GTK3?! commit 9b53619079d29483a487e54ed16ed845dd16bcb0 Author: Sven Gothel Date: Tue Apr 9 12:52:01 2019 +0200 Bug 1362: Unit tests: Report SWT and GTK Version commit 58dd634261ebb815771dcd3d59dbf972f1c79106 Author: Sven Gothel Date: Tue Apr 9 12:15:58 2019 +0200 Bug 1362: Add two self contained unit tests to validate SWT >= 4.10 + GTK3 issues TestSWTAccessor01: Simply tests SWTAccessor's returned native window handle. Works on SWT + GTK2 and SWT + GTK3. TestSWTAccessor02NewtGLWindow: Uses same returned native window handle and tests a GLWindow.reparentWindow(..) operation all rolled out and implemented here ad-hock (comparable to NewtCanvasSWT). This shall allow simplified debugging. Testing: - SWT + GTK2: Works - SWT + GTK3: Bug reproduced commit 89e075c2d14afc8b7f7eb589d0d3b9285751209b Author: Sven Gothel Date: Mon Apr 8 06:02:28 2019 +0200 Bug 1190: Adapt cross build TARGET_PLATFORM_USRLIBS and TARGET_PLATFORM_SYSROOT (android) commit 1ecfcebb0604abc42e70b986f6358fcf282f47c7 Author: Sven Gothel Date: Mon Apr 8 05:47:44 2019 +0200 Bug 1190: Adapt cross build scripts commit ab10b11a9c94d9597f788e218fe45ede49c67f33 Author: Sven Gothel Date: Fri Apr 5 22:22:32 2019 +0200 Bug 1362: Wrong 'fake' swt.jar config for isLinuxARM64, isLinuxARMv6 and isAndroid We intend to attach a non-matching swt.jar for these build nodes, to at least pass the javac pass w/o testing on those platforms. commit 2280e821ea5f8e02fb99cf3f12e10115d6d4f13a Author: Sven Gothel Date: Fri Apr 5 08:54:13 2019 +0200 Bug 1362: Test against SWT 4.3 and 4.11 4.3 is still working w/ GTK2 4.11 is not working as described by Wade commit 56a3ea2077483925cb7da7729fe3afa4da498929 Author: Sven Gothel Date: Fri Apr 5 07:50:36 2019 +0200 Bug 1362: SWTAccessor: c -> cGTK for readability commit b52335c4c550aa8a9fd0007563f89dd8a04dc81c Author: Sven Gothel Date: Fri Apr 5 07:49:51 2019 +0200 Bug 1362: build/test: Use new SWT 4.10 swt.jar (instead of swt-debug.jar) commit 4cc7d45ad7e7e35b73afe7ddeb9dcf06893e7cb9 Author: Sven Gothel Date: Fri Apr 5 07:48:18 2019 +0200 Bug 1362: Replace SWT 4.3.0 -> 4.11.0 https://download.eclipse.org/eclipse/downloads/drops4/R-4.11-201903070500/ This binary make/lib drop is only required for build and unit tests. commit ebca35f9a09898b3499ec9fa0e346f2e0c932133 Author: Wade Walker Date: Fri Apr 5 06:57:10 2019 +0200 Bug 1362: Enhancing SWT/GTK Support for GTK 2.90, SWT > 4.8 (?) commit 1c697274a3c1e976bd9c9b089d6583edf4f346ae Author: Sven Gothel Date: Fri Apr 5 05:54:48 2019 +0200 Bug 1370: Call from Main-Thread: NW's OSXUtil.CreateNSWindow0(..) and NEWT's WindowDriver.createWindow0(..) OSX 10.14.3 Mojave issues a WARNING: NSWindow drag regions should only be invalidated on the Main Thread! This will throw an exception in the future. The complaint about NativeWindow (NW)'s OSXUtil.CreateNSWindow0(..) might be valid, which does create a NS Window instance w/ NSView and framebuffer initialized. However, the complaint about NEWT's WindowDriver.createWindow0(..) is not, since the initialization incl framebuffer happened later on the main thread. Regardless, encapsulated both construction fully to run on the Main-Thread. +++ Originally the Main-Thread design spec was like: Must run on Main-Thread when or after making visible. Oh well. commit 38cb6fa11f00fb358b8bbe40dc79443a5f30269f Author: Sven Gothel Date: Wed Apr 3 21:09:35 2019 +0200 TestVersionSemanticsNOUI: Adapt to upcoming NON_BACKWARD_COMPATIBLE version 2.4.0 commit 8f6ffa4e3f158509f3ed8c74c88a3e46723a6e0f Author: Sven Gothel Date: Wed Apr 3 10:55:00 2019 +0200 Windows scripts: Use JDK/JRE 1.8.0_121 commit bbee6f5a71e643b0130f4c89fb8b137e116be029 Author: Sven Gothel Date: Wed Apr 3 09:29:51 2019 +0200 Bug 1367: Adapt to TempFileCache & TempJarCache Changes commit 1fe5a5dc1b164789253406286a05d1332b9467b9 Author: Sven Gothel Date: Wed Apr 3 01:02:27 2019 +0200 Bug 1367: Adapt to TempFileCache & TempJarCache Changes commit 31869130c3580a1a1c9e2f57e48d5712a3eebda1 Author: Sven Gothel Date: Sat Mar 30 06:09:52 2019 +0100 Bug 1366 - Use String.format((Locale)null, "..." ..) avoiding Locale output for System related Operations commit b83a912f19685e81b71c950914f0f82cc0e534bf Author: Sven Gothel Date: Sat Mar 30 01:27:37 2019 +0100 Bug 1316: MacOSX: Keep *.dylib (Don't move to *.jnilib) Since Java8 (or even earlier), JRE on OSX uses *.dylib native library suffix instead of *.jnilib when automatically searching and loading them. This is not easily being recognized by JogAmp, since we explicitly name the native libraries with full path when testing with our TempJarCache. commit ec4721c5b81ca39355f660294bf45edc0a1584da Author: Sven Gothel Date: Wed Mar 27 18:53:27 2019 +0100 Bug 1348: Fix X11 XI Multitouch I got access to a touchscreen laptop w/ Debian 9, hence I could fix and test the implementation. X11 DisplayDriver.java: - Store and pass through xi_opcode of XI extension, queried at initialization stage X11Window.c Fixes: - Initialize JavaWindow's xiTouchCoords[].id w/ -1, as required to track the pointer - Pass through xi_opcode as stored in X11 DisplayDriver X11Display.c Fixes: - sendTouchScreenEvent: Throw RuntimeException if 0 > actionId (Internal Error: based on xiTouchCoords[].id tracking) - DispatchMessages's windowPointer determination: -- Query potenial XI Event first: IF XI Event, must use XIDeviceEvent's event Window -- Only IF not an XI Event, we can use evt.xany.window as the event window - DispatchMessages's XI Event Handling: -- Always break deviceid search loop if id found, preserving index and time spend Works on my Debian 9 device, tested w/ com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT: - One pointer (finger) press, drag and release (click) - PinchToZoomGesture works - DoubleTabScrollGesture works +++ Potential Issues: JavaWindow's xiTouchCoords[].id accuracy is crucial to pointer tracking during XI_TouchBegin -> XI_TouchUpdate -> XI_TouchEnd. In the normal course of action: - XI_TouchBegin sets the id, assuming it is yet set - XI_TouchUpdate assumes it is set - XI_TouchEnd clears the id, assuming it is set This field in the JavaWindow array only gets reset to -1 once at native window creation. We may need to figure out when to reset this field to -1. If the XI_TouchEnd events would get lost for whatever reason, the above tracking state would be broken. commit 9e06adb30c8bf01e074e82cde1ebded74b62a805 Author: Sven Gothel Date: Wed Mar 27 15:27:35 2019 +0100 Update HowToBuild.html Minimum supported Debian version is now Debian 9 or Stretch to minimize maintenance. Note: No other GNU/Linux version has been validated so far. commit b32541efc1bef773c4f1bbd06d0885ee79821865 Author: Sven Gothel Date: Wed Mar 27 03:43:42 2019 +0100 Bug 1348: X11 XI Multitouch: Refine commit 746383476aa449e9cab4a25df27be85b61aa074b Add more verbose DBG_PRINT - @ CreateWindow: extension, scanning device/class, registered deviceid - @ DispatchMessage: XI_TouchBegin, XI_TouchUpdate and XI_TouchEnd On my test machine w/o a touchscreen I correctly: - detected extension - detected no XITouchClass device, hence no deviceid registered X11: [CreateWindow]: XI: Window 0x6600016, Extension 131 X11: [CreateWindow]: XI: Scan Window 0x6600016, device[1/13].class[1/7]: type 1 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[1/13].class[2/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[1/13].class[3/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[1/13].class[4/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[1/13].class[5/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[1/13].class[6/7]: type 3 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[1/13].class[7/7]: type 3 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[2/13].class[1/1]: type 0 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[3/13].class[1/3]: type 1 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[3/13].class[2/3]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[3/13].class[3/3]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[4/13].class[1/1]: type 0 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[5/13].class[1/1]: type 0 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[6/13].class[1/1]: type 0 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[7/13].class[1/1]: type 0 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[8/13].class[1/7]: type 1 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[8/13].class[2/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[8/13].class[3/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[8/13].class[4/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[8/13].class[5/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[8/13].class[6/7]: type 3 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[8/13].class[7/7]: type 3 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[9/13].class[1/7]: type 1 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[9/13].class[2/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[9/13].class[3/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[9/13].class[4/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[9/13].class[5/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[9/13].class[6/7]: type 3 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[9/13].class[7/7]: type 3 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[10/13].class[1/1]: type 0 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[11/13].class[1/1]: type 0 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[12/13].class[1/7]: type 1 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[12/13].class[2/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[12/13].class[3/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[12/13].class[4/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[12/13].class[5/7]: type 2 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[12/13].class[6/7]: type 3 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[12/13].class[7/7]: type 3 (is XITouchClass 0) X11: [CreateWindow]: XI: Scan Window 0x6600016, device[13/13].class[1/1]: type 0 (is XITouchClass 0) commit 746383476aa449e9cab4a25df27be85b61aa074b Author: Sven Gothel Date: Wed Mar 27 03:10:41 2019 +0100 Bug 1348: X11 XI Multitouch: Fixes of previous commit 92006e4baef57f1f3fb647dd307aed5989fd4c8d Previous commit 92006e4baef57f1f3fb647dd307aed5989fd4c8d (Note to Danny: I cannot test this now - please re-test and/or review) X11Common::JavaWindow - Owns XI extension's xiOpcode, selected xiTouchDeviceId and tracked XITouchPosition array X11Window::CreateWindow - Query XI extension only once @ window creation and earmark xiOpcode in JavaWindow instance - Fix: Device selection code was "class->type != XITouchClass", but shouldn't it be 'XITouchClass == class->type' (as patched here) - Fix: Free XIQueryDevice returned XIDeviceInfo array via XIFreeDeviceInfo - Earmark deviceid in JavaWindow instance X11Display - Moved global static touch_coordinates to JavaWindow::xiTouchCoords instance X11Display::DispatchMessage - Changed event handling structure similar to https://keithp.com/blogs/Cursor_tracking/ - Fix: Free XGetEventData's optional memory allocation via XFreeEventData - Reuse JavaWindow's queried xiOpcode - Fix: Don't overrise windowPointer, instead validate and require a match. JavaWindow must match! - Fix: Also validate chosen deviceid with JavaWindow's registered device Newt Build: - Added libXi in build recipe and doc commit ddf2640e5088c105352b032bea076c569685c99a Author: Sven Gothel Date: Tue Mar 26 23:54:37 2019 +0100 Bug 1288: GLBufferStateTracker needs to support ARB_indirect_parameters GLBufferStateTracker needs to support ARB_indirect_parameters, i.e. checkTargetName(target) and getQueryName(target) need to recognize GL4.GL_PARAMETER_BUFFER_ARB. commit a77ac6290977db3b7f15097e7c21c7cca8427929 Author: Sven Gothel Date: Tue Mar 26 23:18:45 2019 +0100 ShaderCode: Fixed constant usage (GL3 -> GL3ES3) commit 2319a207873cf88da4ce0dadc5e7a2e5479d4254 Author: Sven Gothel Date: Tue Mar 26 23:17:53 2019 +0100 Bug 1283: Remove shader include filename quotes if exists at start and end only commit e6298fa34539fc5bb636fe10e0d4f083719dee64 Author: Julien Gouesse Date: Mon Mar 25 15:18:13 2019 +0100 Bug 1357 Related: GLRendererQuirks NoSetSwapIntervalPostRetarget and NoDoubleBufferedPBuffer no more required for Mesa >= 18.2.2 commit 8a66defd3c2c96b05c8868d5edb604e3564ff66d Author: Sven Gothel Date: Thu Mar 21 00:58:39 2019 +0100 NewtCanvasJFX: Utilize JFXEDTUtil per default, supporting the Windows Platform On [GNU/Linux] X11 JFXEDTUtil is not required, since X11 can handle multi-threaded native parenting, however, the Windows platform does require JFXEDTUtil. Currently the default is to use JFXEDTUtil, which operates solely on the JavaFX thread for windowing lifecycle and even-dispatch operations. This behavior can be toggled via the boolean property 'jogamp.newt.javafx.UseJFXEDT', which currently defaults to 'true' This behavior might be analyzed in more detail for a fine grained EDTUtil decision. commit 5ae0eeca1a7031931d10c0db56539bf565ee9591 Author: Sven Gothel Date: Thu Mar 21 00:54:16 2019 +0100 NewtCanvasJFX.NativeWindow: Delegate required child window canvas position NewtCanvasJFX.NativeWindow shall pass through NewtCanvasJFX's Canvas position to properly position the NEWT child window inside the top level Window. NewtJFXReparentingKeyAdapter demonstrating manual reparenting demonstrates this case. TestGearsES2NewtCanvasAWT's default behavior is to use a surrounding border for the NEWTCanvasAWT child, similar to TestNewtCanvasJFXGLn. commit c4cebae730496f95308ad7a9d01cabe2061d916e Author: Sven Gothel Date: Wed Mar 20 23:03:58 2019 +0100 TestNewtCanvasJFXGLn: Adding NEWTDemoListener and NewtJFXReparentingKeyAdapter functionality commit 76805f82460fdeef40a4562a954802537d554c6d Author: Sven Gothel Date: Wed Mar 20 23:02:50 2019 +0100 Tests: Adding API Doc for test utilizing NEWTDemoListener and derivations commit 5ebd08709bceee1a7bee45cb042c60e299140fdf Author: Sven Gothel Date: Wed Mar 20 23:01:25 2019 +0100 Adding NativeWindowHolder extends NativeSurfaceHolder; API Doc for NEWTDemoListener NativeWindowHolder abstracts access to is-a or has-a parent component's NativeWindow like NewtCanvasAWT, NewtCanvasJFX and NewtCanvasSWT Adding API Doc for NEWTDemoListener. commit 5ec31d7293b5cce83dcddbaead6c852f6b45d6d7 Author: Sven Gothel Date: Wed Mar 20 18:28:31 2019 +0100 NewtCanvasSWT: Fix NOP WindowClosingProtocol.WindowClosingMode Behavior commit de1ad5939dd22a3d5381789ae4d5d9fad2881071 Author: Sven Gothel Date: Wed Mar 20 18:28:04 2019 +0100 NewtCanvasJFX: Implement WindowClosingProtocol.WindowClosingMode Behavior commit ec329b2b7ec5459e47fc3ea562a9c80c904515dc Author: Sven Gothel Date: Wed Mar 20 17:51:56 2019 +0100 NewtCanvasJFX: Clarify [dispose() -> destroy()] operation This is automatically issued when receiving the javafx.stage.WindowEvent#WINDOW_CLOSE_REQUEST from the attached top-level JavaFX Window commit c5979a9a4690eec57c1192c9cd5c842ced92fd21 Author: Sven Gothel Date: Wed Mar 20 15:03:56 2019 +0100 JavaFX: Preliminary testing on Windows commit f4b4716975148111335b9b9e6b2576bbadff160f Author: Sven Gothel Date: Wed Mar 20 15:03:29 2019 +0100 JavaFX: Add proper class doc for implementation and unit test commit 992432a0e2b5e1c510bee246bf4c3990f388c5ea Author: Sven Gothel Date: Tue Mar 19 22:43:48 2019 +0100 JavaFX: Remove JFXAccessor redundancy commit 46e0b6d774301056ff1691ddd92552f7972751e1 Author: Sven Gothel Date: Tue Mar 19 22:00:18 2019 +0100 JavaFX: Fix API doc of JFXAccessor commit a4ec6556f9ef3a409cceb9bfdb0d19dfc7d98d4a Author: Sven Gothel Date: Tue Mar 19 11:40:34 2019 +0100 JavaFX: Adding JavaFX Support for NEWT utilizing native Window parenting via NewtCanvasJFX NewtCanvasJFX, a JavaFX Canvas Node, allows attaching a native NEWT Window to the JavaFX Node's native Window (if attached). The mechanism is similar to NewtCanvasAWT. Current implementation supports placing the NEWT Window into the JavaFX scene of the native window correctly, as well as the following different lifecycles - attach NewtCanvasJFX to already visible group->scene->window - attach NewtCanvasJFX to not yet visible or attached group->scene->window - attach NEWT Window before or after NewtCanvasJFX's visibility The above is covered by unit test: TestNewtCanvasJFXGLn This is the initial commit for JavaFX support and has been tested on - OpenJDK 8 + OpenJFX 8 - GNU/Linux X11 commit a98ef342cc03a92692584a35291724d7b05c3370 Author: Sven Gothel Date: Tue Mar 19 05:39:22 2019 +0100 Eclipse: Move android.jar to classpath end, avoid junit override commit 025e4548e982954528a461637a02d07dc509530e Author: Sven Gothel Date: Wed Jan 23 02:17:13 2019 +0100 OSX/Newt: Catch NSRangeException on closing a window rarely occurs on terminating or killing the process commit cc157b6a7dfbdefbbfc31085b4013e395cfecd13 Author: Sven Gothel Date: Wed Jan 23 02:13:44 2019 +0100 osx test scripts using latest Java commit 347271ffdd09153a2334fda593774d49050f84e0 Author: Sven Gothel Date: Tue Jan 16 06:45:46 2018 +0100 Bug 1290: Expand query whether BCM IV is being used, exclude '/dev/dri/card0' Also refactor query to jogamp.nativewindow.BcmVCArtifacts commit 9cecc35ac7ee52622ff2e5eb3c961e0f75abd72b Author: Sven Gothel Date: Mon Jan 15 09:10:47 2018 +0100 Version Semantics Test: Bump for 2.4.0 -> 2.3.x We are still on the 2.3.x branch for the next release commit d590c5df17650b3790bb434fb7529df874914a09 Author: Sven Gothel Date: Mon Jan 15 07:21:41 2018 +0100 Bug 1299: Fix Warning when using JOGL on Mac OS X El Capitan It turned out to be a missing CATransaction, i.e. the native create/destroy commands had to be encapsulated within [CATransaction begin] and [CATransaction commit] causing the uncommitted CATransaction. commit ec05537be8a1355d74c86d0f3b4509ec3dc653f5 Author: Sven Gothel Date: Mon Jan 15 07:17:47 2018 +0100 HowToBuild: Add Debian 9 Notes commit 84e6b142469e7d6acc3ec41fe2096853d5a880b2 Author: Campbell Jones Date: Tue Dec 26 18:25:30 2017 -0500 Update GLContextImpl.java commit 51d301875a65f511b6a9846fc3bf661e50a48a68 Author: gohai Date: Sun Mar 5 17:27:23 2017 +0100 Fix overlay/underlay position mismatch in X11UnderlayTracker with overscan enabled With the overscan enabled by the Raspberry Pi firmware, which seems to be the default for some attached displays, the underlayWindow size will be e.g. 1888x1048 (retrieved from X11), whereas the overlayWindow size remains at 1920x1080 (retrieved from the Broadcom VC IV implementation). This causes the overlay window to be visually offset by a few pixels. Correct this by applying an offset when the two don't match. (Both displays are assumed to have the same center.) commit 60fadc1e723eaae471d68e9b0b939dfe2ba6abfe Author: gohai Date: Thu Feb 16 11:54:19 2017 +0100 Fix mouse button reporting in X11UnderlayTracker commit 6665ecc942fff70667a2c3ca3d25eba54b909faa Author: gohai Date: Thu Feb 16 11:47:14 2017 +0100 Change library search order for Broadcom VC IV graphics When the VC4 DRM driver isn't loaded, we want to load the VC IV GLES2 driver, which is - unfortunately - only available as libGLESv2.so. commit d21c48849eb962c3c5c863587aeffe2db33a236f Author: Xerxes Rånby Date: Mon Dec 12 10:04:19 2016 +0100 Bug 1295: Add linux-aarch64 GNU/Linux AArch64 support scripts/make.jogl.all.linux-aarch64-cross.sh: New crosscompile script build-common.xml: Add SWT compile hack for isLinuxARM64 commit ec6d2ca98674804c9e9162dddefda2962b91bf12 Author: Danny Koernig Date: Thu Nov 17 14:38:52 2016 +0100 add touch event support for x11 server commit 23b6a8dc92521f762248011b74f4d5028472583d Author: Robin Stevens Date: Wed May 4 12:19:04 2016 +0200 Typo in javadoc of GLDrawable#isRealized commit d08b1c988422668d52e5df7fdb4f50c0788e781d Author: Robin Stevens Date: Wed May 4 09:34:39 2016 +0200 Improved layout of last paragraph in class javadoc commit fa0f55873667a0380101312c073ad18bd0ec3fab Author: Julien Gouesse Date: Tue Apr 5 22:42:51 2016 +0200 Shows all information of the default graphics device in JoglVersion, bug 1294 commit 57b519c3788bec2fa3c3575db6deadeb153352f7 Author: gohai Date: Wed Feb 10 16:13:11 2016 +0100 Bug 1254: Fix viewport height in BCM VC IV ScreenDriver This should fix https://jogamp.org/bugzilla/show_bug.cgi?id=1254, which leads to windowed sketches not being centered in Processing. commit 8a62985ca763c793ab75a69d2600cb9724a84402 Author: Harvey Harrison Date: Wed Feb 24 14:58:48 2016 -0800 WWW: update description of jaamsim on the website. Signed-off-by: Harvey Harrison commit 93094928489adb0b12889f7b35c75a28303e18e8 Author: gohai Date: Wed Feb 10 15:52:13 2016 +0100 Change BCM VC IV detection to handle presence of vc4 DRI module The recent Raspbian release comes with a vc4 kernel module that can be activated with a device tree overlay. In this case, we want to use the DRI & Mesa / Gallium3D driver instead of the BCM VC IV one, whose userspace library remains in /opt/vc. commit 7e4c32ba709346ce4009d50e506ebc4c079d7c1e Author: Giuseppe Barbieri Date: Fri Jan 29 13:59:46 2016 +0100 Removing also all the double quotes https://jogamp.org/bugzilla/show_bug.cgi?id=1283 commit fef0ec387c64b819e4ceeb5d153682658e70957c Author: Harvey Harrison Date: Mon Dec 7 19:09:21 2015 -0800 jogl: complete audit of code for unneeded calls to .intern() Completes task from Bug1059. These calls are not needed as the VM implicitly interns String constants when a class is loaded. Signed-off-by: Harvey Harrison commit 45cc13c4d68fb3137b741cbc39ea653c15db2f66 Author: Sven Gothel Date: Mon Nov 16 03:09:36 2015 +0100 Bump scripts to jre1.8.0_66 commit 2583a422d48ebb754547eb9d8e0ae89933de637f Author: Sven Gothel Date: Sun Nov 15 05:18:42 2015 +0100 X11Util.openDisplay: DEBUG: Show reusable and pending display count commit 5b6112bf45f7ae2e0e14f2219b9bbf11b84252d2 Author: Sven Gothel Date: Sun Nov 15 05:18:01 2015 +0100 Bug 1270 - Fix OSX El Capitan 10.11 stuttering: ALAudioSink: DEBUG: Show OpenAL Version commit d686924d80660a266c57473b7fbc209d6a1a062b Author: Sven Gothel Date: Sun Nov 15 05:03:32 2015 +0100 Bug 1268: Adapt to GlueGen commit 2034bbfac88b7d1360f9c939e173ff758f7f47ac commit 2fa50b55b2459fee19338fcf4f5666577b25ca7d Author: Sven Gothel Date: Sun Nov 15 04:34:51 2015 +0100 Bug 1267 - OSX El Capitan: Animated NEWT GLWindow flickers at resize OSX El Capitan 10.11.1 using JRE 1.8.0_66: Animated NEWT GLWindow flickers at resize. While at live resize the animation thread renders into the live resized NSView which causes flickering on OSX 10.11. Resolution is to pause animation during live resize and resume at its end. commit 8b1e9185aedc070b5f6cddfe361f54dc5d310eec Author: Xerxes Rånby Date: Fri Oct 30 14:23:39 2015 +0100 doc/misc/robovm.txt: Update to JogAmp JOGL 2.3.2 and last libre RoboVM 1.6.1 commit 0d2abcd9b556cabdaaaa36d0c1465d3d1f4f0808 Author: Xerxes Rånby Date: Tue Oct 20 12:52:28 2015 +0200 make/doc/jogl/spec-overview.html, make/config/jogl/gl-common.cfg: OpenGL ES 3.1 -> 3.2 commit b3555058a05aed43e8fe93dc21db70695df5a9ad Author: Xerxes Rånby Date: Tue Oct 20 12:45:17 2015 +0200 www/index.html: Update links and text OpenGL ES 3.x -> OpenGL ES 3.2 commit 583c8c525b0691a0cb2a195ced20969b2e0ff57f Author: Sven Gothel Date: Thu Oct 15 14:04:21 2015 +0200 Remove deprectated classes and methods commit 2548d211af9cf786a3ed30ede778d872916dc422 Author: Sven Gothel Date: Mon Oct 12 09:07:33 2015 +0200 Cleanup IgnoreExtension for GL3 and GL4 exclusive extensions commit 90e9104f0acd9eb014f3361139119c3f53b955a3 Author: Sven Gothel Date: Mon Oct 12 08:25:22 2015 +0200 TestGearsES2NEWT: Adding programmatic Debug|Trace pipeline commit d285de0ba49563ea2d7515d192147b129b201598 Author: Sven Gothel Date: Mon Oct 12 08:13:43 2015 +0200 Streamline Composed Pipeline's interfaces and implementations (Trace* Debug*) Only add the required direct interfaces / implementations to interface / class derivations, not polluting overview in IDEs. Aligns w/ commit bf76b6b77f078178fc5e6a42c70d354369004b94 commit bf76b6b77f078178fc5e6a42c70d354369004b94 Author: Sven Gothel Date: Mon Oct 12 08:11:28 2015 +0200 Streamline GL* profile interfaces and implementations Only add the required direct interfaces / implementations to interface / class derivations, not polluting overview in IDEs. commit 3236695b3e3e86ce61ca973d94cae04e1d5ba1c0 Author: Sven Gothel Date: Mon Oct 12 08:09:54 2015 +0200 Drop Vendor Extensions: INGR and PGI for all profiles commit b13806a784f86b18764e9603d6c94ecb81d54dbb Author: Sven Gothel Date: Mon Oct 12 08:09:02 2015 +0200 Version Semantics Test: Bump for 2.3.2 -> 2.4.x commit cdef0114f029698d129762a5da9edbf77de174c7 Author: Xerxes Rånby Date: Tue Sep 8 09:50:38 2015 +0200 doc/misc/robovm.txt: Explore low footprint deployment 6.3Mb commit 20dc629cb92f48412090ab020c1d5a282ceaa268 Author: Xerxes Rånby Date: Thu Aug 20 20:21:12 2015 +0200 doc/misc/robovm.txt: Mention -rvm: runtime flags commit c1869ee0fed3ca982a8dbc59110dc0f0e83b8545 Author: Xerxes Rånby Date: Thu Aug 20 20:07:24 2015 +0200 doc/misc/robovm.txt: Writedown howto use JogAmp in combination with RoboVM AOT commit ca4515d20186b3b4e74acee7c1dad72566913bae Author: packet0 Date: Tue Aug 11 18:30:02 2015 +0900 SWTAccessor: Cleanup disable debug messages