summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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 1238 - Fix NPE for Window-Icon's PNGPixelRect for unresolved location; ↵Sven Gothel2015-10-036-40/+68
| | | | | | | | | | | | | | | | | | | | | | | | | 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"
* Bug 1237: Adopt GlueGen's clarification of IOUtil.getResource(..), commit ↵Sven Gothel2015-10-0327-85/+83
| | | | | | | | 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 1241 - Util's Texture.coords (image coordinates) not updated properlySven Gothel2015-10-021-22/+29
| | | | | | | | | 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.
* Bug 1205: Revert clear background to support fix for Bug 1232: NEWT ↵Sven Gothel2015-10-011-7/+24
| | | | | | | | | | 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).
* Bug 1232 - NEWT Translucent Decorated Windows Not Working On Windows >= 8 ↵Sven Gothel2015-10-016-129/+260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Lack of Aero / Blur ) Adopting new undocumented user32.dll Windows >= 8 API: - SetWindowCompositionAttribute / AccentState See: - <https://github.com/riverar/sample-win10-aeroglass/blob/master/MainWindow.xaml.cs> - <http://withinrafael.com/adding-the-aero-glass-blur-to-your-windows-10-apps/> - <http://undoc.airesoft.co.uk/user32.dll/SetWindowCompositionAttribute.php> - <http://undoc.airesoft.co.uk/user32.dll/GetWindowCompositionAttribute.php> +++ 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!
* 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 1205 - NEWT Security: Clear framebuffer after creation and before ↵Sven Gothel2015-09-292-51/+145
| | | | | | | | | | | | | | | | | | | 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.
* NEWT WindowImpl.createNative(): Post creation: Only perform mod-actions if ↵Sven Gothel2015-09-291-22/+27
| | | | non default (performance)
* 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 1234 - GLReadBufferUtil.readPixelsImpl(..) not using [xy] offset in ↵Sven Gothel2015-09-281-2/+2
| | | | | | | | | | | | | 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.
* Bug 1125: Unit test to validate that Thread.interrupt() does not disturb ↵Sven Gothel2015-09-281-0/+305
| | | | continued rendering of AWT and GLCanvas
* Bug 1232 - NEWT Translucent Decorated Windows Not Working On Windows >= 8 ↵Sven Gothel2015-09-262-2/+29
| | | | | | | | | | | | (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 ..
* TestGearsES2NEWT: Print bounds @ window resized/moved instead of just x/ySven Gothel2015-09-261-2/+2
|
* Bug 1226 - GLPixelBuffer.GLPixelAttributes.getPixelFormat() doesn't handle ↵Sven Gothel2015-09-261-0/+4
| | | | glDataType GL_UNSIGNED_INT_8_8_8_8_REV
* Bug 1222 - NEWT OSX: setAlwaysOnTop() and setAlwaysOnBottom() not workingSven Gothel2015-09-264-62/+26
| | | | | | | | | | | | - 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.
* NEWTDemoListener: Fix 'v' modifier collision of ctrl, use shift.Sven Gothel2015-09-261-1/+1
|
* 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 1188: Fix setMaximized(..) isReconfigureMaskSupported(..) querySven Gothel2015-09-261-2/+2
| | | | | | | setMaximized(..) isReconfigureMaskSupported(..) was using the state bit-number instead of the state bit-mask! Fixed.
* Bug 1214: Fix Deadlock in screenPositionChanged(..); Use ↵Sven Gothel2015-09-265-160/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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-257-37/+296
| | | | | | | | | | | 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
* NEWTDemoListener: Double-Mouse-Click Fullscreen only w/ 3 pointers involvedSven Gothel2015-09-191-1/+1
|
* TestGearsES2*AWT / NewtDemoListener: Show pixel-scale in title bar.Sven Gothel2015-09-183-40/+172
|
* Unit Tests: NEWTDemoListener: Less verbose; GraphUI-Demos: Show DPI and ↵Sven Gothel2015-09-178-30/+45
| | | | Pixel-Scale in GLEventListener.init(...)
* FFMPEGDynamicLibraryBundleInfo.initSymbols(): Just return null instead of ↵Sven Gothel2015-09-171-4/+8
| | | | throwing an exception, it is OK not to have ffmpeg/libav
* Bug 1211: Fix regression of GLMediaPlayerImpl caused by commit ↵Sven Gothel2015-09-171-3/+12
| | | | | | | | | | | 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.
* Unit Tests: Add listening to NEWTDemoListener* (Missed in prev. patch)Sven Gothel2015-09-162-0/+2
|
* NEWT Window Maximize: re-gain focus after maximize action (maybe lost on ↵Sven Gothel2015-09-151-0/+5
| | | | platforms, i.e. OSX)
* Fix NEWT DisplayImpl.createPointerIcon: Pass through Exceptions, as required ↵Sven Gothel2015-09-151-10/+24
| | | | by API doc.
* Bug 1211: Refine NEWTDemoListener, JOGLNewtAppletBaseSven Gothel2015-09-154-59/+75
| | | | | | | | | | | - 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: Hardening Condition-Wait from Spurious-Wakeups and unintended ↵Sven Gothel2015-09-1526-456/+1029
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* 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
* NativeWindowFactory.createDevice(..): Support creating EGLGraphicsDevice ↵Sven Gothel2015-09-021-3/+23
| | | | using reflection for 'jogamp.opengl.egl.EGLDisplayUtil'
* Bug 1212 - OSX: Crash using CALayer at UnsetJAWTRootSurfaceLayer0(..) w/ ↵Sven Gothel2015-09-012-15/+28
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bug 1202: Fix vsync regression on OSX when using CALayerSven Gothel2015-09-015-3/+20
| | | | | | | | 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.
* Bug 1205 - NEWT Security: Clear framebuffer after creation and before ↵Sven Gothel2015-08-311-10/+9
| | | | | | | | | | | | | | | | 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.
* Bug 1210 - Use manual impl. XRenderFindVisualFormat instead of buggy ↵Sven Gothel2015-08-314-20/+208
| | | | | | | | | | | | | | | | | | | | 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 1208 - NEWT: Window: Consider avoiding operations if not supported, see ↵Sven Gothel2015-08-311-28/+84
| | | | | | | | | | 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.
* Fix Bug 1209 - Regression of Bug 1188 Patches: Parented Fullscreen Issues ↵Sven Gothel2015-08-311-51/+94
| | | | | | | | | | | | | | | | | (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
* Bug 1188: Refine getSupportedStateMask() semantics and minimum requirements ↵Sven Gothel2015-08-318-20/+18
| | | | | | | | | (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
* Bug 1203: Add missing constraints in desktop *GLContext.create* methods: ↵Sven Gothel2015-08-305-21/+56
| | | | | | | | | | | | | | | | | 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 1203: OpenGL ES 3.1 NVIDIA 355.06's EGL impl. is unstable requires ↵Sven Gothel2015-08-302-5/+6
| | | | | | | | | | 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.