summaryrefslogtreecommitdiffstats
path: root/src/test/com/jogamp/opengl
Commit message (Collapse)AuthorAgeFilesLines
* NewtCanvasJFX.NativeWindow: Delegate required child window canvas positionSven Gothel2019-03-214-74/+15
| | | | | | | | | | 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.
* TestNewtCanvasJFXGLn: Adding NEWTDemoListener and ↵Sven Gothel2019-03-201-0/+34
| | | | NewtJFXReparentingKeyAdapter functionality
* Tests: Adding API Doc for test utilizing NEWTDemoListener and derivationsSven Gothel2019-03-208-14/+84
|
* Adding NativeWindowHolder extends NativeSurfaceHolder; API Doc for ↵Sven Gothel2019-03-203-22/+238
| | | | | | | | | NEWTDemoListener NativeWindowHolder abstracts access to is-a or has-a parent component's NativeWindow like NewtCanvasAWT, NewtCanvasJFX and NewtCanvasSWT Adding API Doc for NEWTDemoListener.
* JavaFX: Add proper class doc for implementation and unit testSven Gothel2019-03-201-32/+52
|
* JavaFX: Adding JavaFX Support for NEWT utilizing native Window parenting via ↵Sven Gothel2019-03-192-0/+516
| | | | | | | | | | | | | | | | | | | | | 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
* Version Semantics Test: Bump for 2.4.0 -> 2.3.xSven Gothel2018-01-151-4/+4
| | | | We are still on the 2.3.x branch for the next release
* TestGearsES2NEWT: Adding programmatic Debug|Trace pipelineSven Gothel2015-10-121-0/+37
|
* Version Semantics Test: Bump for 2.3.2 -> 2.4.xSven Gothel2015-10-121-2/+40
|
* Bug 1249: Revert TestParenting01NEWT durationPerTest back to 600 (otherwise ↵Sven Gothel2015-10-091-1/+1
| | | | breaks test)
* Bug 1249 - NEWT X11: setVisible(*) _NET_WM_STATE_HIDDEN update not received ↵Sven Gothel2015-10-092-53/+89
| | | | | | | | | | | | | | | | | | | | | | 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
* Bug 1249 - NEWT X11: setVisible(false) IconicState not listening to ↵Sven Gothel2015-10-083-103/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _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 <https://stackoverflow.com/questions/30192347/how-to-restore-a-window-with-xlib> 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.
* Bug 1223: Add '-traceMouse' commandline argument to check whether mouse ↵Sven Gothel2015-10-051-0/+8
| | | | events are still received after manual maximize
* Merge remote-tracking branch 'xranby/junit'Sven Gothel2015-10-052-2/+2
|\
| * Fix: junit/jogl/awt/TestBug1225EventQueueInterruptedAWT and ↵Xerxes Rånby2015-10-042-2/+2
| | | | | | | | | | | | | | 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
* | Bug 1206 - Security: Clear exposed framebuffer after creation and before ↵Sven Gothel2015-10-053-8/+98
|/ | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bug 1245: Adding Unit Test, similar to ↵Sven Gothel2015-10-042-9/+251
| | | | | | | | | | | | 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
* Merge remote-tracking branch 'xranby/master'Sven Gothel2015-10-031-1/+2
|\
| * Fix: ↵Xerxes Rånby2015-10-031-1/+2
| | | | | | | | | | | | | | | | | | | | 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)
* | Bug 1206: Test TestGearsES2NEWT: Versatile 'demoType' allows also no ↵Sven Gothel2015-10-031-6/+12
| | | | | | | | GLEventListener at all
* | Bug 1244: MovieSimple: String format %d implicit conversion from boolean to ↵Xerxes Rånby2015-10-031-1/+1
|/ | | | | | int fails using OpenJDK 1.8 Replace %d with %b
* Bug 1237: Adopt GlueGen's clarification of IOUtil.getResource(..), commit ↵Sven Gothel2015-10-0319-63/+63
| | | | | | | | 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'
* Bug 1225: Unit test shall not fail if AWT is not alive, simply report and ↵Sven Gothel2015-09-291-2/+5
| | | | return - assume failure is recorded
* Bug 1225: Unit test timeout := 3minutesSven Gothel2015-09-291-2/+2
|
* Bug 1225: Unit test shall not fail if AWT is not alive, ignore it via assumeSven Gothel2015-09-291-1/+3
|
* Bug 1225: Make unit test more robuts, notify if JRE 1.7.0 issue w/ ↵Sven Gothel2015-09-281-51/+119
| | | | | | | | | | 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.
* Bug 1125: Unit test to validate that Thread.interrupt() does not disturb ↵Sven Gothel2015-09-281-0/+305
| | | | continued rendering of AWT and GLCanvas
* TestGearsES2NEWT: Print bounds @ window resized/moved instead of just x/ySven Gothel2015-09-261-2/+2
|
* Bug 1223 OSX: GLWindow loses focus after maximizing - AnalysisSven Gothel2015-09-261-0/+32
| | | | | | | | | | | | | 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!
* Bug 1214: Fix Deadlock in screenPositionChanged(..); Use ↵Sven Gothel2015-09-261-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bug 1214 - NEWT MacOSX: Detect auto-resize of Window when it is larger than ↵Sven Gothel2015-09-252-4/+203
| | | | | | | | | | | 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
* TestGearsES2*AWT / NewtDemoListener: Show pixel-scale in title bar.Sven Gothel2015-09-182-39/+163
|
* Unit Tests: NEWTDemoListener: Less verbose; GraphUI-Demos: Show DPI and ↵Sven Gothel2015-09-177-19/+33
| | | | Pixel-Scale in GLEventListener.init(...)
* Unit Tests: Add listening to NEWTDemoListener* (Missed in prev. patch)Sven Gothel2015-09-162-0/+2
|
* Bug 1211: Refine NEWTDemoListener, JOGLNewtAppletBaseSven Gothel2015-09-152-11/+3
| | | | | | | | | | | - 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
* Bug 1211: Adopt changes to unit test from commit ↵Sven Gothel2015-09-1547-676/+165
| | | | 68c8e39fa8d6e700f0a99241c1a01a435b7f6284
* Bug 1211 TestBug1211IRQ00NEWT: Cover whole JOGL initialization by MyThread, ↵Sven Gothel2015-09-051-123/+180
| | | | | | | | | 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.
* Bug 1211 TestBug1211IRQ00NEWT: Add assertions incl. testing ↵Sven Gothel2015-09-031-17/+70
| | | | Thread.interrupted() assuring no silence interruption occured
* Bug 1211 TestBug1211IRQ00NEWT: Fix using durationTest01; Make ↵Sven Gothel2015-09-031-13/+8
| | | | createWindow(..) analog to GLWindow.main(..)
* Bug 1211: Custom size for TestBug1211IRQ00NEWTSven Gothel2015-09-031-3/+9
| | | | | | 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.
* Bug 1211: Show Platform-Info for unit test TestBug1211IRQ00NEWT (commit ↵Sven Gothel2015-09-031-0/+2
| | | | 5f5553f1c0b6731970db6df24d79654661238247)
* Bug 1211: Adding unit test to identify Thread.interrupt() caller for ↵Sven Gothel2015-09-031-0/+230
| | | | DefaultEDTUtil.invokeImpl(..) wait interruption
* Bug 1210 - Use manual impl. XRenderFindVisualFormat instead of buggy ↵Sven Gothel2015-08-311-0/+158
| | | | | | | | | | | | | | | | | | | | 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
* Bug 1203: Add missing constraints in desktop *GLContext.create* methods: ↵Sven Gothel2015-08-301-12/+22
| | | | | | | | | | | | | | | | | 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.
* Bug 1207 - GLDebugMessageHandler: Support GL_KHR_debug for Desktop and ES ↵Sven Gothel2015-08-302-22/+128
| | | | | | | | | | | | | | | | profile GL_KHR_debug <https://www.opengl.org/registry/specs/KHR/debug.txt> 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.
* Bug 1203: Optimize OpenGL Profile probing/mapping (Skip redundant queries)Sven Gothel2015-08-301-2/+2
| | | | | | | | | | | | | | | 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.
* Bug 1203: Fix TestGLAutoDrawableFactoryGLProfileDeviceNEWT: Do not assume ↵Sven Gothel2015-08-291-0/+16
| | | | EGL/Desktop factories are available!
* Bug 1203: Adding factory-offscreen unit test, validating ES/GL usage with ↵Sven Gothel2015-08-291-0/+221
| | | | EGL and Desktop GLDrawableFactory
* Bug 1202 (related): Fix SEMVER regressions mostly due to Bug 1202 commits ↵Sven Gothel2015-08-291-3/+1
| | | | | | | | | (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
* Bug 1202 - Add support of Adaptive Vsync via [GLX|WGL]_EXT_swap_control_tearSven Gothel2015-08-2717-84/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [GLX|WGL]_EXT_swap_control_tear extensions support asynchronous buffer swaps, i.e. adaptive Vsync. <https://www.opengl.org/wiki/SwapInterval_aka_vsync#Adaptive_Vsync> <https://www.opengl.org/registry/specs/EXT/wgl_swap_control_tear.txt> <https://www.opengl.org/registry/specs/EXT/glx_swap_control_tear.txt> <http://keithp.com/blogs/async_flip/> 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 +++