| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
dumping the result. If working, Bug907 is fixed and hence DDT is working.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
implementation
|
|
|
|
| |
52c95c19dbd69a7fc6b307d2b2db357ceb43ddf5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
try to retrieve window names
|
|
|
|
| |
decode proper file-scheme if applicable - otherwise encoded ASCII URI.
|
|
|
|
| |
9310b11b2b6e1e89fa5ed9b8de26e56ff6a6b262): Test start/stop balance.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 ..
|
|
|
|
| |
get picked up by our unit test run
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
destruction if removeNotify() is called from non AWT-EDT
|
| |
|
|
|
|
| |
explicit call to reparentWindow(null) @ destroy
|
|
|
|
| |
reparenting 'back to parent'
|
|
|
|
| |
properly removeClosingListener() (and replace boolean state)
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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]>
|
|
|
|
|
|
|
| |
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]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
if (isOnscreen)
else if (!isOnScreen)
change to
if (isOnscreen)
else
Signed-off-by: Harvey Harrison <[email protected]>
|
|
|
|
| |
Signed-off-by: Harvey Harrison <[email protected]>
|
|
|
|
|
|
| |
periodically)
As suggested: Employ synchronization on lifecycle actions _and_ perform destroyImpl(..) always on AWT-EDT to avoid a deadlock.
|
|
|
|
|
|
| |
Version if requested context or string-version is >= 3.0
.. otherwise, spec doesn't require integer based version to work!
|
| |
|
|
|
|
| |
easy editing/review
|
| |
|
|
|
|
| |
to fix event validation for offscreen mode (OSX/CALayer)
|
|
|
|
| |
commit 5c6c11abf643013976ecbc0df463a923a1f52696
|
|
|
|
| |
Consume AWT KeyEvents in downstream mode; Test respects 'consumed' key events.
|
|
|
|
| |
for key events); Allow AWTAdapter to be lazily setup w/ downstream object.
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
613e33ee8ffc1f2b9c5db1e1b5bb5253a159ed6d
Commit 613e33ee8ffc1f2b9c5db1e1b5bb5253a159ed6d introduced 'memcpy' usage in Xmisc.c which could create a GLIBC > 2.4 dependency.
Include GlueGen's glibc-compat-symbols.h to remove such dependency.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
multiple threads; Fix Bug 892: Reduce Focus Hopping
Since we manage focus key traversal ourselves w/o requiring the AWT
component to have the focus[1],
we simply can drop requesting the focus for 'focus hopping' NEWT -> AWT -> NEWT[2].
Further more, 'MenuSelectionManager.defaultManager().clearSelectedPath()'
must be performed on AWT-EDT w/o blocking. Otherwise it may perform blocking tasks on AWT-EDT.
[1] Commit cb7118fc875b6722803e4b11d5681671962a8d3a
introduced function to query the next or previous 'to be focused' component:
AWTMisc.getNextFocus(..) .. etc.
[2] Focus hopping is also addressed in Bug 892
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Support 'Continue Drag on Exit'
- Track dragging operation, allow exterior dragging
- Hence track EXIT (see below)
- Windows:
- Capture mouse for exterior dragging
- Only 'NewtWindows_trackPointerLeave' if 'entering'
- Simplify touch: No 'inside' check - Not required.
- Consistent Mouse ENTER/EXIT
- Track ENTER/EXIT and synthesize if required, drop duplicate
- OSX benefits, since it never produced ENTER/EXIT events
- AWT (or other TK) translated events beahve equal now.
- Required for EXIT event after ending exterior dragging and final RELEASE
Tests: Passed unit tests 'junit.run.newt.event' on
- GNU/Linux
- Windows7
- OSX 10.7
Tested exterior tracking manually w/ NEWT TestGearsES2NEWT and TestGearsES2NewtCanvasAWT:
- GNU/Linux
- Windows7 (mouse)
- Windows8.1 (touch)
- OSX 10.7
|
|
|
|
|
|
|
|
|
|
| |
JAWTWindow.destroy() - GLCanvas Recreation Case
In case a JAWTWindow owner recreates itself, destroying JAWTWindow must detach the
Component- and HierarchyListener from the AWT component!
Test TestBug816GLCanvasFrameHoppingB849B889AWT
shows properly detaching listener at jawtWindow destruction.
|
| |
|
| |
|
|
|
|
|
|
| |
by default (2/2)
Property 'jogl.gljpanel.noverticalflip' will set the skipGLOrientationVerticalFlip default to true - intended for perf. testing of existing applications
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
offscreen backend
Add new GLJPanel method 'setSkipGLOrientationVerticalFlip(..)':
/**
* Set skipping {@link #isGLOriented()} based vertical flip,
* which usually is required by the offscreen backend,
* see details about <a href="#verticalFlip">vertical flip</a>
* and <a href="#fboGLSLVerticalFlip">FBO / GLSL vertical flip</a>.
* <p>
* If set to <code>true</code>, user needs to flip the OpenGL rendered scene
* <i>if {@link #isGLOriented()} == true</i>, e.g. via the PMV matrix.<br/>
* See constraints of {@link #isGLOriented()}.
* </p>
*/
public final void setSkipGLOrientationVerticalFlip(boolean v) {
GearsES2: Handles 'flipVerticalInGLOrientation'
Unit test 'TestPerf001GLJPanelInit02AWT' validates and measures performance.
|
|
|
|
| |
consumePointerEvent(..) impl. details
|
| |
|
|
|
|
| |
GLSharedContextSetter (remove <> in links, more details on Immersion.16.
|
|
|
|
|
|
|
|
|
| |
moves between two JFrame
When JAWTWindow's visibility tracker updates component's local visibility,
it should read it's local visibility state instead 'trusting' the passed state.
Make JAWTWindow's visibility tracker DEBUG output more brief for readability.
|
|
|
|
| |
position .. (to be refined)
|