| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
SetCursor(..) if HTCLIENT && isChildWin && customCursor
|
|
|
|
|
|
|
|
| |
(NativeWindow GDI / NEWT )
.. this allows using the icon definition of WNDCLASSEX instead of setting them at CreateWindow0(..).
- NativeWindow GDIUtil/RegisteredFactory uses WNDCLASSEX and Small/Big Defailt Icons
|
| |
|
|
|
|
|
|
|
| |
Reparenting CHILD -> TOP
Hiding the window via 'ShowWindow(.., SW_HIDE)' before reparenting and subsequent
style change incl. visibility renders the Window-Icon visible.
|
|
|
|
| |
i.e. 'jailed'
|
|
|
|
|
|
|
|
|
|
| |
OffscreenLayerSurface (OSX CALayer) w/ JAWTWindow Path
Add setCursor(..) and hideCursor() to OffscreenLayerSurface interface,
impl. in JAWTWindow w/ AWT.
This allows an OSX NEWT Window using CALayer (i.e. NewtCanvasAWT)
to have setPointerIcon(..) and setPointerVisible(..) functionality!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and Issues
- Refine Display.PointerIcon: Complete type allowing re-creation
- Add associated Display reference
- Add used IOUtil.ClassResources reference
- Add isValid()/validate() methods for recreation
- Refine API doc
- Move Display.destroyPointerIcon(PointerIcon) -> PointerIcon.destroy()
- Move DisplayImpl.PointerIconImpl -> PointerIconImpl (own source file)
- Creation/Destruction and setting of PointerIcon happens on EDT
- DisplayImpl.shutdownAll() and Display.destroy() calls destroyAllPointerIconFromList
- WindowDriver.setPointerIconImpl: Validates PointerIconImpl (i.e. re-creates if required)
- Fix 'initial' window.setPointerIcon(..) before createNative(..),
tested w/ TestGearsES2NEWT
- OSX Native Code:
- Move mouse and pointer-state handling from NewtMacWindow -> NewtView class
to retain states (pointer handle, pointer visibility, etc) when reparenting.
Reparenting will move an exisiting NewtView into a new NewtMacWindow.
- Enable all mouse move events:
- NewtView::mouseEnter [nsWin makeFirstResponder: nsView];
- NewtView::mouseExited if( !mouseConfined ) { [nsView resignFirstResponder]; }
- NewtView::mouseMoved issued [myCurser set] if required, fixing
OSX issue not updating NSCursor properly.
- MacWindow:
- Test NewtMacWindow, NewtView and NSCursor handles before usage
- Fix DBG_PRINT(..) warnings
|
|
|
|
| |
which is always 4 (RGBA/BGRA
|
|
|
|
| |
which is always 4 (RGBA/BGRA)
|
| |
|
| |
|
| |
|
|
|
|
| |
PointerIcon's size and hotspot maybe be useful for certain user-app calculation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pointer Icons
- Utilizing JOGL's PNG decoder for all icons, if available.
- Application/window icons:
- Providing default application/window icons in 16x16 and 32x32 size
- NewtFactory.setWindowIcons(..) or property 'newt.window.icons' maybe used to override default icons.
- Using icons at application/window instantiation
- Display.PointerIcons:
- NativeWindow Win32 WindowClass no more references a default cursor
in favor of fine grained cursor control [in NEWT]
- Display provides create/destroy methods,
where display destruction also releases open PointerIcon references.
- Window.setPointerIcon(..) sets custom PointerIcon
- Implemented Platforms
- X11
- Windows
- OSX
- Manual Test: TestGearsES2NEWT (Press 'c')
|
|
|
|
| |
WindowImpl initialization)
|
| |
|
|
|
|
| |
~2 kB)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GL4NeedsGL3Request not set
GL3 core version validation failed due to missing braces around 'isES' _and_ term,
where the latter consist out of 2 _or_ terms testing version mismatch.
On OSX we validate a GL3 core context first and expect it to return a GL4 version if available,
which in turn triggers the quirk GL4NeedsGL3Request.
This behavior was disabled due to above mentioned bug, where the unqual major version caused
the validation to fail.
TestGLProfile01NEWT: Fixed 'GL4ES3' test, where 'GL4ES3' is only available
if extension <code>GL_ARB_ES3_compatibility</code> is available as well.
|
|
|
|
| |
3d0ab3e6263dfdbb9dd0014443ad28b1c9b0c238
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Map ES2 -> ES3 GLProfile, if available
- EGLDrawableFactory: Don't query ES2 if ES3 is available
- Fix queries and get methods (GL, GLContext and GLProfile):
- glES3.isGLES2()==true and glES3.getGLES2()!=null
- ctxES3.isGLES2()==true,
- glES3Profile.isGLES2()==true
- Enhance Unit test: TestGLProfile01NEWT
- Test all GLProfile availability combinations
based on implementing GLProfile
- Test all GLProfile's isGL*()
based on highest GLProfile identity
- Test all GL's isGL*()
based on highest GL identity.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
validation
Refine GLContextImpl.setGLFunctionAvailability(..)'s ES version validation:
+ // - fail if ES major-version mismatch:
+ // - request 1, >= 3 must be equal
+ // - request 2 must be [2..3]
i.e. the following is accepted, otherwise fails:
request has
1 1
2 2,3
3 3
4 4
...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EGL_OPENGL_ES3_BIT_KHR
Add Quirk 'GLES3ViaEGLES2Config': ES3 Context is used via EGL_OPENGL_ES2_BIT and 'version 2' for create context attributes.
- GLContextImpl.setGLFunctionAvailability(..)'s ES version validation
only fails if requested major version == 1 and doesn't match.
Hence requesting major==2 and having version 3 is tolerated.
- GLContextImpl.setGLFunctionAvailability(..)'s Quirks:
requested-major < has-major -> Adding GLES3ViaEGLES2Config
- EGLDrawableFactory.mapAvailableEGLESConfig(..):
Reflects has-major version, i.e. GLES3ViaEGLES2Config situation where
an ES2 request leads to an ES3 version.
Note: All workarounds can be found via lookup of GLES3ViaEGLES2Config (as usual when using quirks).
|
|
|
|
| |
GLContextImpl's default VAO.
|
|
|
|
| |
; Block insets change while toggling fullscreen mode.
|
|
|
|
|
|
|
|
|
|
|
|
| |
attempt)
Commit c8726ef04b94ad8e66e1191a06ff793b908d130c reinforced ALWAYS_ON_TOP in native reconfig code
issued at reparenting call, which might be too early for the WM.
Perform ALWAYS_ON_TOP reinforcement from java side when reparenting CHILD -> TOP was successful
and visibility is reached. X11 only!
NewtAWTReparentingKeyAdapter: Add 'a' alwaysOnTop toggle to test w/o applet code.
|
|
|
|
| |
comments)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Persistent when Reparenting (child -> top)
- X11 Fullscreen ALT-TAB regression (no task-switcher visible)
We still need the fast reconfigure path for ALWAYSONTOP only toggle.
It was removed w/ commit c9fcc8cd510abc0cbebb872dc3e457327655e778,
which disabled toggling FULLSCREEN and ALWAYSONTOP.
Note: Another bug in Unity WM's Compiz:
'Unredirect Fullscreen Windows := True' disables
the ALT-TAB taskbar/launcher HUD rendering and subsequent task-switch.
Hence it shall be disabled .. nothing we can do here.
- ALWAYS_ON_TOP not persistent when child -> top
WM removes ALWAYS_ON_TOP state when reparenting,
hence reinforce it when Child -> Top.
|
|
|
|
|
|
|
|
|
|
|
| |
- 'tempInvisible' shall be also performed for top windows, solves Unity-WM background refresh issue
- Rename local field 'fullscreen' -> '_fullscreen' to avoid confusion
- Proper insets handling: Set 'WindowImpl.this.fullscreen = _fullscreen' only before reconfiguring,
otherwise wrong position maybe used due to wrong insets value.
Tested w/ WMs: KWin + Unity
|
| |
|
|
|
|
| |
only regard custom position as a hint (X11).
|
|
|
|
|
|
| |
focusChanged(..) if isFullscreen()
.. otherwise it will be triggered by reconfigure tasks while enabling/disabling fullscreen.
|
| |
|
|
|
|
|
|
|
|
|
| |
On/Off Cycle
Unity WM keeps the _NET_WM_STATE (_NET_WM_STATE_FULLSCREEN, ..) after fullscreen-exit
even though _NET_WM_STATE_REMOVE was issued.
Add remedy: Reparent Child -> TOP: Reset _NET_WM_STATE (! _NET_WM_STATE_FULLSCREEN, ..).
|
| |
|
|
|
|
| |
8a032a2c1f247819bdb08382fbebcc4cd896b3f2
|
|\ |
|
| |
| |
| |
| | |
Signed-off-by: Xerxes Rånby <[email protected]>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
visibility state not restored @ detach
Commit ebed9f0322e2a2279a525e04ee3875c9034a7f45 (fix for Bug 906) causes a regression
to fix for Bug 816, Bug 849 and Bug 889 (OSX CALayer Positioning and JAWTWindow visibility).
The commit adds the JAWTComponentListener instance 'jawtComponentListener'
to the component before it's assignment (duh!).
+++
Further more, detaching the JAWTComponentListener shall restore
the component's original 'local visibility state', which might got overridden
by it's 'hierarchyChanged' implementation.
+++
|
|\
| |
| | |
Fix Bug 362: calculated dimensions for MipMaps smaller than 16x16
|
| |
| |
| |
| |
| | |
Added method to calculate mipmap blocksize for uncompressed and DXTn
images
|
| |
| |
| |
| |
| |
| | |
(camera or other sources may not have duration)
Regression of commit 8a8ed735f6631b2da7bf605c5c3dda4e0fc13905
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- stopImpl() shall always issue alSourceStop(..) if state is not STOPPED
- Remove 'flush' hint for dequeueBuffer(..), we perform proper flush in respective method, see below
- flush() needs to issue:
- stopImpl() - which should already dequeue all buffers
- Explicitly dequeue all buffers: via 'alSourcei(alSource[0], AL.AL_BUFFER, 0)'
- Then dequeue manually processed buffers: dequeueBuffer( false /* wait */ );
- And dequeue _all_ buffers: dequeueForceAll();
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
; Fallback for EOS Detection ; MovieSimple uses full GLEventListener for 'Audio Only' as well to test seek
Determine StreamWorker usage after init
- To support audio only files, we need to determine to use StreamWorker
after completion of stream-init.
Fix seek(..)
- FFMPeg: pos0 needs to use aPTS for audio-only
- Clip target time [0..duration[
Fallback for EOS Detection
In case the backend does not report proper EOS:
- Utilize 'nullFramesCount >= MAX' -> EOS,
where MAX is number of frames for 3s play duraction
and where 'nullFramesCount' is increased if no valid packet is available
and no decoded-video or -audio in the queue.
- Utilize pts > duration -> EOS
MovieSimple uses full GLEventListener for 'Audio Only' as well to test seek
- Matroska seek for audio-only leads to EOS ..
http://video.webmfiles.org/big-buck-bunny_trailer.webm
- MP4 audio-only seek works
http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4
MovieSimple/MovieCube:
- Use audio-pts in audio-only to calc target time
Tested:
- A, V and A+V
- Pause, Stop and Seek
- GNU/Linux
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(seek) - Tested w/ seeking 'Audio Only' and Matroska
Test stream was default of MovieSimple:
http://video.webmfiles.org/big-buck-bunny_trailer.webm
while disabling video (-vid -2)
|
|/
|
|
|
|
|
|
| |
'getNextTexture(..)' is issued here!
Thanks to Xerxes to analyze this issue thoroughly.
TODO: Implement EOS for 'Audio Only' and test seek, pause, etc .. - Apply manual tests in MovieSimple
|
|
|
|
| |
REPARENT_HINT_BECOMES_VISIBLE to ensure GL State Preservation ; Add unit test !
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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%
|