summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Bug 922 (2/2): NEWT Window.reparentWindow(..): Use ↵Sven Gothel2013-12-116-19/+272
| | | | REPARENT_HINT_BECOMES_VISIBLE to ensure GL State Preservation ; Add unit test !
* Bug 922 (1/2): NEWT Window.reparentWindow(..): Provide ↵Sven Gothel2013-12-1114-159/+204
| | | | | | | | | | | | REPARENT_HINT_BECOMES_VISIBLE hint via new method variant using hints; Deprecate other reparentWindow(..) variants w/o hints. NEWT Window.reparentWindow(..): Provide REPARENT_HINT_BECOMES_VISIBLE hint via new method variant using hints: - Add REPARENT_HINT_FORCE_RECREATION, covering 'old' forceDestroyCreate boolean argument - Add REPARENT_HINT_BECOMES_VISIBLE, Claim window becomes visible after reparenting, which is important for e.g. preserving the GL-states in case window is invisible while reparenting. Deprecate other reparentWindow(..) variants w/o hints. Use only new variant using hints w/o semantical change.
* TestShutdownCompleteNEWT/AWT: Align both tests and account for GLInfo.Sven Gothel2013-12-102-37/+79
|
* TestShutdownCompleteNEWT: Enhance profiling via '-wait -initOnly' ; Use ↵Sven Gothel2013-12-101-37/+35
| | | | | | | | | | | | | Platform.currentTimeMicros() for accuracy ReflectionUtil usage: TestShutdownCompleteNEWT -wait -initOnly Hotspots: - MakeCurrent 5.3% - Called 52 times - ClassLoader.findClass(..) 3.1% - Called 486 times . - ReflectionUtil: 13 times ~ 0.3%
* Bug 904: 'User Vertical Flip' for GLJPanel w/o vertical flip must be ↵Sven Gothel2013-12-106-68/+197
| | | | considered in AWTTilePainter: 'Origin of GL image is still on Bottom'
* Bug 904: 'User Vertical Flip' for GLJPanel shall be performed via PROJECTION ↵Sven Gothel2013-12-104-119/+155
| | | | | | | matrix scaling instead of MODELVIEW rotation ... 'User Vertical Flip' for GLJPanel shall be performed via PROJECTION matrix scaling instead of MODELVIEW rotation to simplify workflow, and to remove artifacts w/ tiled printing.
* Bug 747: VectorUtil: Make scale(..) creating new float[] deprecated, adding ↵Sven Gothel2013-12-101-5/+33
| | | | | | | | | | 'in place' variant w/ passing result float[] ; TODO: Replace all variations with 'in place' version to be more memory efficient. Make scale(..) creating new float[] deprecated, adding 'in place' variant w/ passing result float[] TODO: Replace all variations with 'in place' version to be more memory efficient. See Bug747: Validate memory footprint and usage / General performance
* TestNewtKeyEventAutoRepeatAWT: Fix regression of commit ↵Sven Gothel2013-12-041-2/+3
| | | | 8512777873461ee33d8ed913ee26bafc00a08a02
* Bug 919 - TestNewtKeyCodesAWT w/ NewtCanvasAWT Fails on Windows Due to ↵Sven Gothel2013-12-0413-264/+268
| | | | | | | | | | | | | | Clogged Key-Release Event by AWT Robot Impact: Only unit test code - TestNewtKeyCodesAWT: Fix Bug 919 - Move mouse bacl/forth while waiting for events .. - Use common wait for key timeout/polling using constants in NEWTKeyUtil - InputEventCountAdapter: 'getQueued()' -> 'copyQueue()' - ensuring queue is copied while instance is locked.
* Bug 914: Newt OSX: Reset NSApp's presentationOptions @ windowClose0() / ↵Sven Gothel2013-12-035-63/+84
| | | | | | | | | | | | | | | Assume having focus in fullscreen-mode - Reset NSApp's presentationOptions @ windowClose0() Commit 69c334448cfe8af553fd97689137ecf8f996b378 started using the [NSApp setPresentationOptions: opts] but missed to reset to defaults @ windowClose0(); - Assume having focus in fullscreen-mode NewtMacWindow::windowDidBecomeKey()' is not always called in fullscreen-mode! Note: OSX Fullscreen from a browser still shows the browser title-bar until mouse-click. Don't know how to avoid this. Minor issue..
* Bug 916 - NEWT Fullscreen Mode on Windows ALT-TAB doesn't allow Application ↵Sven Gothel2013-12-031-20/+58
| | | | | | | Switching Remedy for 'some' display drivers, i.e. Intel HD: Explicitly push fullscreen window to BOTTOM when inactive (ALT-TAB)
* NEWT Windows: Rearrange wndProc switch-case: All key/mouse events shall be ↵Sven Gothel2013-12-021-448/+449
| | | | at last
* Bug 914: Newt OSX: Don't use exclusive fullscreen mode (captured display) in ↵Sven Gothel2013-12-023-0/+37
| | | | favor of proper WM incl. ALT-TAB app-switching
* Bug 914 - Don't allow 'alwaysontop' in fullscreen mode, always allow ↵Sven Gothel2013-12-011-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | switching to other applications via ALT-TAB As described @ <http://forum.jogamp.org/Regression-of-alwaysOnTopBug-tp4030735p4030738.html>, we shall not steal the desktop in fullscreen mode via 'alwaysontop'. Latest tests on X11/GNU/Linux and Windows7 - before this patch: With default settings, i.e. alwaysontop (atop) disabled, it works as expected here, i.e.: - ALT-TAB triggers WM dialog, switching between apps. - ALT-TAB can actually switch to other apps. However, with enabled atop: - ALT-TAB triggers WM dialog, switching between apps. - ALT-TAB does _not_ switch to other apps. (*) I consider this a serious issue, since we shall not steal the desktop in fullscreen mode. This patch disables atop in fullscreen mode, i.e. (*) will switch to other apps again!
* GLJPanel.initializeBackend(offthread=true): Enable on Windows, thanks to Bug ↵Sven Gothel2013-12-011-10/+0
| | | | | | | 907 impl. DummyDispatchThread (DDT) Bug 907 implemented DDT used to create and destroy offscreen surface's dummy drawable on Windows. This enables offscreen initialization on Windows running from a short lived arbitrary thread.
* Bug 907 - Add native Windows test sending WM_GETTEXT to all windows and ↵Randolf Schultz2013-11-291-0/+34
| | | | dumping the result. If working, Bug907 is fixed and hence DDT is working.
* Bug 907 - Refine DummyDispatchThread (DDT) Handling: Proper OO integration ↵Sven Gothel2013-11-297-175/+351
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | in RegisteredClass; Safe DDT Post/WaitForReady handling and error cases ; ... Proper OO integration of DDT in RegisteredClass - DDT is optional to RegisteredClass[Factory], i.e. NEWT without DDT and DummyWindow with DDT. - Using native type DummyThreadContext per DDT passed as DDT handle to java referenced in RegisteredClass - Passing DDT handle to related native methods, if not null use DDT - otherwise work on current thread. The latter impacts CreateDummyWindow0 and DestroyWindow0. Safe DDT Post/WaitForReady handling and error cases ; ... - Wait until command it complete using a 3s timeout - Terminate thread if errors occur and throw an exception +++ Discussion: DDT Native Implementation Due to original code, the DDT is implemented in native code. Usually we should favor running the DDT from a java thread. However, since it's main purpose is _not_ to interact w/ java and the native implementation has less footprint (performance and memory) we shall be OK w/ it for now - as long the implementation IS SAFE.
* GLDrawableFactory.shutdown0() Add DEBUG line at the endSven Gothel2013-11-291-0/+3
|
* GLDrawableFactory: destroy() -> shutdownImpl() - Add DEBUG output in ↵Sven Gothel2013-11-285-8/+19
| | | | implementation
* Bug 907 - Fix regression of 'cleanup' Commit ↵Sven Gothel2013-11-281-0/+1
| | | | 52c95c19dbd69a7fc6b307d2b2db357ceb43ddf5
* Bug 907 - Cleanup Commit e9c711a86aa05f4f24c69972532833f5a98911a3Sven Gothel2013-11-282-128/+125
| | | | | | | | | | | | | | | | | | | | | | | | Cleanup Commit e9c711a86aa05f4f24c69972532833f5a98911a3: - Fix while loop in SendCloseMessage (native) - static 'threadid' must be volatile - Whitespace - Redundancy - CreateDummyWindow - Scope (java, move JNI funcs back to private) - Remove [invalid] pointer usage (native) - ThreadParam's threadReady and hWndPtr shall not be pointers - invalid - No need to use a threadReady pointer. - Validate threadid (native) TODO: - Make 'native dispatch thread' optional - Store 'native dispatch thread' in window class
* Bug 907 - Initial patch allowing Jogl to respond to other applications that ↵Randolf Schultz2013-11-282-14/+194
| | | | try to retrieve window names
* Fix Bug 902: FFMPEGMediaPlayer uses IOUtil.decodeURIIfFilePath(uri) to ↵Sven Gothel2013-11-283-10/+39
| | | | decode proper file-scheme if applicable - otherwise encoded ASCII URI.
* Refine DemoBug910ExtendedAWTAppletLifecycleCheck (commit ↵Sven Gothel2013-11-261-6/+16
| | | | 9310b11b2b6e1e89fa5ed9b8de26e56ff6a6b262): Test start/stop balance.
* Bug 910: Add Standalone Extended Applet Lifecycle Validation TestSven Gothel2013-11-261-0/+224
| | | | | | | | | | | | | | | Test is online @ http://jogamp.org/deployment/test/bug910/ Test validates the state of the added component: TC1 - addNotify() and removeNotify() has been called from AWT-EDT. TC2 - removeNotify() is not called before Applet.destroy() Test also validates the Applet state: TA1 - isActive() TA2 - init count TA3 - start count TA4 - stop count TA5 - destroy count
* Workaround Bug 910 (IcedTea-Web): NewtCanvasAWT shall postpone JAWTWindow ↵Sven Gothel2013-11-252-20/+25
| | | | | | | | | | | | | | | | | destruction via explicit set flag. IcedTea-Web_1.5pre+rbc73a1362e9c still issues NewtCanvasAWT.removeNotify() before before Applet.destroy(), i.e. removes NewtCanvasAWT from the Container ahead of time (Applet protocol destroy()). However, it fixes the non AWT-EDT issue, i.e. calls NewtCanvasAWT.removeNotify() from the actual AWT-EDT - good. Since the root cause still exist, we cannot use heuristics as described in Bug 910 comment 9, but need to set a flag in NewtCanvasAWT to skip JAWT destruction and remove it latter within Applet.destroy(). NewtCanvasAWT.removeNotify.0 - isApplet true @ [AWT-EventQueue-0, isAWT-EDT true]
* Bug 672 (NewtCanvasSWT): Reuse SWTAccessor.isOS_TYPE ; Impl ↵Sven Gothel2013-11-257-343/+312
| | | | | | | | | | | | | | | | | | | | | NW.getLocationOnScreen(..) for X11 and Windows ; Allow unit test to run on all platforms. - Reuse SWTAccessor.isOS_TYPE (public now) - Impl NW.getLocationOnScreen(..) for X11 and Windows reusing existing native code - Allow unit test to run on all platforms. Note: NewtCanvasSWT unit tests require a 'wait for realized' while SWT dispatching. Otherwise the 'sash unit test' will fail since realiziation happens later, at least on X11. Hence extended AWTRobotUtil.waitForRealized(..) to use a 'waitAction' which is used here w/ special SWT dispatch Runnable. AWTRobotUtil.waitForRealized(..) operates on time-delta instead of iteration-counter, allowing above 'waitAction' Runnable. AWTRobotUtil.waitForRealized(..) removed 2nd 'glad.isRealized()' loop ..
* Bug 672: Move Unit Tests to appropriate SWT package and prepent Test so they ↵Sven Gothel2013-11-252-6/+6
| | | | get picked up by our unit test run
* Bug 672 (NewtCanvasSWT ignore windowing offset on OSX').Petros Koutsolampros2013-11-243-1/+792
| | | | | | | | | | | The NewtCanvasSWT is now brought into place by the parent SWT Composite and the super SWT Canvas it extends. Also added two test cases. One with a simple SashForm and the NewtCanvasSWT in the second cell, and another with the NewtCanvasSWT in a Composite, that Composite now in the second cell of the SashForm. The second test is necessary because the NewtCanvasSWT does not receive SWT.Resize events in this configuration, but only SWT.Paint ones (a behaviour inherited from the super SWT Canvas)
* Workaround Bug 910 (IcedTea-Web): NewtCanvasAWT shall postpone JAWTWindow ↵Sven Gothel2013-11-231-29/+88
| | | | destruction if removeNotify() is called from non AWT-EDT
* JOGLNewtAppletBase's add/remove 'reparentHome WindowListener' at start()/stop()Sven Gothel2013-11-231-20/+21
|
* JOGLNewtApplet1Run: Perform AWT Operations on AWT-EDT ; Remove redundant ↵Sven Gothel2013-11-231-32/+54
| | | | explicit call to reparentWindow(null) @ destroy
* JOGLNewtAppletBase's windowDestroyNotify(): Double check 'awtParent' before ↵Sven Gothel2013-11-231-12/+13
| | | | reparenting 'back to parent'
* AWTWindowClosingProtocol: Hold Window reference impl. is listening to to ↵Sven Gothel2013-11-231-17/+14
| | | | properly removeClosingListener() (and replace boolean state)
* Bug 909 - Reccreate GLJPanel's BufferedImage is no more sourced by singleton ↵Sven Gothel2013-11-213-21/+236
| | | | | | | | | | | | AWTGLPixelBuffer GLJPanel must validate whether it's local BufferedImage's DataBuffer is sourced by the current singleton AWTGLPixelBuffer. Case: GLJPanel-B has created a new singleton AWTGLPixelBuffer w/ increased size. Previous created GLJPanel-A's local BufferedImage's DataBuffer is no more sourced by the singleton AWTGLPixelBuffer and hence must be re-created.
* NewtCanvasAWT: Remove useless block in else branchSven Gothel2013-11-181-6/+3
|
* jogl: push other call to clearGlobalFocus to the AWT EDTHarvey Harrison2013-11-181-1/+1
| | | | | | | | | Follow-on to commit: d544c839f6df10f20977c786a446833f3aa7ef13 (jogl: do the clearGlobalFocusOwner() call on the AWT EDT in NewtCanvasAWT) Likely this won't hurt anything. Signed-off-by: Harvey Harrison <[email protected]>
* jogl: do the clearGlobalFocusOwner() call on the AWT EDT in NewtCanvasAWTHarvey Harrison2013-11-181-1/+9
| | | | | | | Otherwise we can deadlock in the native focusrequest calls from the AWT thread, see bug 879 for the details. Signed-off-by: Harvey Harrison <[email protected]>
* jogl: simplify conditional that repeats test for isOnScreenHarvey Harrison2013-11-181-1/+2
| | | | | | | | | | | | if (isOnscreen) else if (!isOnScreen) change to if (isOnscreen) else Signed-off-by: Harvey Harrison <[email protected]>
* jogl: add missing @Override annotation in NewtCanvasAWTHarvey Harrison2013-11-181-0/+2
| | | | Signed-off-by: Harvey Harrison <[email protected]>
* Fix Bug 893 - NewtCanvasAWT Lifecycle Race Condition (NPE on shutdown ↵Sven Gothel2013-11-181-162/+185
| | | | | | periodically) As suggested: Employ synchronization on lifecycle actions _and_ perform destroyImpl(..) always on AWT-EDT to avoid a deadlock.
* Bug 890 - GLContextImpl's Version Validation: Only validate Integer based ↵Sven Gothel2013-11-181-7/+17
| | | | | | Version if requested context or string-version is >= 3.0 .. otherwise, spec doesn't require integer based version to work!
* EGLGraphicsConfiguration: Add deauled DEBUG output for failed EGL-Config QueriesSven Gothel2013-11-181-4/+41
|
* NEWT WindowImpl: Move consumePointerEvent(..) below doPointerEvent(..) to ↵Sven Gothel2013-11-181-109/+109
| | | | easy editing/review
* NEWT Event Tests: Move TestParentingFocus* to event test packageSven Gothel2013-11-183-3/+4
|
* NewtCanvasAWT: Add method of 'isAWTEventPassThrough()', used in unit tests ↵Sven Gothel2013-11-183-2/+25
| | | | to fix event validation for offscreen mode (OSX/CALayer)
* NEWT AWTAdapter*: Don't act if not setup (due to lazy setup mode), refines ↵Sven Gothel2013-11-185-2/+32
| | | | commit 5c6c11abf643013976ecbc0df463a923a1f52696
* NewtCanvasAWT: Use final AWT[Key|Mouse]Adapter and set downstream lazily; ↵Sven Gothel2013-11-183-22/+35
| | | | Consume AWT KeyEvents in downstream mode; Test respects 'consumed' key events.
* NEWT AWTAdapter: Add notion of consuming the AWT InputEvent (will be used ↵Sven Gothel2013-11-1810-150/+285
| | | | for key events); Allow AWTAdapter to be lazily setup w/ downstream object.
* Fix Bug 879 Regression (2/2) - NewtCanvasAWT.FocusAction must take focus ↵Sven Gothel2013-11-182-4/+20
| | | | | | | | | when in offscreen-mode (OSX/CALayer) NewtCanvasAWT.FocusAction must take focus when in offscreen-mode (OSX/CALayer) since the NEWT window _is_ offscreen (no input events) and AWT events are translated to NEWT. Regression of commit 0be87f241c0f0b2f5881d9a602ce12378b8e453d