commit e794fc40ba723f2fca4ac892e873975fb393e007 Author: Sven Gothel Date: Sat Oct 10 03:08:14 2015 +0200 WindowImpl.quirks: Access default -> protected, also fix API doc comment. commit c61fa44d9a2e2049fec7833990f7bb699545bd15 Author: Sven Gothel Date: Sat Oct 10 01:47:07 2015 +0200 Bug 1249: NEWT/X11 Visibility: Listening to more events for updated state; Adding QUIRK_BIT_VISIBILITY 1) More visibility detection on post ConfigureNotify events, since the latter may not yet contain the updated visibility state as it whould (WM bug!): - EnterNotify - LeaveNotify - Disabled - Expose - VisibilityNotify 2) Introducing quirks. Setting QUIRK_BIT_VISIBILITY to handle the issue where visibility -> false could not even be set. commit c1594efa78951f187a75ec0b9a85cf64fba418d4 Author: Sven Gothel Date: Fri Oct 9 06:14:00 2015 +0200 Bug 1247 - TestGearsNewtAWTWrapper fails AWT recreation case removeNotify -> addNotify, e.g. by moving to other monitor AWTCanvas removeNotify didn't cause 'local' destruction of the NEWT window, allowing a 'recreate' w/ subsequent addNotify. This case has been hacked-into NEWT.AWT.WindowDriver + AWTCanvas: - suppression of window destroy events - keeping fields/states intact in NEWT.AWT.WindowDriver - propagating signals appropriately Note: This is barely a working hack and not a fine piece of software :) This AWT backend driver exists only due to historical reasons. This hack simply proves that JAWTWindow works properly. commit 78bb597a06180c968ff5a10a7e3f44bd058965d6 Author: Sven Gothel Date: Fri Oct 9 06:08:06 2015 +0200 Bug 1247: JAWTWindow fail early w/ useful info: setAWTGraphicsConfiguration(..) if awtConfig is null, getGraphicsConfiguration() if awtConfig is null commit 0abf3c058b1ad7f43328a79098890149e6fa8a14 Author: Sven Gothel Date: Fri Oct 9 06:06:20 2015 +0200 Bug 1247: Enhance JAWTWindow DEBUG output (not fixing any issues) commit 108ff459c21ef04e541c714658b6b18f28e3c748 Author: Sven Gothel Date: Fri Oct 9 06:04:18 2015 +0200 Bug 1247: Align NEWT AWT driver w/ GLCanvas (not fixing any issues) commit ecdaa59aa48c16a558ec7a0b50df9419a9ccedc1 Author: Sven Gothel Date: Fri Oct 9 02:24:05 2015 +0200 Bug 1249 - NEWT X11: setVisible(false) IconicState/_NET_WM_STATE_HIDDEN: Handle case where KDE unmaps the window Update our internal JavaWindow.isMapped according to MapNotify and UnmapNotify. This takes care of a situation (KDE) where a window is unmapped during IconicState. For unmapped windows we cannot interprete _NET_WM_STATE_HIDDEN and we have to issue XMapWindow for restoring the window. commit 8ce5203a581e731d5aa7d553455b04213d94115c Author: Sven Gothel Date: Fri Oct 9 02:03:27 2015 +0200 Bug 1249: Revert TestParenting01NEWT durationPerTest back to 600 (otherwise breaks test) commit e418a665756af52fe2ca691ca220644e9b27c22c Author: Sven Gothel Date: Fri Oct 9 01:54:32 2015 +0200 Bug 1249 - NEWT X11: setVisible(*) _NET_WM_STATE_HIDDEN update not received at ConfigureNotify event (2) On gnome shell WM, sometimes KDE WM, it has been observed that the _NET_WM_STATE_HIDDEN update (visible or invisible) is not received at ConfigureNotify event. Turns out the state is finally updated at FocusOut! This change tests _NET_WM_STATE_HIDDEN visibility hint for mapped window also for FocusIn and FocusOut events, besides the ConfigureNotify event. Further more, NormalState to restore a hidden but mapped window did not work, so it is no more being sent. We limit us here to _NET_ACTIVE_WINDOW. 2 unit tests are prepared to test this issue: - TestGLWindows00NEWT - TestParenting01NEWT commit dca5d36370ec5eb44998bae593880e3b10cc9a4e Author: Sven Gothel Date: Thu Oct 8 20:13:12 2015 +0200 Bug 1249 - NEWT X11: setVisible(false) IconicState not listening to _NET_WM_STATE_HIDDEN; setVisible(true) not restoring from _NET_WM_STATE_HIDDEN Using Gnome Shell 3.14.4-1~deb8u1 disclosed an issue w/ our newly utilized IconicState/_NET_WM_STATE_HIDDEN, i.e. visibleChanged(false) was never received. This is a regression of commit 2d837a7a7130702ad36b694875613fae77c7ef06, which utilizes WM_CHANGE_STATE_IDX + IconicState for visibility on top-level windows. This bug consist out of _two_ isssue: 1) setVisible(false) IconicState not listening to _NET_WM_STATE_HIDDEN Here, we 'listen' to _NET_WM_STATE_HIDDEN when receiving ConfigureNotify if supported _and_ XMapWindow has been issued. In such case existence/non-existence of _NET_WM_STATE_HIDDEN determines visibility. Otherwise, we have wait for MapNotify/UnmapNotify. The 'XMapWindow has been issued' criteria is tracked by new field 'JavaWindow.isMapped' and set/cleared when we actually issue XMapWindow/XUnmapWindow! 2) setVisible(true) not restoring from _NET_WM_STATE_HIDDEN It has been observed that restoring IconicState/_NET_WM_STATE_HIDDEN via XMapWindow or even NormalState may not work reliably on WMs. See Hence we restore from this WM state via NormalState _and_ _NET_ACTIVE_WINDOW. Both strategies seem to work well on KDE as well as on Gnome. commit 56eb5025694064ad3e25cf2fb7ba0cabbda8ee67 Author: Sven Gothel Date: Thu Oct 8 00:20:25 2015 +0200 Bug 1189: Fix gcc redefinition error, even thought typedef equals - on OpenIndiana w/ old'ish gcc commit 96e71b020a48e8a01e3790e81bd888977d9cab6d Author: Sven Gothel Date: Wed Oct 7 11:54:31 2015 +0200 Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part5: GL_ARB_ES3_2_compatibility -> [GL|GLContext].isGLES32Compatible() commit 570ed512114dc1e060a2e4a7bce954c1b4b3d15c Author: Sven Gothel Date: Wed Oct 7 11:15:03 2015 +0200 Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part4: Fix GLNameResolver: Add all known vendor extensions commit 9c9577f2685053677b477365fb5ffa1cb2f53d03 Author: Sven Gothel Date: Wed Oct 7 11:14:15 2015 +0200 Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part3: GLEmitter: Don't RenameExtensionIntoCore for IgnoredExtensions commit 21a23e8d0256f38aaf6e054ec60bbbcae9ca1855 Author: Sven Gothel Date: Wed Oct 7 11:13:01 2015 +0200 Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part2: Update gluegen configs +# +# Ignored new extensions added in gl2ext.h 2015-10-06 +# see jogl/make/scripts/diff-gl2ext.sh +# FIXME: Refine for 2.4.0 +# +IgnoreExtension GL_KHR_no_error +IgnoreExtension GL_EXT_YUV_target +IgnoreExtension GL_EXT_blend_func_extended +IgnoreExtension GL_EXT_buffer_storage +IgnoreExtension GL_EXT_color_buffer_float +IgnoreExtension GL_EXT_float_blend +IgnoreExtension GL_EXT_multisampled_compatibility +IgnoreExtension GL_EXT_post_depth_coverage +IgnoreExtension GL_EXT_raster_multisample +IgnoreExtension GL_EXT_sparse_texture +IgnoreExtension GL_EXT_texture_filter_minmax +IgnoreExtension GL_EXT_texture_sRGB_R8 +IgnoreExtension GL_EXT_texture_sRGB_RG8 +IgnoreExtension GL_OVR_multiview +IgnoreExtension GL_OVR_multiview2 commit 4dd90058ea5a23ee13d86d5444af209764aac10a Author: Sven Gothel Date: Wed Oct 7 11:11:32 2015 +0200 Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part1b: Update Khronos Headers eglext.h (missed) commit ac12471cf29ad64364e85815fb3294b20fc81808 Author: Sven Gothel Date: Wed Oct 7 11:09:32 2015 +0200 Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part1: Update Khronos Headers commit e984e8f9b4d325c0cd3e1e9852c188ddea9c679b Author: Sven Gothel Date: Mon Oct 5 14:24:40 2015 +0200 Bug 1239: Fix comment in c-code 'how to set preferred pixel_format' commit c82ab4d75a50cd88c675e6c1e757dc9ed2db9655 Author: Sven Gothel Date: Mon Oct 5 13:51:51 2015 +0200 Bug 1239: Support OSX input via 'avfoundation' ; Use remaining camera ID (index) as filename for OSX commit 9abd252b4d30e0611a360d37d228dbae427c9cd5 Author: Sven Gothel Date: Mon Oct 5 13:50:33 2015 +0200 Bug 1239: Update FFMPEGMediaPlayer API doc (versions and OSX resources) commit da45b374f0274fa014310c08164e67f7736c1f7d Author: Sven Gothel Date: Mon Oct 5 13:49:40 2015 +0200 Bug 1239: Add support for UYVY422 (swizzled YUYV422) commit 4e237f265146b4c1e00856f19a8794aabf54d12c Author: Sven Gothel Date: Mon Oct 5 13:48:18 2015 +0200 Bug 1239: Fix GLMediaPlayer.CameraInputScheme API doc; GLMediaPlayerImpl.updateAttributes avoid div-by-zero (fps inf) commit 8790d4a25410c51e747f4cdd7954ef8abbb7a68b Author: Sven Gothel Date: Mon Oct 5 09:06:39 2015 +0200 Bug 1223: Add '-traceMouse' commandline argument to check whether mouse events are still received after manual maximize commit 5d0c40061b11909253f07b347db0342b1be38c80 Author: Sven Gothel Date: Mon Oct 5 08:24:43 2015 +0200 Bug 1206 - Security: Clear exposed framebuffer after creation and before visibility Experimenting w/ no GLEventListener attached to an GLAutoDrawable, e.g. GLWindow (onscreen), GLJPanel (fbo offscreen), indeed on some GL implementations the default framebuffer is uninitialized and hence shows garbage. GLDrawableHelper.setViewportAndClear(..) - Clear framebuffer after setting viewport - Called from: - public final void init(..) - public final void reshape(..) - Method is used independent of GLEventListener, hence this simplifies implementation: removes 'setViewport' criteria for init, display, reshape: it is always performed! Note: We only attempt to help against leaking un-initialized framebuffer content not against user-app faults, we do not clear a 2nd-buffer (double-buffering). Note: We may still be late at resize, i.e. small noisy flickering might be visible. This might be due to lack of proper vsync. commit 424a8617324911d71461c411847b6323d53ec0ed Author: Sven Gothel Date: Mon Oct 5 06:28:54 2015 +0200 GLContextImpl: clarify surfacelessOK -> isSurfaceless commit 5fec82b2ec9dfb5467e4c00eebdb0a1d6abe0e0c Author: Xerxes Rånby Date: Sun Oct 4 19:22:19 2015 +0200 Fix: junit/jogl/awt/TestBug1225EventQueueInterruptedAWT and junit/jogl/util/texture/TestTextureIONEWT replacing import junit.framework.* with import org.junit.* fixed the "Stub!" Exception seen when runing the junit tests from inside Eclipse commit 124e866c23c5eff007c24206450cf9cda5b361d5 Author: Sven Gothel Date: Sun Oct 4 01:31:55 2015 +0200 Bug 1245: Adding Unit Test, similar to TestBug816JTabbedPanelVisibilityB849B878AWT TestBug1245JTabbedPanelCrashAWT passed as expected on GNU/Linux, Debian8, amd64 w/: - proprietary NV - GL_RENDERER = Gallium 0.4 on AMD ARUBA GL_VERSION = 3.0 Mesa 10.3.2 GL_VENDOR = X.Org commit fe0be75545adcec2746f7e0ef53af7c75bfc8fc8 Author: Sven Gothel Date: Sat Oct 3 20:17:13 2015 +0200 Bug 1206: Test TestGearsES2NEWT: Versatile 'demoType' allows also no GLEventListener at all commit cd82c13fddfde8eff8cdd38dc21fa0bde3e3750a Author: Xerxes Rånby Date: Sat Oct 3 16:49:32 2015 +0200 Fix: com.jogamp.opengl.test.junit.jogl.acore.TestGLProfile04NEWTOffscreenNoARBCtx java.lang.AssertionError: Property 'jogl.disable.openglarbcontext' set, but created w/ ARB at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.assertTrue(Assert.java:41) at org.junit.Assert.assertFalse(Assert.java:64) at com.jogamp.opengl.test.junit.jogl.acore.GLProfile0XBase.validateOnlineOffscreen(GLProfile0XBase.java:920) commit 7464d081c5381d513af2b8fd8c388390f8c60cf7 Author: Xerxes Rånby Date: Sat Oct 3 15:40:21 2015 +0200 Bug 1244: MovieSimple: String format %d implicit conversion from boolean to int fails using OpenJDK 1.8 Replace %d with %b commit 24d30eec425ca6c62f72e7c218a9149777dbec52 Author: Sven Gothel Date: Sat Oct 3 12:05:37 2015 +0200 Bug 1238 - Fix NPE for Window-Icon's PNGPixelRect for unresolved location; Bug 1199 - Add setting to disable default window icons Bug 1238 - Fix NPE for Window-Icon's PNGPixelRect for unresolved location, i.e. null URLConnections Testing w/ jogl/make/scripts/tests.sh USE_BUILDDIR=1, discloses this issue - since the icons are available in jar only. Handling all unresolved resources, i.e. null URLConnection, is required. Further more, the icon list passed via property 'newt.window.icons' shall be separated by comma as well. This allows passing the list via scripts more conveniently. -Dnewt.window.icons="newt/data/jogamp-16x16.png,newt/data/jogamp-32x32.png" +++ Bug 1199 - Add setting to disable default window icons This patch also allows disabling JogAmp's own window icons by simply defining a non-existing location, i.e. -Dnewt.window.icons="null,null" commit 731c473740e3e7ccd26ecda7ea0200382795c3a6 Author: Sven Gothel Date: Sat Oct 3 05:07:46 2015 +0200 Bug 1237: Adopt GlueGen's clarification of IOUtil.getResource(..), commit d78bb1be0a6290cb94918b21865a023c01825048 - Skip relative lookup for IOUtil.ClassResources using 'asset' only (from JAR file) - Tested w/ jar file and build-dir, see scripts/tests.sh 'USE_BUILDDIR' commit 670df25aae92079945a83401db9722d543730193 Author: Sven Gothel Date: Fri Oct 2 16:03:41 2015 +0200 Bug 1241 - Util's Texture.coords (image coordinates) not updated properly Adding 'imageTarget', i.e. GL target for this texture or its sub-components if cubemap The imageTarget preserves the used 2D image type for the 2D Texture coordinates. Note: 'Texture.updateImage(final GL gl, final TextureData data, final int targetOverride)' needs an overhaul targeted for 2.4.0. commit f60bc2eb827a89d5d26d7348761da268306c0623 Author: Sven Gothel Date: Thu Oct 1 23:58:43 2015 +0200 Bug 1205: Revert clear background to support fix for Bug 1232: NEWT Translucency Windows >= 8 Reverting 'clear backrgound' portion of commit f607c0148736fa198fb91b60123824e53366022e. It has been identified, that Windows does initialize onscreen windows (i.e. w/ white/DESKTOP color). This is also required for allowing translucent windows, since clearing the background intefers on Windows >= 8 (undecorated windows). commit a9b3f6d13b45284e81b91a1e1e31b35c31dd3670 Author: Sven Gothel Date: Thu Oct 1 23:36:54 2015 +0200 Bug 1232 - NEWT Translucent Decorated Windows Not Working On Windows >= 8 (Lack of Aero / Blur ) Adopting new undocumented user32.dll Windows >= 8 API: - SetWindowCompositionAttribute / AccentState See: - - - - +++ Cleaning up WindowsDWM.h, use on header file (in stub_includes) for GlueGen and implementation. +++ Merge java implementation within GDIUtil.DwmSetupTranslucency(..), to be utilized by NEWT and JOGL. NEWT issues GDIUtil.DwmSetupTranslucency(..) at creation and when toggling decoration. Toggling decoration on Win >= 8 leads to lost of translucency when returning to decorated window. On Win 7, this may work .. but is also buggy. +++ Followup patch is needed for NEWT to _not_ clear the background! commit 4b0be44f54a7d89192c03725a16e396eba98a712 Author: Sven Gothel Date: Tue Sep 29 18:35:56 2015 +0200 Bug 1225: Unit test shall not fail if AWT is not alive, simply report and return - assume failure is recorded commit d5dc8a6cad034107d41d9a2e5f621ec4e6ce1f4e Author: Sven Gothel Date: Tue Sep 29 18:31:16 2015 +0200 Bug 1225: Unit test timeout := 3minutes commit fca9710b4e90691652ee6f32725f36a9c1cf08d3 Author: Sven Gothel Date: Tue Sep 29 18:29:29 2015 +0200 Bug 1225: Unit test shall not fail if AWT is not alive, ignore it via assume commit f607c0148736fa198fb91b60123824e53366022e Author: Sven Gothel Date: Tue Sep 29 11:25:33 2015 +0200 Bug 1205 - NEWT Security: Clear framebuffer after creation and before visibility (Windows Onscreen) WindowsWindow.c: - WindowUserData.isInCreation set while window at initizalization, i.e. before final size/pos/visibility. Also no visibility until final NewtWindow_setVisiblePosSize(..) call. This is possible since even w/o ShowWindow upfront, UpdateInsets(..) is able to gather accurate values. - Suppress any Java callback while WindowUserData.isInCreation, issue one callback when window is final. Use newly accumulated callback WindowImpl.sizePosInsetsFocusVisibleChanged(..) - While WindowUserData.isInCreation, WM_PAINT triggers WM_ERASEBKGND and WM_ERASEBKGND actually erases background w/ window background color. commit 2b70c6bc965b3939a7f27b5b073282f34bc5200f Author: Sven Gothel Date: Tue Sep 29 11:18:21 2015 +0200 NEWT WindowImpl.createNative(): Post creation: Only perform mod-actions if non default (performance) commit 45448a1bcdca7a5d7605de072fb39c8c31afc00f Author: Sven Gothel Date: Mon Sep 28 22:40:42 2015 +0200 Bug 1225: Make unit test more robuts, notify if JRE 1.7.0 issue w/ interrupted AWT-EDT The reporter claims that an interrupt on the AWT-EDT shall not disturb neither AWT nor JOGL's GLCanvas and rendering shall continue. - This seems to be true for JRE 1.8.0_60 - This seems to be false for JRE 1.7.0_45. This JRE's AWT-EDT even dies occasionally when interrupted. commit 3d94fac862c3605d3a0862e8e6f7725483398163 Author: Sven Gothel Date: Mon Sep 28 06:53:37 2015 +0200 Bug 1234 - GLReadBufferUtil.readPixelsImpl(..) not using [xy] offset in readTexture.updateSubImage(..) The passed inX and inY x/y offset for readPixel -> [textureData] buffer, must be passed to readTexture.updateSubImage(..)'s destination offset. I.e. the buffer's content starting at beginning is filled via glReadPixels w/ offset applied. Hence the texture update must pass the offset as the destination offset, i.e. to be used for glTexSubImage2D's offset. commit dad07ad7f7e54c593e58fe3a7ace41bfe4f39b05 Author: Sven Gothel Date: Mon Sep 28 06:44:37 2015 +0200 Bug 1233 - Add missing range- and pbo-bound checks on glTexture[Sub]Image[123]D* Adding missing range- and pbo-bound checks for: - glTextureImage1DEXT - glTextureImage2DEXT - glTextureImage3DEXT - glTextureSubImage1D - glTextureSubImage1DEXT - glTextureSubImage2D - glTextureSubImage2DEXT - glTextureSubImage3D - glTextureSubImage3DEXT commit 3235a4ae91e0202f9a36b8df4893f83be129dea2 Author: Sven Gothel Date: Mon Sep 28 03:51:18 2015 +0200 Bug 1125: Unit test to validate that Thread.interrupt() does not disturb continued rendering of AWT and GLCanvas commit b3ecc88efca2a2f969e1e5a375086148821ee3c5 Author: Sven Gothel Date: Sat Sep 26 09:56:06 2015 +0200 Bug 1232 - NEWT Translucent Decorated Windows Not Working On Windows >= 8 (Lack of Aero / Blur ) - Wrap GDI::DwmIsCompositionEnabled() in GDIUtil, so it always returns true if Windows >= 8 (even if not manifested) - Nothing we seem to be able to do about the lack of Aero, i.e. blur effect of decorated windows - Undecorated windows work well though .. commit cff96a3e4811e9dc1dfe170dec89d785938ea904 Author: Sven Gothel Date: Sat Sep 26 07:41:10 2015 +0200 TestGearsES2NEWT: Print bounds @ window resized/moved instead of just x/y commit 84ece839cae076e69a8b56b6b8ef266153afaac6 Author: Sven Gothel Date: Sat Sep 26 07:40:39 2015 +0200 Bug 1226 - GLPixelBuffer.GLPixelAttributes.getPixelFormat() doesn't handle glDataType GL_UNSIGNED_INT_8_8_8_8_REV commit 3d2765f0bb752debd7784f717eeac4c9eb500d5a Author: Sven Gothel Date: Sat Sep 26 06:28:51 2015 +0200 Bug 1222 - NEWT OSX: setAlwaysOnTop() and setAlwaysOnBottom() not working - The NSWindow level must be set at window creation - Levels are - aontop: kCGMaximumWindowLevel - aonbottom: kCGDesktopIconWindowLevel (w/ input) - normal: NSNormalWindowLevel - Hence we need to recreate the NSWindow if toggling the state, similar to opaque .. etc. commit 5270971814c27e4a7019a9e3c15fcad42fedb9c3 Author: Sven Gothel Date: Sat Sep 26 04:29:43 2015 +0200 NEWTDemoListener: Fix 'v' modifier collision of ctrl, use shift. commit fe3d6f6b78cc0c5c2bf7e5454a115102313b650f Author: Sven Gothel Date: Sat Sep 26 04:28:44 2015 +0200 Adapt Test NApplet HTML Pages to NEWTDemoListener (all key-actions) commit fbf14fd09bcc8eccaf819e953a82b3619e6de796 Author: Sven Gothel Date: Sat Sep 26 03:50:09 2015 +0200 Bug 1223 OSX: GLWindow loses focus after maximizing - Analysis TestGearsES2NEWT reacts on key-press 'n', opening another GLWindow. Procedure: [1] Pressing 'n' (2nd GLWindow) and manual re-focus 1st GLWindow [2] Pressing 'm' (single, alt, shift) on 1st GLWindow maximizes it Focus is still on 1st GLWindow! [3] Pressing ctrl-m un-maximizes .. Focus is still on 1st GLWindow! commit fa3c55b8176b284752ed14a5a24f7fee36e588a3 Author: Sven Gothel Date: Sat Sep 26 03:41:39 2015 +0200 Bug 1188: Fix setMaximized(..) isReconfigureMaskSupported(..) query setMaximized(..) isReconfigureMaskSupported(..) was using the state bit-number instead of the state bit-mask! Fixed. commit 10ad1270e7b8f821ef9bb3612669342c7dc56586 Author: Sven Gothel Date: Sat Sep 26 02:58:00 2015 +0200 Bug 1214: Fix Deadlock in screenPositionChanged(..); Use screenPositionChanged(..) in size[Screen]PosInsetsChanged(..) on OSX; Cleanup OSX Code - Fix Deadlock in screenPositionChanged(..) Defer requires to spawn whole child-window action to another thread since we may come from native 'NewtWindow::windowDidMove()' on MainThread. - Use screenPositionChanged(..) in size[Screen]PosInsetsChanged(..) on OSX Move callback WindowImpl::sizePosInsetsChanged(..) to OSX's WindowDriver::sizeScreenPosInsetsChanged(..), since we need to use screenPositionChanged(..) to calculate child window relative position to parent. I.e. we receive the location on screen. - Cleanup OSX Code - Native JNI entries shall handle NULL windowHandle -> return - Clarify usage of 'getWindowHandle()' and use 'isNativeValid()' if appropriate. - Don't re-use cached getWindowHandle() for non-blocking off-thread actions, since handle may become invalid. - Clarify getLocationOnScreen*(..) implementation code, i.e. separate getLocationOnScreenByParent(..) semantics. commit d3185d3c79f04012e604039f84466479bab755f9 Author: Sven Gothel Date: Fri Sep 25 09:43:21 2015 +0200 Bug 1214 - NEWT MacOSX: Detect auto-resize of Window when it is larger than screen - On OSX (similar to X11) a created window with size > screen will get resized to fit screen size implicitly. - Fix detects insets, position and size after onscreen window creation. - Patch also merges insets and size change java callback commit b4e4cad809c1b03b6be9a703a403d28c00249e5e Author: Sven Gothel Date: Sat Sep 19 21:34:19 2015 +0200 NEWTDemoListener: Double-Mouse-Click Fullscreen only w/ 3 pointers involved commit 6228d072a2129b22d259c37987775e596957789a Author: Sven Gothel Date: Fri Sep 18 09:17:39 2015 +0200 TestGearsES2*AWT / NewtDemoListener: Show pixel-scale in title bar. commit f2e1e9bb13679716148f45a66e99da0de114f4a1 Author: Sven Gothel Date: Thu Sep 17 03:17:23 2015 +0200 Unit Tests: NEWTDemoListener: Less verbose; GraphUI-Demos: Show DPI and Pixel-Scale in GLEventListener.init(...) commit 852faf012d8c6a93f65e0ebce87b3f70d8e2b6bf Author: Sven Gothel Date: Thu Sep 17 02:25:57 2015 +0200 FFMPEGDynamicLibraryBundleInfo.initSymbols(): Just return null instead of throwing an exception, it is OK not to have ffmpeg/libav commit a38a889150779c6c5f8da871a8df198912683e0b Author: Sven Gothel Date: Thu Sep 17 00:12:43 2015 +0200 Bug 1211: Fix regression of GLMediaPlayerImpl caused by commit 68c8e39fa8d6e700f0a99241c1a01a435b7f6284 GLMediaPlayerImpl.updateAttributes(..): - always set state -> Initialized if it was Uninitialized, regardless whether we start StreamWorker. - No need to handle exceptions here, just throw/pass/propagate them, since called catches them and deals w/ 'em. commit 95e1db1adadbbab347304663bc4bd6fcad0d626d Author: Sven Gothel Date: Wed Sep 16 04:46:01 2015 +0200 Unit Tests: Add listening to NEWTDemoListener* (Missed in prev. patch) commit 03909cb24ab6f5648e7fc6e696024ca460b37070 Author: Sven Gothel Date: Tue Sep 15 12:26:03 2015 +0200 NEWT Window Maximize: re-gain focus after maximize action (maybe lost on platforms, i.e. OSX) commit 713c3c3fa953d8561ebc6a52cfee7eadde661bf1 Author: Sven Gothel Date: Tue Sep 15 12:24:56 2015 +0200 Fix NEWT DisplayImpl.createPointerIcon: Pass through Exceptions, as required by API doc. commit 60e906330feaac485dfea60734573703a3973e36 Author: Sven Gothel Date: Tue Sep 15 12:23:27 2015 +0200 Bug 1211: Refine NEWTDemoListener, JOGLNewtAppletBase - NEWTDemoListener.createPointerIcons(..) - Use Display instance - Simplify PointerIcon creation using a list, skipping all non-found resources. - JOGLNewtAppletBase - Bring back reparent action via key 'r' - Drop redundant PointerIcon, using NEWTDemoListener commit 9c23064a6df1e3ef66a715759ee801a80ef516bd Author: Sven Gothel Date: Tue Sep 15 07:54:07 2015 +0200 Bug 1211: Adopt changes to unit test from commit 68c8e39fa8d6e700f0a99241c1a01a435b7f6284 commit 68c8e39fa8d6e700f0a99241c1a01a435b7f6284 Author: Sven Gothel Date: Tue Sep 15 07:50:50 2015 +0200 Bug 1211: Hardening Condition-Wait from Spurious-Wakeups and unintended InterruptedException(s) Below is an updated list of Condition-Wait classifications as described in Bug 1211. This list includes recent changes on GlueGen regarding this Bug 1211. A followup commit will address the unit tests. - Noncancelable + Persistent-Wait - GLMediaPlayerImpl.StreamWorker thread (changed) - pauses thread in case of intr - Cancelable + Persistent-Wait: - LFRingbuffer.getImpl(..) - LFRingbuffer.waitForFreeSlots(int) - SyncedRingbuffer.getImpl(..) - SyncedRingbuffer.waitForFreeSlots(int) - FunctionTask.invokeOnNewThread(..) (changed) - RunnableTask.invokeOnNewThread(..) (changed) - SharedResourceRunner.run() - SharedResourceRunner.doAndWait() (changed) - SharedResourceRunner.start() (changed) - SharedResourceRunner.stop() (changed) - GLMediaPlayerImpl.StreamWorker ctor (changed) - GLMediaPlayerImpl caller thread actions do*() (changed) - AndroidGLMediaPlayerAPI14.getNextTextureImpl(..) (changed) - DisplayImpl.enqueueEvent(..) (changed) -> Persistent-Wait -> Cancels wait and NEWTEvent -> dispatchMessage(NEWTEventTask): always notifyCaller! - GLDrawableHelper.invoke(..) (changed) - DefaultEDTUtil.waitUntilIdle() (changed) - DefaultEDTUtil.waitUntilStopped() (changed) - DefaultEDTUtil.invokeImpl(..) (changed) - DefaultEDTUtil.NEDT.run(..) (changed) - AWTEDTUtil.waitUntilStopped(..) (changed) - AWTEDTUtil.invokeImpl(..) (changed) - AWTEDTUtil.NEDT.run(..) (changed) - SWTEDTUtil.invokeImpl(..) (changed) - SWTEDTUtil.waitUntilStopped(..) (changed) - SWTEDTUtil.NEDT.run(..) (changed) - GLWorkerThread.invokeAndWait(..) - GLWorkerThread.start() (changed) - GLWorkerThread.WorkerRunnable.run() (changed) - Animator.run() (changed) - AnimatorBase.finishLifecycleAction() (changed) - OSXUtil.RunOnMainThread(..) (changed) - SingletonInstanceServerSocket.Server.shutdown() (changed) - SingletonInstanceServerSocket.Server.start() (changed) - com.jogamp.audio.windows.waveout.Mixer.shutdown() (changed) - Extending/Using InterruptSource.Thread (changed) - DefaultEDTUtil.NEDT - AWTEDTUtil.NEDT - SWTEDTUtil.NEDT - GLWorkerThread.thread - Mixer.FillerThread - Mixer.MixerThread - Using InterruptSource.Thread (changed) - TempFileCache - LauncherTempFileCache - Animator.thread - SingletonInstanceServerSocket.Server.serverThread Deprecated: - FunctionTask.invoke(..) (changed) -> on current thread, no wait -> deprecated - RunnableTask.invoke(..) (changed) -> on current thread, no wait -> deprecated commit cf9b31c30de3768447b20d6aa31ec1df00595871 Author: Sven Gothel Date: Sat Sep 5 05:10:03 2015 +0200 Bug 1211 TestBug1211IRQ00NEWT: Cover whole JOGL initialization by MyThread, intercepting all interrupt() calls used. This disclosed issue Bug 1213, "RecursiveThreadGroupLockImpl01Unfairish.unlock() always interrupts original-owner, even if not waiting at unlock()". So far no InterruptedException nor interrupt() call has been detected by MyThread. commit e1bf8dd6a24796589bcfcdc6dd66c5a4911d4dcd Author: Sven Gothel Date: Thu Sep 3 18:48:57 2015 +0200 Bug 1211 TestBug1211IRQ00NEWT: Add assertions incl. testing Thread.interrupted() assuring no silence interruption occured commit 3e5c410e1d0ae42c68a7ab1342a7da96ef523a4b Author: Sven Gothel Date: Thu Sep 3 18:21:36 2015 +0200 Bug 1211 TestBug1211IRQ00NEWT: Fix using durationTest01; Make createWindow(..) analog to GLWindow.main(..) commit 34d54a9af4413eab840ef9055400e2f5845b4f3a Author: Sven Gothel Date: Thu Sep 3 18:14:08 2015 +0200 Bug 1211: Custom size for TestBug1211IRQ00NEWT Tested on GNU/Linux desktop machines (also our test node w/ nvidia, producing the issue sometimes) with jre8, jre7 and jre6. No interruption detected .. sadly. commit d04841599ab2ed181f081ff7fdd38ac4ef65ca34 Author: Sven Gothel Date: Thu Sep 3 18:02:55 2015 +0200 Bug 1211: Show Platform-Info for unit test TestBug1211IRQ00NEWT (commit 5f5553f1c0b6731970db6df24d79654661238247) commit 5f5553f1c0b6731970db6df24d79654661238247 Author: Sven Gothel Date: Thu Sep 3 17:43:33 2015 +0200 Bug 1211: Adding unit test to identify Thread.interrupt() caller for DefaultEDTUtil.invokeImpl(..) wait interruption commit 8a3b6e38269d54a73a766f79df8d7f037eae823b Author: Sven Gothel Date: Wed Sep 2 04:25:43 2015 +0200 NativeWindowFactory.createDevice(..): Support creating EGLGraphicsDevice using reflection for 'jogamp.opengl.egl.EGLDisplayUtil' commit d3db8fc5f03f280cef0d485b93dc8de5a2db9399 Author: Sven Gothel Date: Tue Sep 1 23:49:00 2015 +0200 Windows Scripts: Bump JVM to 1.8.0_60 commit 85b32bac4f031dbdb55caa380d5a20440aecbbbd Author: Sven Gothel Date: Tue Sep 1 05:19:14 2015 +0200 Bug 1212 - OSX: Crash using CALayer at UnsetJAWTRootSurfaceLayer0(..) w/ Java 1.8.0_60 - OSX 10.10.5 - Java 1.8.0_60 Crash using CALayer at UnsetJAWTRootSurfaceLayer0(..) as called within MacOSXJAWTWindow.invalidateNative() (caller: destroy()) on the MainThread. It has been observed that the JAWT_SurfaceLayers protocol instance 'surfaceLayers' has been pulled beforehand. 'surfaceLayers' is fetched from the locked JAWT instance via JAWT_DrawingSurfaceInfo's platformInfo. It now seems required to retain the instance at GetJAWTSurfaceLayersHandle0 and release it at UnsetJAWTRootSurfaceLayer0 to keep it alive. +++ Manually executed 'ant junit.run' on OSX, no failures or errors. commit aacc8afdca0b1376f91dcc68aa3ae3b39c7aba51 Author: Sven Gothel Date: Tue Sep 1 02:05:50 2015 +0200 Bug 1202: Fix vsync regression on OSX when using CALayer On OSX using CALayer for onscreen rendering, the drawable is utilizing an offscreen FBO. Hence we need to move the vsync-skip-operation criteria, i.e. skip if offscreen, down to the implementation. commit ee2fea13b20644e45c77f12a8b6d6f55941c27c8 Author: Sven Gothel Date: Mon Aug 31 08:52:58 2015 +0200 Bug 1205 - NEWT Security: Clear framebuffer after creation and before visibility (X11 Onscreen) X11Window.c: Adding CWBackPixel BlackPixel(..) resulting in an initial black window (zero). com.jogamp.opengl.test.junit.newt.TestWindows02NEWT shows the content w/ opaque background and transparent one. Note: To be able to receive a transparent background, one needs to utilize a compositor WM (e.g. KWin w/ effects enabled). Due to commit cf9e2f2cb8ead7efd7751dcbfaecb36ed06cf9d6 (Bug 1210) this works in pure NEWT mode w/o utilizing GLX. commit cf9e2f2cb8ead7efd7751dcbfaecb36ed06cf9d6 Author: Sven Gothel Date: Mon Aug 31 08:41:07 2015 +0200 Bug 1210 - Use manual impl. XRenderFindVisualFormat instead of buggy generated version - XRenderDirectFormat XVisual2XRenderMask(..): - Move from JOGL's X11GLXGraphicsConfiguration -> Nativewindow X11GraphicsConfiguration - Always use manual impl. of XRenderFindVisualFormat Additionally: - Add X11GraphicsConfiguration.XVisualInfo2X11Capabilities(..) allowing to properly setup the resulting Capabilities instance as used in X11GraphicsConfigurationFactory.chooseGraphicsConfigurationImpl(..) - XVisualInfo: - Add 'String toString()' - 'XVisualInfo create(XVisualInfo s)' uses source buffer size! - XGetVisualInfo: Use returned buffer-capacity/count for element-size and also bail out if count<=0 commit cc00d9b6c5a5c6b71ba14311fc6b17ce932d9a1e Author: Sven Gothel Date: Mon Aug 31 06:16:49 2015 +0200 Bug 1208 - NEWT: Window: Consider avoiding operations if not supported, see getSupportedStateMask() - Skip operation if not supported - Fix skip operation if isFullscreen() && !isNativeValid(): We have to store the state w/o action, so the state can be picked up at native creation. commit 552dd898add86f8bd745ab4cc1a9e755edd9926d Author: Sven Gothel Date: Mon Aug 31 06:11:46 2015 +0200 Fix Bug 1209 - Regression of Bug 1188 Patches: Parented Fullscreen Issues (X11, Windows) The regression was caused by WindowImpl changes: (1) Not ignoring maximizedChanged(..) during fullscreen. X11 windows may promote maximized state, which will be passed in reconfigure -> non-fullscreen and hinders reseting the original size. (2) getReconfigureMask(..) was wrongly translated to state-mask, i.e. special handling of STATE_MASK_UNDECORATED and STATE_MASK_CHILDWIN was removed. - Issues above were corrected - Replace PSTATE_MASK_FULLSCREEN_NFS* w/ own stateMaskNFS for simplification commit fcbd67ddd4c866b664db2c8b5f292996f277a4ac Author: Sven Gothel Date: Mon Aug 31 05:51:13 2015 +0200 Bug 1188: Refine getSupportedStateMask() semantics and minimum requirements (adding STATE_MASK_FULLSCREEN) Refine getSupportedStateMask(): - always for _after_ native creation, i.e. first visibility - removed STATE_MASK_AUTOPOSITION - adding STATE_MASK_FULLSCREEN to minimum requirements commit 5acb70d3d301fe66e4d03037325a91528e4c2c1d Author: Sven Gothel Date: Sun Aug 30 06:26:29 2015 +0200 Bug 1203: Add missing constraints in desktop *GLContext.create* methods: Bail out if GL ES is requested ; Fix test case *GLContext.createImpl(..) shall throw an GLException: *GLContext.createContextARBImpl(..) shall return 0: - Desktop implementation: if GL ES is requested - EGL implementation: if GL Desktop is requested, but not available Otherwise GLContextImpl may mistake a desktop context for an ES one. +++ Fix unit test TestGLAutoDrawableFactoryGLProfileDeviceNEWT.test11ES2OnDesktop(): We have to query the factory by desired profile, since the desktop factory cannot produce an GL ES context. commit 18e487fdfe6f27564d976aa3a568d0ddc272d8ba Author: Sven Gothel Date: Sun Aug 30 04:59:11 2015 +0200 Bug 1203: OpenGL ES 3.1 NVIDIA 355.06's EGL impl. is unstable requires GLRendererQuirk.SingletonEGLDisplayOnly Test cases with multiple EGLDisplay init/terminate result to crashes due to NVidia's 355.06 driver. Hence enable GLRendererQuirk.SingletonEGLDisplayOnly if EGL vendor is NVIDIA until a good driver version is known. commit 2db11ad80582af8715071b47b5331b79001d511c Author: Sven Gothel Date: Sun Aug 30 04:55:12 2015 +0200 Bug 1207 - GLDebugMessageHandler: Support GL_KHR_debug for Desktop and ES profile GL_KHR_debug GL_KHR_debug shall be favorized before - GL_ARB_debug_output - GL_AMD_debug_output Allow GL_KHR_debug for GL2GL3 and GL2ES2 profiles, i.e. including ES profiles: GLES2, GLES3. GL_ARB_debug_output and GL_AMD_debug_output are only allowed for desktop GL2GL3 profiles. commit 3ac457a3a9074a70bf428bb6a5674b8f70d268b1 Author: Sven Gothel Date: Sun Aug 30 02:30:26 2015 +0200 Bug 1203: Optimize OpenGL Profile probing/mapping (Skip redundant queries) Via GLDrawableFactory[Impl] the following details are considered while GLContextImpl.mapGLVersions(..): - hasOpenGLDesktopSupport If false, skip OpenGL Desktop queries - hasOpenGLESSupport If false, skip OpenGL ES queries - hasMajorMinorCreateContextARB If false, reduce [maxMajor.maxMinor..minMajor.minMinor] iteration, reducing to [maxMajor..minMajor], usually only one query. commit 365d273115a98ab38c454608448c6639c45b5f74 Author: Sven Gothel Date: Sun Aug 30 02:19:58 2015 +0200 Bug 1203: Fix regression: Handle GLRendererQuirks.GLES3ViaEGLES2Config Need to handle GLRendererQuirks.GLES3ViaEGLES2Config, i.e. a created ES3 context via ES2 request must result in mapping ES3 as well. commit cda92c2cc066c18ab30b828592e1979ab535441c Author: Sven Gothel Date: Sat Aug 29 23:10:30 2015 +0200 Bug 1203: Fix TestGLAutoDrawableFactoryGLProfileDeviceNEWT: Do not assume EGL/Desktop factories are available! commit 08217de7bc0e0ffd09bd6c85d8c6d55ac63cfa33 Author: Sven Gothel Date: Sat Aug 29 23:02:32 2015 +0200 Bug 1203: Fix regression of ES3 minMajor constraint lack (commit b8ba30a0bc7cbd36abba37d72b45f78eb989e994) commit b8ba30a0bc7cbd36abba37d72b45f78eb989e994's GLContextImpl.createContextARBMapVersionsAvailable(..) accepted minMajor=2 for ES3 detection -> wrong of course. commit da4d07c2bc633a4660a3ad2b67600fa8b4cb8506 Author: Sven Gothel Date: Sat Aug 29 21:00:57 2015 +0200 Bug 1203: Adding factory-offscreen unit test, validating ES/GL usage with EGL and Desktop GLDrawableFactory commit 1d1b3f92a7c8021198e44bc4b2d6494ab789ddd3 Author: Sven Gothel Date: Sat Aug 29 20:21:29 2015 +0200 Bug 1202 (related): Fix SEMVER regressions mostly due to Bug 1202 commits (adding dummy methods) Commits deff49c901915e007f43a1df1a0d217a786e9f06 and 6ab634654f58afcf4549fcd1a796a0f9fd13298c changed/removed a few protected methods of public classes .. Re-added dummy methods .. shall be removed for next 2.4.* version commit 1652c153fdf973fd4292a13c3ddf1f805abf9239 Author: Mark Raynsford Date: Sat Aug 29 17:45:50 2015 +0000 Fix JSpatial link commit 7140081033444abf95d2f8289eaa62ead41cf2e0 Author: Sven Gothel Date: Sat Aug 29 19:41:10 2015 +0200 *AnimatorImpl: Catch concurrent pulling of GLAutoDrawable instances It may happen that an GLAutoDrawable is being pulled concurrently from the animators list, in which case an IndexOutOfBoundsException might be thrown. Example: [junit] *** AWTRobotUtil: UncaughtException (this Thread main-AWTAnimator#00) : Thread , java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 [junit] java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 [junit] at java.util.ArrayList.rangeCheck(ArrayList.java:653) [junit] at java.util.ArrayList.get(ArrayList.java:429) [junit] at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:68) [junit] at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451) [junit] at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:198) [junit] at java.lang.Thread.run(Thread.java:745) commit 472d97e821520235eb006f3c135df2f629494326 Author: Sven Gothel Date: Sat Aug 29 18:12:04 2015 +0200 Bug 1203: EGLDrawableFactory.mapAvailableEGLESConfig(..): Add missing close on device (surfaceless); Remove one try-finally block commit f18b25ca29897615611553a251e8d0ef0154b0e1 Author: Sven Gothel Date: Sat Aug 29 17:45:10 2015 +0200 FloatUtil: Remove '@deprecated' for 'matrixToString' 'FloatBuffer' variant commit 99a064327bf991318841c858d21d13e55d6b39db Author: Sven Gothel Date: Sat Aug 29 17:44:34 2015 +0200 Bug 1203: Implement regular EGL OpenGL Profile probing (ES* + GL*) - GLProfile - Add 'hasGL234OnEGLImpl' handling, i.e. GL* profiles on EGL devices - Properly handle EGL's 'GLDynamicLookupHelper' queries for ES2, ES1 and GL* profiles, i.e. allow each one to fail seperately. - 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. - GLContextImpl.mapGLVersions(..): Map ES* profiles if having an EGLGraphicsDevice and not disabled via GLProfile.disableOpenGLES. - EGLContext - createContextARBImpl(..): Use the EGL_CONTEXT_MINOR_VERSION_KHR if supported - GLContext* accessibility: Remove unused entries, add newly used ones - EGLDrawableFactory - Fix a bug regarding detection of 'OpenGL' API for EGL - SharedResource: Use detailed knowledge of each profile - Only create one drawable and context for probing maximum, utilizing 'GLContextImpl.MappedGLVersionListener' to detect all mapped profiles for 'SharedResource' instance. - Detect whether the probed/mapped device can be mapped to the default-EGL-device, i.e.: - current device is not the default-EGL-device - default-EGL-device is valid and could be mapped (beforehand) - same connection In this case, no probing/mapping is performed and the default-EGL-device mapped data being reused and remapped to the requested device. - When mapping/probing, attempt to use a surfaceless context first, allowing same codepath for default-EGL-device and native-device (X11, ..). This avoids using pbuffer if using default-EGL-device and a dummy onscreen window if using a native-device (X11, ..). If this fails, continue as usual .. - default-EGL-device -> pbuffer - native-device (X11, ..) -> dummy onscreen window commit 17af6ed1d0f60c111079ff19c4114fefbfd025fc Author: Sven Gothel Date: Sat Aug 29 17:17:17 2015 +0200 Bug 1200: Refine fix for crash on GNU/Linux x86_64 'NVidia beta driver 355.06' @ probeSurfacelessCtx Refine commit e88216bd03a41480b81345ed9afc45ddea5ecfcd, i.e. restrict new 'NoSurfacelessCtx' NVidia-Vendor criteria in GLContextImpl.setRendererQuirks(..) to - isX11 (new) - isDriverNVIDIAGeForce (kept) - !(adevice instanceof EGLGraphicsDevice) (new) Surfaceless context seems to work on NVidia 355.06 for EGL+[ES+GL]. It does not work for GLX+GL though! TODO: Validate changing a GLContext's GLDrawable from 'onscreen' or 'offscreen' to 'zero' (Surfaceless). commit b8ba30a0bc7cbd36abba37d72b45f78eb989e994 Author: Sven Gothel Date: Sat Aug 29 17:11:11 2015 +0200 Bug 1203: Cleanup and Prepare for regular EGL Profile probing - GLContextImpl - add 'MappedGLVersion' type, preserving information from GL profile mapping - add 'MappedGLVersion mapAvailableGLVersion(..)' - add 'setMappedGLVersionListener(final MappedGLVersionListener mvl)', allowing implementations to register successfully mapped profiled. - add 'void remapAvailableGLVersions(final AbstractGraphicsDevice fromDevice, final AbstractGraphicsDevice toDevice)', allowing implementations to fully map one-devices profiles to another one avoiding a redundant profile mapping (probe operation). - 'mapGLVersions(..)' - disable desktop-core profile mapping if GLProfile.disableOpenGLDesktop - disable desktop-desktop profile mapping if GLProfile.disableOpenGLDesktop - EGLDrawableFactory - remove jogl.debug.EGLDrawableFactory.QueryNativeTK, since it shall not be used anymore. - Use 'NativeWindowFactory.getDefaultDisplayConnection(..)' for default EGLGraphicsDevcie - add 'hasFullOpenGLAPISupport()' - Use 'EGLSurface' return type if appropriate. commit 50d4fd0210a417ba0fcbf73a90e50a86ef076cad Author: Sven Gothel Date: Sat Aug 29 16:35:35 2015 +0200 Bug 1203: Refine DEBUG output commit 45e58f4884108a300f08fd9af6aee82121376974 Author: Sven Gothel Date: Sat Aug 29 16:23:49 2015 +0200 Bug 1203: EGLGraphicsDevice.nativeDisplayID: Differentiate upstream device's native handle via own ctor, reducing redundancy commit 09b269423f11d0f867831b91d989a6bebbd87738 Author: Sven Gothel Date: Sat Aug 29 04:21:11 2015 +0200 Bug 1203: Fix GLES3Impl.getGLES3(): Test _isES3 and throw GLException if not. commit 390ccc3e549e4cc13b7dab91387e72c1f10b77a9 Author: Sven Gothel Date: Sat Aug 29 04:20:27 2015 +0200 Bug 1203: GLDrawable-Stateless operations in GLContextImpl, using ctxVersion and ctxOptions - State-less operation during profile probing (mapGLVersions). While probing the GLDrawable/GLProfile and GL instance may not reflect the currently probed OpenGL profile. Hence stateless operation by passing required information is required for: - GLDynamicLookupHelper must be fetched via 'major-version and contextOptions'. - GLContextImpl.resetProcAddress(..) - GLContextImpl.updateGLXProcAddressTable() - GLContextImpl.setGLFunctionAvailability(..) - ExtensionAvailabilityCache TODO: Add replacement for GLProfile validation, which is disabled right now.: drawable.getGLProfile().verifyEquality(gl.getGLProfile()) The GLDrawable.GLProfile maybe less than GL's GLProfile due to current context-version and options. Hence we would need a 'GLProfile.bwCompatibleWith(GLProfile)'. commit c835cdddfb37c5e8df424f984b821163b5645198 Author: Sven Gothel Date: Sat Aug 29 04:04:32 2015 +0200 Bug 1203: Use platform native default display connection On networking windowing systems (X11), we shall utilize the real native default display connection. On X11, this is X11Util.getNullDisplayName(), for other non networking types, this is AbstractGraphicsDevice.DEFAULT_CONNECTION. commit 618f6380b6eb6a96f8f1829c1dfb621a71209711 Author: Sven Gothel Date: Sat Aug 29 03:54:47 2015 +0200 Bug 1203: SharedResourceRunner.Implementation impl. shall use AbstractGraphicsDevice's uniqueID instead of connection AbstractGraphicsDevice's uniqueID supports multiple device types and units while including the connection. This is required for proper EGLDrawableFactory's profile probing on different native platform devices. Using common abstract implementation 'AImplementation' for WindowsWGL's, X11GLX's and EGL's DrawableFactory. commit e88216bd03a41480b81345ed9afc45ddea5ecfcd Author: Sven Gothel Date: Thu Aug 27 20:11:14 2015 +0200 Bug 1200: Fix crash on GNU/Linux x86_64 'NVidia beta driver 355.06' @ probeSurfacelessCtx Since no known NVidia driver is know properly supporting surfaceless context, i.e. current context w/o drawable attached, we set quirk NoSurfacelessCtx for all NVidia drivers until a 'good one' is known! commit e8d66b1cd2b48899b7a012d54ba83d5c2a449b0a Author: Sven Gothel Date: Thu Aug 27 20:09:05 2015 +0200 Bug 1203: Properly format DEBUG output related to mapGLVersions: Use '-MapGLVersions' suffix. commit 60469c5a09a1e61094a9d0b41db033706e03874d Author: Sven Gothel Date: Thu Aug 27 19:51:55 2015 +0200 Bug 1203 (Related): Only attempt to retrieve getGLIntVersion(..) if required i.e. major >= 3 || hasGLVersionByString.compareTo(Version3_0) >= 0. Otherwise the 'VersionNumber hasGLVersionByInt' was never used -> reduce possible GL_ERRORs. commit 6ab634654f58afcf4549fcd1a796a0f9fd13298c Author: Sven Gothel Date: Thu Aug 27 14:01:10 2015 +0200 Bug 1202 - Move GLContextImpl.*SwapInterval* into its own section commit deff49c901915e007f43a1df1a0d217a786e9f06 Author: Sven Gothel Date: Thu Aug 27 13:15:44 2015 +0200 Bug 1202 - Add support of Adaptive Vsync via [GLX|WGL]_EXT_swap_control_tear [GLX|WGL]_EXT_swap_control_tear extensions support asynchronous buffer swaps, i.e. adaptive Vsync. The extensions utilizes a negative interval value, enabling late swaps to occur without synchronization to the video frame. Hence '-1' has new semantics, previously it was the 'default value' of 'untouched vsync interval'. New default is: - 0 for unrealized context - 1 for realized context +++ It requires [GLX|WGL]_EXT_swap_control, hence we shall ensure to use use this extension in the implementation of GLContext.setSwapInterval(..). +++ Mesa3D seems to support GLX_SGI_swap_control only. +++ Implemented on Windows and X11. +++ On GNU/Linux using NVidia driver w/ my setup(*), sadly the query GLX.glXQueryDrawable(displayHandle, drawable.getHandle(), GLX.GLX_LATE_SWAPS_TEAR_EXT, val); always returns zero here, indicating async vsync is not supported. (Queried the attribute for every frame in windowed or fullscreen mode) Fullscreen (*) - Debian 8 - Kernel 3.16 - KDE/Kwin - GL Version 4.5 (Core profile, arb, compat[ES2, ES3, ES31], FBO, hardware) - 4.5.0 NVIDIA 355.06 [GL 4.5.0, vendor 355.6.0 (NVIDIA 355.06)] - GL_RENDERER GeForce GTX 660/PCIe/SSE2 - Samsung U28D590 (DFP-4): Internal DisplayPort +++ commit 8b4f68a3a014c3ae62a64def3011ccc43e8c41c9 Author: Sven Gothel Date: Wed Aug 26 04:15:27 2015 +0200 GLContextImpl.setRendererQuirks(..): Reduce duplicated code of adding quirks commit 522fe5ac2ef057286e4cbfa170aa4292c4ffed2d Author: Sven Gothel Date: Wed Aug 26 00:09:15 2015 +0200 Bug 1188: NEWT WindowsWindow.c: Better support for 'isOnBottom' on Windows (Fullscreen on Bottom not working though) - Terminology - ALWAYSONBOTTOM -> isOnBottom - ALWAYSONTOP -> isOnTop - Better support for 'isOnBottom' on Windows - Refine 'SetWindowPos(..)' calls to handle isOn[Top|Bottom] - Refine 'ShowWindow(..)' calls to handle isOnBottom - Intercept WM_WINDOWPOSCHANGING to enforce isOn[Top|Bottom], i.e. change params (hwndInsertAfter and flags). - Fullscreen on Bottom not working - While we change all flags appropriately (NOACTIVATE, ..) and don't issue CDS_FULLSCREEN is on bottom, Windows seems to enforce the window to be on top if it is sized to the screen maximum. commit 725e9acfcdd0e16a3533d097692a912383bae3fc Author: Sven Gothel Date: Tue Aug 25 23:07:34 2015 +0200 Bug 1188: Fix API doc of getSupportedStateMask(); Misc Changes (see below) - Fix STATE_MASK_CREATENATIVE - Simplify resetStateMask() - Windows WindowDriver: Remove STATE_MASK_STICKY from supported states - TestGearsNEWT: Use NEWTDemoListener commit 7ff3360ee2fc3d1e3742ffff2a8ba7000090c816 Author: Sven Gothel Date: Tue Aug 25 23:01:36 2015 +0200 NEWT WindowsWindow.c: Fix return value; Add tracking of inOn[Bottom|Top] commit a963506dc19eca14f0fe7bbf22700b5791bd6821 Author: Xerxes Rånby Date: Tue Aug 25 17:28:06 2015 +0200 Bug 1178: X11UnderlayTracker: Resend identical KeyCode, KeySymbol and KeyChar Signed-off-by: Xerxes Rånby commit 5db1ba769b6a4b8f8e7148728bb1a82149c822ee Author: Xerxes Rånby Date: Tue Aug 25 00:40:44 2015 +0200 Bug 1178: Fix cc3: Set position using LocationOnScreen coordinates. Signed-off-by: Xerxes Rånby commit 1d71a21d9d1da21c555207d30d202f724ae269f2 Author: Sven Gothel Date: Fri Aug 21 03:52:52 2015 +0200 Bug 1188: Introduce getSupportedStateMask() implemented via WindowDriver's getSupportedReconfigMaskImpl() - See getSupportedStateMask() for semantics - getSupportedReconfigMaskImpl() result now used for isReconfigureMaskSupported() - getSupportedReconfigMaskImpl() implementations: - Full featured: X11, Windows and OSX - X11: Use WindowManager Atoms for certain features (dynamic) - Others: Use fixed features. - TODO: Consider avoiding actions if not supported. commit 417546510a93de533562b631caa4a75feeecd793 Author: Sven Gothel Date: Thu Aug 20 23:23:28 2015 +0200 Bug 1188: Refine reconfig state bits commit 1b1dc62e3e3988dce16e980e7bf8d32509a7562f Author: Sven Gothel Date: Thu Aug 20 22:43:25 2015 +0200 Bump oculusvr-sdk commit 07fb56cdd2ce6a74b2874cc6131bc2fd65f0887b Author: Sven Gothel Date: Thu Aug 20 22:41:33 2015 +0200 Bug 1196: Fix Unresolved strncpy_s (MSVCRT) on WinXP Unresolved strncpy_s (MSVCRT) on WinXP, as shown w/ dependency walker (red module, red unresolved line). Mapped: _tcsncpy_s -> strncpy_s (!UNICODE). On WinXP MSVCRT has no strncpy_s. _tcsncpy_s(sOut, sOutLen, s, len) -> bound-check + _tcsncpy(sOut, s, len) commit 2b65897a2d2eda42d0ee62f9f3fad8345618bc7c Author: Sven Gothel Date: Thu Aug 20 15:05:35 2015 +0200 HowtoBuild: Update Debian 8.1.0 package recipe .. commit ab116d69e86a0c102adfe922180919d12dad162c Author: Julien Gouesse Date: Wed Aug 19 22:33:37 2015 +0200 Improves a bit the documentation of ImageType commit d75dfb0c8f55ad950a7ec6d67ad427987aeadc2d Author: Julien Gouesse Date: Wed Aug 19 21:54:58 2015 +0200 Improves a bit the documentation of ImageType and adds .ico and .cur into it commit 026ea7ed280bf4eb3a0e3c8434e5d993121f3eb4 Author: Sven Gothel Date: Wed Aug 19 15:06:18 2015 +0200 Bug 1188: Cleanup public/private[reconfig, non-reconfig] state bits - STATE_BIT_FULLSCREEN_SPAN is private and used for reconfigure, hence STATE_BIT_COUNT_RECONFIG is needed. - STATE_BIT_FULLSCREEN_SPAN is added at the end of public state bits - PSTATE_BIT_MINMAXSIZE_SET is unused. commit 87c5e1615346f72ad5686053bae338bdb66b1b01 Author: Sven Gothel Date: Wed Aug 19 05:56:05 2015 +0200 PNGPixelRect: Avoid redundant wrapping of InputStream into BufferedInputStream commit c4ed57f617117e3e38319f1a44a0d066f1a332b3 Author: Sven Gothel Date: Wed Aug 19 05:55:09 2015 +0200 Bug 1042: ImageIOUtil -> ImageType + ImageType.Util ; Fix implementation and test. - ImageIOUtil -> ImageType + ImageType.Util - ImageType.Util.getFileSuffix(..): - Fix byte type conversion, i.e. 'b == (byte)0x89', cast is required to avoid byte -> int conversion. Note: signed byte -128 - +128 - Parse in O(1), i.e. lexicographical parsing - FIXME: We seem to have at least three type collisions, validate! - ImageType: - Complete T_* w/ API doc -> FIXME/TODO missing type references! - ImageType instancing via InputStream or manual type definition. - TextureData - Contains optional source ImageType - TextureProvider: - Deprecate newTextureData(..) variants other than InputStream simplifying TextureIO. - TextureProvider.SupportsImageTypes: - Added interface, allowing mapping ImageType -> provider - Tested standalone ImageType (TestImageTypeNEWT) and via TextureIO (TestTextureIONEWT) utilizing list of all test data (ImageTstFiles), i.e. PNG, JPG, TGA and DDS. commit 3e8ef0ae4305fede0f1ddac2fee476c76c5a25a3 Author: Sven Gothel Date: Tue Aug 18 18:53:41 2015 +0200 Bug 1042: ImageIOUtil: Use unique public static final const String identifiers commit a836175ecf20aaf71cd53f1cb79c6f68a2f87e2a Author: Sven Gothel Date: Tue Aug 18 13:24:00 2015 +0200 Bug 1042: ImageIOUtil: Left-Align branches for readability commit 56f03908e476a4630d36282592e12bf20e589fa8 Author: Sven Gothel Date: Tue Aug 18 11:11:14 2015 +0200 Bug 1188: Add @since 2.3.2 tag commit 39661fb1d16149df7eabe818a25f44dac537c8a3 Author: Sven Gothel Date: Tue Aug 18 11:10:12 2015 +0200 Bug 1193: ShaderCode: Add SUFFIX_COMPUTE_SOURCE/SUFFIX_COMPUTE_BINARY; Add @since 2.3.2 tag commit a213c39fa9d741d519df56bc4d4abb86113985f4 Author: Xerxes Rånby Date: Sun Aug 16 04:38:39 2015 +0200 Bug 1183: X11RandR13 XRRGetScreenResourcesCurrent _occasionally_ reports empty data commit 8f56b4a0631fd4d8668573ff3baa704e22d8ed85 Author: Julien Gouesse Date: Thu Aug 13 21:00:31 2015 +0200 Updates the documentation of the class ShaderCode concerning the compute shaders commit 4a1a777088cfd20875d2a99a71028e37e2c9fc92 Author: Julien Gouesse Date: Thu Aug 13 20:50:15 2015 +0200 Adds the compute shaders into the list of supported shaders for ShaderCode commit 576ba0b8334dae8ab8b0b2686422d450c7f360da Author: Xerxes Rånby Date: Thu Aug 13 18:57:10 2015 +0200 Bug 1192: NEWT native/X11Display.c Cleanup JNI signatures in comments commit 23d8cbd413ac6aca737d7a7d062c8bb6f5ac1ca5 Author: Sven Gothel Date: Wed Aug 12 03:55:57 2015 +0200 Bug 1188: Windows: Implement unresizable using appropriate windows styles - to avoid resizing when toggling resizable (change of window border) we maintain 'RECT insets' in our WindowUserData struct and fix the client -> top position late in NewtWindow_setVisiblePosSize(..) after any style change. commit 2c23b1cb343a008621e3fe642c5b8abacca48b1a Author: Sven Gothel Date: Wed Aug 12 03:01:26 2015 +0200 Bug 1188: Refine Maximized on X11 / Impl. Maximized and Iconify on Windows WindowImpl - remove updateMinMaxSize(..) - unused info - fix appendStateToString: show all maximized state changes if reconfig - add sizePosMaxInsetsChanged(..) and sendMouseEventRequestFocus(..) accumulating multiple callbacks from impl. - add: maximizedChanged(..) notification from native impl. - refine manual maximized mode used for OSX and Windows (single extent) - reconfigMaximizedManual(..) - resetMaximizedManual(..) X11 WindowDriver: - Update maximized at xreconfig, read from _NET_WM_STATE - Use less Java callbacks from JNI Windows WindowDriver: - Use native maximized, if HORZ && VERT, otherwise use manual maximized for single extent. - Invisible of top-window -> MINIMIZED/ICONIFY showing the app in task-bar. commit 8df37534138e15061e66e6460391dcdc413b521f Author: Sven Gothel Date: Tue Aug 11 17:43:57 2015 +0200 NEWT WindowImpl + WindowDriver: Remove updateInsetsImpl(Insets insets) and rely solely on insetsChanged(..) (event driven) Only affected WindowDriver is AWT, which now updates the insets when setVisible(true). commit bb4e7c5d3e13d91810a7530d6ffa0a909fdfc233 Author: Sven Gothel Date: Tue Aug 11 05:53:57 2015 +0200 NEWT OSX WindowDriver: Must wait for resize on main-thread (Related to Bug 1188) If not waiting for resize on main-thread, corruption may happen at continued rendering. This has been experienced w/ maximize-horizontally (Bug 1188). commit 858ea4570f124aae2d302a78161c72f7ac41e5b3 Author: Sven Gothel Date: Tue Aug 11 05:37:38 2015 +0200 NEWY WindowImpl appendStateBits(..): Refine maximized; Refine WindowDriver's reconfig DEBUG commit 3ac9eca843d119902a65fdeee5456d204fbabfa4 Author: Sven Gothel Date: Tue Aug 11 05:36:40 2015 +0200 Bug 1188: OSX: Add maximize horz/vert, implemented manually commit dd2c69bf942757bee9aae200770e7b4cbc58adb0 Author: Sven Gothel Date: Tue Aug 11 02:44:07 2015 +0200 NEWT WindowDriver's reconfig DEBUG: Add end-of-method dump of current states, dump current and new states upfront. commit 9ad7f6d6ffe975dc0a10dac159b8de32773e1da1 Author: Sven Gothel Date: Tue Aug 11 02:43:08 2015 +0200 Bug 1188: Fix regression on OSX setVisible: in-visibility never reached on child windows / Fix [Un}Resizable style - Fix regression on OSX setVisible: in-visibility never reached on child windows - Fix 'typo' while porting to bit-mask, i.e. '!=' -> '=='. - Fix [Un}Resizable style - Use NSResizableWindowMask only for !Undecorated and if STATE_MASK_RESIZABLE is set. commit b8a1403da44af1eb31bc87e71ee9788cb831117b Author: Sven Gothel Date: Tue Aug 11 02:40:41 2015 +0200 WindowImpl appendStateBits(..): Fix POINTER* representation commit 4a9f65b176d618a8816eff6d24e683c56a4d8086 Author: Sven Gothel Date: Tue Aug 11 01:59:15 2015 +0200 Bug 1188: Fix regression on X11 setVisible: in-visibility never reached on child windows It has been experienced that UnmapNotify is not sent for child windows when using IconicState! Hence the visible:=false event never reaches the Window, causing an error. This patch only uses IconicState for top-level windows and if requested. commit 36e9671177c690ebd71d93021b8f797487785dda Author: Xerxes Rånby Date: Mon Aug 10 18:28:42 2015 +0200 Bug 1178: Fix cc10 regression caused by the fix for cc7. Bug 1178 cc10: We no longer throw an ExceptionInInitializerError when X11 is not available. Fix 1178 cc10: We need to use an X11 resource in the constructor in order to throw an ExceptionInInitializerError if X11 is not available. We can resolve this by query for the X11 display and screen inside the constructor. Signed-off-by: Xerxes Rånby commit 217d8b78a3d70d9be59d4537c7565118dfe1e277 Author: Xerxes Rånby Date: Mon Aug 10 16:44:11 2015 +0200 Bug 1183: Cleanup x11/RandR javadoc and native/X11RandR13 signature comments commit 2d837a7a7130702ad36b694875613fae77c7ef06 Author: Sven Gothel Date: Mon Aug 10 16:16:13 2015 +0200 Bug 1188, Bug 1186: NEWT Window: Support non-resizable, minimize, maximize, alwaysOnBottom and sticky/all-desktop (Part 1) Change also implements Bug 1186: 'NEWT Window: Use a Bitfield holding all state flags and expose it accordingly', since it is essential for an efficient implementation. Part 1: - Bug 1186 - Using Bitfield, holding public (Window) and private state bits/mask - Bug 1188 - Window adds: - [is|set]AlwaysOnBottom(..), - [is|set]Resizable(..), - [is|set]Sticky(..), - [is|set]Maximized(..), - isChildWindow(), - Full implementation for X11 - TODO: Implement for OSX and Windows - Manual tests: - TestGearsES2NEWT, TestGearsES2NEWTSimple and TestGearsES2NewtCanvasAWT utilize new NewtDemoListener, which has a key-listener to perform all [new] actions. See source code of NewtDemoListener. commit 2689c311cd0fea40740c7d9db68a4e40020b1281 Author: Julien Gouesse Date: Sun Aug 9 17:59:43 2015 +0200 Deprecates SGIImage.isSGIImage() and DDSImage.isDDSImage(), see the bug report 1042 commit b0169344a9fc01c4fcc9a9c1a750815f02bc5633 Author: Julien Gouesse Date: Sun Aug 9 17:58:14 2015 +0200 Calls ImageIOUtil in TextureIO to detect the image format of a stream, see the bug report 1042 commit 0608e185b3147c28d29b02af58205e639adf3f4e Author: Julien Gouesse Date: Sun Aug 9 17:57:18 2015 +0200 Documents ImageIOUtil, see the bug report 1042 commit 354f239a461ea2f5ddd494810252216014f9b90b Author: Julien Gouesse Date: Sun Aug 9 17:26:43 2015 +0200 Detection of the image format, first version (work in progress), see the bug report 1042 commit 1e4bfc26e2f220e046f42f7d26c05e4971bc509d Author: Sven Gothel Date: Wed Aug 5 16:31:36 2015 +0200 Bug 1062: Utilize 'GLProfile.disableOpenGLDesktop' for EGLDrawableFactory desktop mapping as well. Commit 35622a7cef4a28ce7e32bf008ef331d9a0d9e3e2 introduced GLProfile.disableOpenGLDesktop, as enabled by system property 'jogl.disable.opengldesktop'. Desktop OpenGL shall also be disabled within EGLDrawableFactory. Provide verbose DEBUG info for all disabled desktop OpenGL cases. commit ebadf5eec00b99e96567ba685cdfeae2005e5969 Author: Sven Gothel Date: Wed Aug 5 14:55:24 2015 +0200 Remove unused jogamp.opengl.SystemUtil commit 4ff4f735c421ef343a8c447fa699c01444bd5e9b Author: Sven Gothel Date: Wed Aug 5 13:44:11 2015 +0200 Bug 1183: Handle NULL return values for native RandR13 calls, which suppose to return 'int[]' Certain native RandR13 functions shall return 'int[]', but will bail out early in case of an error or lack of resources. The latter is true for getMonitorDeviceIds(..) where 'XRRScreenResources->ncrtc <= 0', causing return value NULL. This patch handles the NULL return values, however, the root cause of having 'XRRScreenResources->ncrtc <= 0' _occasionally_ lies within the Raspi X11 driver I am afraid?! commit da1a4cc5bc4a7fda0605709b61a63564b9070378 Author: Sven Gothel Date: Sun Aug 2 05:04:54 2015 +0200 Fix commit 24b646d387b3d85467bb22763b016a556d665707: Add missing semicolon commit 24b646d387b3d85467bb22763b016a556d665707 Author: Sven Gothel Date: Sun Aug 2 02:45:46 2015 +0200 NEWT.WindowImpl: Adopt synchronized Bitfield for state flags (replacing 11 booleans) commit 87f29ea276d70171bbf227c0800991349ccf4873 Author: Sven Gothel Date: Sun Aug 2 01:17:04 2015 +0200 Adapt to GlueGen's Bitfield Changes (commit 047e9adaf2a5f51f7acfa194a744c99b6bfadaea) commit 1a8b5c63c2f5328724a84ced2fa16a04ee6e8ac5 Author: Sven Gothel Date: Thu Jul 30 03:07:07 2015 +0200 Use GlueGen's Bitfield instead of IntBitfield commit 3f13a60ca428ed879ad2ac551f7bd808b9ba44a9 Author: Sven Gothel Date: Wed Jul 29 09:48:54 2015 +0200 Bug 1145 - Fat Jar: Add default main entry test TestGearsES2SimpleNEWT commit e171ae1589adfddca38a9f8d27a05f17e90f65b1 Author: Xerxes Rånby Date: Wed Jul 29 01:54:46 2015 +0200 Bug 1178: Workaround cc9 X11UnderlayTracker: Pressing Maximize locks-up the NEWT EDT cc9: Pressing Maximize locks-up the NEWT EDT Workaround cc9: Prevent the overlay to reposition the underlay. Signed-off-by: Xerxes Rånby commit 124af9f2e30d7941c99d21e086c9837fedd99867 Author: Xerxes Rånby Date: Mon Jul 27 23:13:10 2015 +0200 Bug 1178: if overlay is undecorated then make under-lay the same commit de6f8ecac15c502aff800aa2c6ee35490c14545a Author: Xerxes Rånby Date: Sun Jul 26 16:16:34 2015 +0200 Bug 1178: Mouse events shall be passed on to unfocused overlays. commit 59c278f0c492de37a1e31af7cb9f825353118fe1 Author: Xerxes Rånby Date: Sat Jul 25 19:44:44 2015 +0200 Bug 1178: Fix cc7 X11UnderlayTracker can now track multiple windows. cc7: the UnderlayTracker needs to be engineered to handle multiple overlays -> need to spawn one X11 window for each new overlay. Signed-off-by: Xerxes Rånby commit 5d3d8a4211968d6d214e8403ba58295b5dd67aec Author: Xerxes Rånby Date: Fri Jul 24 15:33:00 2015 +0200 Bug 1178: Fix cc8 bcm.vc.iv WindowDriver: Update pointer during DRAGGED events. 1178 cc8: The bcm.vc.iv mousepointer is not updating _visible_ position during DRAGGED events. Fix cc8: update bcm.vc.iv WindowDriver doMouseEvent Signed-off-by: Xerxes Rånby commit fff18fc198744170ad4061a57ed9d064df08b8c6 Author: Xerxes Rånby Date: Fri Jul 24 15:17:41 2015 +0200 Bug 1178: X11UnderlayTracker Fix cc4. Attempted fix for cc6. Rename window -> underlayWindow. Fix indentation, long lines & whitespace. Bug 1178 cc4: another window overlaps NEWT underlay window -> overlay window is still on top. Fix 1178 cc4: we can request the NEWT underlay window to use always on top. Bug 1178 cc6: if you render the overlay window transparent -> caps.setBackgroundOpaque(false); then you will see that the underlay tracker window newer repaints -> looks a bit like a mess. Attempted fix 1178 cc6: x11 underlay tracker window can be set transparent as well. FIXME: The underlay tracker window is still filled with opaque garbage. Signed-off-by: Xerxes Rånby commit 17934267339ed9cff89a72724671d3df6339bb64 Author: Xerxes Rånby Date: Thu Jul 23 16:57:06 2015 +0200 Bug 1178: Fix cc0 WindowImpl: Swallow CLICK event Signed-off-by: Xerxes Rånby commit f84af439535640e1072b6cd670aa44cbe91ef052 Author: Xerxes Rånby Date: Wed Jul 22 02:08:41 2015 +0200 Bug 1178: Implement X11UnderlayTracker driver/x11/X11UnderlayTracker Using NEWT to initialize an X11 window for use by Raspberry Pi users to handle mouse and keyboard input when using the bcm.vc.iv driver inside xorg. newt/driver/bcm/vc/iv/WindowDriver Try use X11UnderlayTracker as input for bcm.vc.iv If X11 fail to initialize then track using the /dev/event files directly using the LinuxMouseTracker. Input source is switched inside bcm/vc/iv/WindowDriver by using the new newt/driver/KeyTracker newt/driver/MouseTracker interfaces. Signed-off-by: Xerxes Rånby commit 36889161d37b07835eb2db83c147585ca0ef77a1 Author: Sven Gothel Date: Tue Jul 28 17:06:30 2015 +0200 Bug 1154 - Make plugin3-public.jar optional: Part 2 / 2 Exclude plugin3.jar dependent source files from compilation of NEWT. commit 1b1a05eb49cc3a0e0da505c175388ae1147ea2d6 Author: Sven Gothel Date: Tue Jul 28 15:26:38 2015 +0200 Bug 1154 - Make plugin3-public.jar optional: Part 1 / 2 (Relocate Applet3 classes) commit 63331d5da80f66753442fe651f517b3540b517ce Author: Sven Gothel Date: Tue Jul 28 00:46:06 2015 +0200 JAWTWindow: Fix binary compatibility: Add old variants of deprecated method, throwing a RuntimeException commit 4eeddd0d446f8491dde2e5b0e3e11e0d5b0be9b7 Author: Sven Gothel Date: Tue Jul 28 00:37:53 2015 +0200 Bug 1161 - Fix Canvas resize stops the rendering in Mac OS X (mostly from WebStart) Root cause: JAWTWindow's JAWTComponentListener 'isShowing' state is initialized while attaching it on-thread and updated via hierarchy-changed event. JAWTComponentListener attachment to the component is issued at JAWTWindow's creation but on the AWT-EDT, hence it may happen at a later time. In this bug scenario, it happens very late, so that the hierarchy-changed event is missed and 'isShowing' is never set to 'true'. Solution is to update 'isShowing' state on the actual AWT-EDT when attaching to the component. Also make 'isShowing' volatile. commit b0af5159bc6100a6262afe6b52f9092a207ac2b3 Author: Sven Gothel Date: Mon Jul 27 20:05:09 2015 +0200 Bug 1181 - JOGL WebStart Applications using GLCanvas/AWT may Deadlock by two AWT-EDT on Java >= 1.8.0_45 Root cause: - AWT Toolkit global Lock Our locking scheme (AWT-EDT-1): - Surface Lock - sun.awt.SunToolkit.awtLock() - Component.getGraphicsConfiguration() -> synchronized(Component.getTreeLock()) Other AWT-EDT-2 by Webstart: - synchronized(Component.getTreeLock()) - sun.awt.SunToolkit.awtLock() Results in a deadlock. Solution: - Issue Component.getGraphicsConfiguration() before awtLock(), where Component.getGraphicsConfiguration() is being used to detect possible reconfiguration. - Also use updated AWTGraphicsConfiguration's GraphicsConfiguration if no 'new' detection is required. commit 6ae08be1742e6d805b316c0d440364854a49e68f Author: Sven Gothel Date: Mon Jul 27 20:00:06 2015 +0200 Bug 1184 - JOGL AWT Canvas Components don't update AWTGraphicsConfiguration when reconfigured. JOGL AWT Components, e.g. GLCanvas or NewtCanvasAWT, may be reconfigured by moving them to another display/monitor or by other means. Since AWT has no means to notify the user code via an event, JOGL components usually determine the reconfiguration via the override 'GraphicsConfiguration getGraphicsConfiguration()'. GLCanvas is sensible to this reconfiguration, however its AWTGraphicsConfiguration (owned via JAWTWindow) is not changed. Implement reconfiguration detection for all JOGL AWT Components and update the AWTGraphicsConfiguration if required. For now, constraint reconfiguration on GraphicsDevice change as currently implemented in GLCanvas. The updated AWTGraphicsConfiguration allows using the updated GraphicsDevice as it might be required for further information, e.g. pixel-scale on OSX. commit 8e1f5fc43ba84d5e6373f0c29089ac32b7ce95dd Author: Sven Gothel Date: Fri Jul 24 22:51:10 2015 +0200 Bug 1180: Refine TestMapBufferRead01NEWT, add TestMapBufferRead02NEWT: Add assertion checks and latter test uses FloatBuffer commit c47dab67985a23040effea36d69356737e40d4e5 Author: Sven Gothel Date: Fri Jul 24 21:59:51 2015 +0200 Fix TestBug1146GLContextDialogToolTipAWT / AWTRobotUtil.mouseClick(..) use BUTTON1_MASK instead of BUTTON1_DOWN_MASK commit cc3aa4f6e72171162476ee3e858c1949c4b577f2 Author: Sven Gothel Date: Fri Jul 24 21:58:40 2015 +0200 fix osx 32bit/java6 test scripts commit 6436b49405a7436d7df4ffd83602615cb9ae10a0 Author: Sven Gothel Date: Fri Jul 24 07:11:53 2015 +0200 Bug 1160: Fix/Refine test case: Stable master thread; Disable 'masterLock' in slave-creation (causes failure on windows) commit e50190e6d300e05f083974938a4d7cc8b38ddd62 Author: Sven Gothel Date: Fri Jul 24 06:39:51 2015 +0200 Bug 1160: Fix test case (Avoid blocking/concurrent master context usage on AWT) + // We cannot use EventQueue.invokeAndWait(..) since it will + // block this will block the current thread, holding the context! + // The whole issue w/ an external shared context is make-current + // synchronization. JOGL attempts to lock the surface/drawable + // of the master context to avoid concurrent usage. + // The semantic constraints of a shared context are not well defined, + // i.e. some driver may allow creating a shared context w/ a master context + // to be in use - others don't. + // Hence it is up to the user to sync the external master context in this case, + // see 'masterLock' of in this code! + // EventQueue.invokeAndWait(initializer); commit c47ebe36a3676aae9a6a334b31e6c73f221d65aa Author: Sven Gothel Date: Fri Jul 24 06:38:55 2015 +0200 GLContextImpl: Update uncommented code (method name changed) commit ff90b5405b253a820643d4de820728aad37fdf8e Author: Sven Gothel Date: Fri Jul 24 06:38:24 2015 +0200 Bug 1160: Fix unit test name and some minor details .. (convention) commit 53cc42950597d3604eca9fcacad643f5fb868929 Author: Sven Gothel Date: Fri Jul 24 02:20:06 2015 +0200 Bug 1146, Bug 1158: Add missing GLClearColor class commit f60a737b18d6763ac1f443fce0b61c844666e2a8 Author: Sven Gothel Date: Fri Jul 24 02:12:06 2015 +0200 Bug 1146, Bug 1158: Add unit test for GLContext creation after showing tool-tip within JDialog Test passes on GNU/Linux X11 and Windows - both using NVidia driver. Unit test is based on Robin Provost's code as attached in Bug 1158. commit 5d58f63300771843687db18ad4da67c5882fd52e Author: Sven Gothel Date: Mon Jul 20 03:59:57 2015 +0200 Bug 1151 - Fix using DK1 on OVR 0.5*; Minor changes commit d99b7bf16fe316a10784e9588408ab28b204e506 Author: Sven Gothel Date: Mon Jul 20 02:59:54 2015 +0200 StereoDevice (Generic/OVR): Add knowledge about LocationSensorParameter and allow reset origin of location-sensor commit d9674620bc4f03dff9611a785a27dd41b1b72648 Author: Sven Gothel Date: Mon Jul 20 02:58:17 2015 +0200 Clarify code in stereo/ovr: Comments, states, names, formatting. commit befd56510a781e65509256ae37e18888ff58181d Author: Sven Gothel Date: Mon Jul 20 02:55:00 2015 +0200 Refine Frustum definition: Adding Frustum.FovDesc; Clarify makeFrustum argument constraints -> Exceptions commit c45d8e11083a1c6a0fff9d4cf64350c878bea1b6 Author: Sven Gothel Date: Sun Jul 19 01:19:31 2015 +0200 ShaderCode: Add 'create' variations w/ custom shader file suffixes as well as w/ Uri usage commit 6e68e6a9d2472d556c7cab69b2ee9e55aeb60f36 Author: Sven Gothel Date: Sat Jul 18 14:02:53 2015 +0200 Fix javadoc typo: -> commit 53966f92042d44483cb44f6c6b3c95a6a1fdd325 Author: Sven Gothel Date: Sat Jul 18 03:50:02 2015 +0200 Bug 1151 - Working OculusVR SDK 0.5.0.1 on GNU/Linux w/ Positional Tracker (DK2) Note: The ovrd server must run, otherwise no device is being detected. General Stereo API Changes: - EyePose -> ViewerPose - We only use the viewer pose and derive the pupile position via EyeParameter. - Hence we reduce complexity. - A single ViewerPose will be maintained by StereoDeviceRenderer - position is in meter, allowing StereoGLEventListener to scale device independent. - StereoDevice receives knowledge of certain sensors, to be queried and used for start-sensors. OVR: - Simply apply the above general changes - Build: Remove [more] unused API entries for SDK rendering commit 5667e4320443289a1c0bd02f54bf466bfc2c5895 Author: Xerxes Rånby Date: Fri Jul 17 14:16:58 2015 +0200 bcm/vc/iv/DisplayDriver depend on libEGL, pre-load it using GLProfile Fixes libnewt.so: undefined symbol: bcm_host_init" when the NEWT Screen is initialized before OpenGL ES. Signed-off-by: Xerxes Rånby commit 51268bc9874de7cc34dfe7741187238f7d46aafc Author: Sven Gothel Date: Fri Jul 17 04:39:53 2015 +0200 Bug 1176: BCM VC IV: Refine clamping of window position and size at native creation - Refines commit a566a1b5a2828b38f1a5c4dfb215ab9b03e7acaa - Issue clamping at 'canCreateNativeImpl()' instead of 'createNativeImpl()', allowing to define clamped position and size before utilizing these values at caller 'createNative()'. Otherwise a clamped position would cause to wait for the original position after 'createNativeImpl()'. This also allows to remove the positionChanged(..) / sizeChanged(..) calls in the native CreateWindow0() implementation. commit 1584cae39c6dca9e372000bb64534c881ebc3511 Author: Sven Gothel Date: Fri Jul 17 03:24:49 2015 +0200 Bug 1176: BCM VC IV: Add window-position to window-relative mouse position in DisplayDriver.moveActivePointerIcon(..) call commit a566a1b5a2828b38f1a5c4dfb215ab9b03e7acaa Author: Sven Gothel Date: Fri Jul 17 03:23:36 2015 +0200 Bug 1176: Clamp window position and size to 0/0 and screen-size, avoiding out-of screen window positions on BCM VC IV hardware Out of screen window positions on BCM VC IV hardware cause: - Misalignment of self-rendered mouse-pointer / window due to window-offset. - Artifacts when moving the mouse pointer partially out of screen. We still need to add the window position to rel. mouse-pointer position. commit 0b62f343f5c2ca74d10d86c435099ce0e0ab89db Author: Sven Gothel Date: Thu Jul 16 05:49:41 2015 +0200 PointShader: Use same precision for shared uniform in vertex- and fragment shader On GNU/Linux NVidia 340.76 the test TestGLPointsNEWT failed otherwise: error: precision mismatch between shaders for uniform (named mgl_PointParams[0]) error: precision mismatch between shaders for uniform (named mgl_PointParams[1]) commit 7bcf094c8c1be5eeec60c52e09fd8f32f42cd654 Author: Sven Gothel Date: Thu Jul 16 04:47:52 2015 +0200 openmax: fix compile errors (clang) commit 6487e3d25c55eadbf527739012e21e8f33e67a0f Author: Sven Gothel Date: Thu Jul 16 02:49:13 2015 +0200 Bump oculusvr-sdk: Fix build for Windows/MingW64 (32bit target) commit 2ea0cc1bcdb01ca1875424ef0918ec382a02e075 Author: Sven Gothel Date: Wed Jul 15 22:14:28 2015 +0200 Oculusvr SDK: Bump oculusvr-sdk mingw64 fixes ; Drop unused files from library. commit 787bf6c43c881ff969282ed8eaabfe680daa70f8 Author: Sven Gothel Date: Tue Jul 14 07:16:45 2015 +0200 Bump OculusVR RIFT SDK to 0.5.0.1 State: Build clean on GNU/Linux and OSX commit 35babe791b5c6db8a5dccac3a8f57e4f18d79d76 Author: Sven Gothel Date: Mon Jul 13 20:15:21 2015 +0200 add osx-java6 script: using separate rootrel.build commit 179222835fae0cc93b20aef2f877f47c9626f15a Author: rhatcher Date: Fri Jul 10 14:22:25 2015 -0500 Expand bitmasks in SWTAccessor GTK_VERSION method SWTAccessor's GTK_VERSION method accepts a single int argument. The argument is interpreted as a bit-packed version number with the apparent intent that the three least significant bytes of the int version number are the major, minor, and micro version number components. The code that extracts these three components from the int argument was using four-bit mask 0x0f instead of eight-bit mask 0xff, and therefore was discarding the four most significant bits of each component. This caused any component greater than 15 to lose information. For example, a component whose value should have been 20 would end up as 4. The version number is used in comparisons in a static initializer to determine how to retrieve references to Method objects via reflection. One such comparison decides whether to retrieve a reference to method GTK_WIDGET_WINDOW or method gtk_widget_get_window. The problem initially presented itself after an attempt to use JOGL with SWT 4.527 and GTK 2.20.1 because this version of SWT removed the GTK_WIDGET_WINDOW method. Due to the bug SWTAccessor believed the GTK version was 2.4.1 instead of 2.20.1, so the code attempted to find GTK_WIDGET_WINDOW instead of gtk_widget_get_window. Because this method was no longer there a runtime exception was raised. commit b006563ded0b2ad0c5cf091c4ab1b6df06a0ccaa Author: Tom Nuydens Date: Mon Jun 1 15:44:49 2015 +0200 Unit test for bug 1160; context sharing between an offscreen drawable and an external GL context commit 1744cccaa63fa27b399b032c7767de2115ba2c7a Author: Sven Gothel Date: Sat Apr 4 00:03:20 2015 +0200 Use CompatibilityType.BACKWARD_COMPATIBLE_BINARY for 2.3.1 / Add EGL.KHRONOS_BOOLEAN_ENUM_FORCE_SIZE manually to avoid binary incompatibility commit c781cbd978b0635a49e39d48d5786cc71cf7566b Author: Sven Gothel Date: Fri Apr 3 05:18:53 2015 +0200 TestVersionSemanticsNOUI: Fix expected compat result (inactive tests) commit dc32ed4f045cbdfdc70fe8572564cd8e3b5eb33b Author: Sven Gothel Date: Wed Apr 1 16:05:18 2015 +0200 Bug 1153 - GLEmitter: Only dump extra comment if w/o enum-name or w/o extension Since GlueGen handles enum typedef's properly, this relation to the enum-name is already printed. commit 5deabf720f1101b39376cb211c39f6f0c3474153 Author: Sven Gothel Date: Wed Apr 1 16:00:20 2015 +0200 Bug 1153 - Adopt to ArrayHashSet change, don't use deprecated ctor (gluegen commit c156343fec33ceea7f238b9766a9f4985fb92687)