| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
available EGL/FFMPeg. WIP!
Off-thread decoding:
If validated (impl) textureCount > 2, decoding happens on extra thread.
If decoding requires GL context, a shared context is created for decoding thread.
API Changes:
- initGLStream(..): Adds 'textureCount' as argument.
- TextureSequence.TexSeqEventListener.newFrameAvailable(..) exposes the new frame available
- TextureSequence.TextureFrame exposes the PTS (video)
Implementation:
- 'int validateTextureCount(int)': implementation decides whether textureCount can be > 2, i.e. off-thread decoding allowed,
default is NO w/ textureCount==2!
- 'boolean requiresOffthreadGLCtx()': implementation decides whether shared context is required for off-thread decoding
- 'syncFrame2Audio(TextureFrame frame)': implementation shall handle a/v sync, due to audio stream details (pts, buffered frames)
- FFMPEGMediaPlayer extends GLMediaPlayerImpl, no more EGLMediaPlayerImpl (redundant)
+++
- SyncedRingbuffer: Expose T[] array
+++
TODO:
- syncAV!
- test Android
|
|
|
|
| |
Gong manual testing)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- AudioSink w/ AudioFrame and formats public
- ALAudioSink uses a circular buffer now, hence relaxes the one-threaded player mode
- FFMPEGMediaPlayer uses multiple audio frames (equal to the ALAudioSink number)
and wraps data to NIO buffer w/o copy.
- FFMPEGMediaPlayer audio threading currently disabled: distorted sound
Seems that the ALAudioSink's circular buffer usage is good enough for now.
- Verbosity only w/ DEBUG flag
- New SyncedRingbuffer for effcient synced buffering
|
| |
|
| |
|
|
|
|
| |
offscreen, i.e. no on- offscreen switch possible.
|
| |
|
|
|
|
| |
deprecated in 130 and removed in 150.
|
|
|
|
|
|
| |
add GLProfile argument, similar to canCreateFBO(..)
In case a compatible non-core profile is requests, canCreateGLPbuffer(..) returns false on OSX.
|
|
|
|
|
|
|
|
|
| |
case proper ES3_compat is given.
isGLES3Compatible() and isGL4ES3() of GLBase _and_ GLContext
includes [ GL >= 4.3, GL >= 3.1 w/ GL_ARB_ES3_compatibility and GLES3 ].
Tested GL 'aliasing' w/ TestGLProfile01NEWT, i.e. isGL*() and getGL*().
|
| |
|
|
|
|
| |
version number, use VBO only, ...)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ES3 / GL4.3:
- Update all EGL, GLX, WGL and GL (desktop and mobile) khronos headers to latest version.
- GL3/gl3* -> GL/glcorearb*
- Explicitly preserve ES2_compatibility and ES3_compatibility in header,
most extension grouping was removed in new headers.
- Always load all GLHeader to ensure proper extension association across all profiles.
- Unified method signatures
- Added GL_EXT_map_buffer_range to core
- Using common 'glMapBufferImpl(..)' for all glMapBuffer(..) and glMapBufferRange(..) impl.
- Init necessary fields of GL instances via 'finalizeInit()' called by reflection, if exist.
This allows removing initialization checks, i.e. for all buffer validations.
- BuildStaticGLInfo: Can handle new GL header structure, i.e. one CPP extenstion block incl. define + funcs.
- GLJavaMethodBindingEmitter: Simply print the
- No GL duplication due to new intermediate interfaces, see below
- OO lineare inheritance (Added GL2ES3, GL3ES3 and GL4ES3 intemediates):
GLBase - GL - GL2ES2 - GLES2
GLBase - GL - GL2ES2 - GL2GL3 - [ GL2, GL3 ]
GLBase - GL - GL2ES2 - GL2ES3 - GL3ES3 - [ GL3 ]
GLBase - GL - GL2ES2 - GL2ES3 - GL3ES3 - GL4ES3 - [ GLES3, GL4, .. ]
- Expose 'usable' intermediate interfaces GL3ES3 and GL4ES3 in GLBase/GLProfile/GLContext
via is*() and get*().
- GLContext*:
- isGL3core() is true if [ GL4, GL3, GLES3 ] (added GLES3)
- Added ctxProfile argument to allow handling ES versions:
- getMaxMajor(..), getMaxMinor(..), isValidGLVersion(..) and decrementGLVersion(..)
- mapGLVersions(..) prepared for ES ARB/KHR validation
- EGLContext checks ES3 (via old ctx's GL_VERSION)
- ExtensionAvailabilityCache adds GL_ES_Version_X_Y for ES.
- Prelim tests w/ Mesa 9.1.3
GL Version 3.0 (ES profile, ES2 compat, ES3 compat, FBO, hardware) - OpenGL ES 3.0 Mesa 9.1.3 [GL 3.0.0, vendor 9.1.3 (Mesa 9.1.3)]
- TODO:
- Use KHR_create_context in EGLContext.createContextARBImpl(..)
- More tests (Mobile, ..)
+++
Misc:
- GLContext*:
- Complete glAllocateMemoryNV w/ glFreeMemoryNV.
|
| |
|
|
|
|
| |
pulling GLAD from it.
|
|
|
|
| |
in manual mode.
|
|
|
|
|
|
| |
preferred mode and normal rotation using RandR 1.3
.. using commandline processing w/ 'xrandr'
|
|
|
|
| |
MonitorMode test cases reducing impact.
|
|
|
|
|
|
|
|
| |
UITestCase's AfterClass if available (X11).
In case a MonitorMode test case fails, force XRandR reset '-s 0 -o normal' at end of test class if X11.
Unit Test: TestScreenMode00cNEWT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WeakReference, i.e. higher retention of Display instances.
- WeakReference Change 99479bf3197cde8e89c5b499d135417863d521c7
- Refines commits:
feb352145af1643a57eaae99c0342e6f5e0f2a2e
dec4b02fe4b93028c85de6a56b6af79601042d6e
433e3914324b90c910b018bb7d9d80e814c67123
Reviews EDTUtil API and usage:
- less confusing / more determined EDTUtil API
- EDTUtil's thread shall only be reset and started when required (-> lazy)
- EDTUtil's instance in Display shall be handled thread safe w/o extra blocking
- EDTUtil's implementations (Default, SWT and AWT) shall be aligned / similar as much as possible
Further note: SWT's EDTUtil (NewtCanvasSWT) shall not use a reused Display instance due to it's
custom SWTEDTUtil. We may need to disable the ref. cache if custom EDTUtil (setEDTUtil)
is intended (used).
|
| |
|
| |
|
|
|
|
| |
already failed
|
| |
|
|
|
|
| |
validating active count.
|
|
|
|
| |
(after mode change) has been destroyed - avoiding conflicts w/ other tests (off thread destruction)
|
|
|
|
| |
some platforms (NV driver) - Tolerated for now
|
|
|
|
| |
too much
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At MonitoMode change, reset fullscreen if FLAG_IS_FULLSCREEN_SPAN is supported.
- Bug 770: Only use FLAG_IS_FULLSCREEN_SPAN if required
- If X11 WindowDriver _and_ virtual-screen-size > fullscreenViewport,
- else we still use _NET_WM_STATE_FULLSCREEN on X11!
- Bug 771: At MonitoMode change, reset fullscreen if FLAG_IS_FULLSCREEN_SPAN is supported
- Since we may still use _NET_WM_STATE_FULLSCREEN on X11:
- Pause fullscreen at monitorModeChangeNotify(..)
- Resume fullscreen at monitorModeChanged(..)
|
|
|
|
|
|
|
|
|
|
| |
- TestScreenMode01aNEWT and TestScreenMode01dNEWT
test auto-reset (destroying last Screen ref. reinstates orig MonitorMode)
- Other tests do manual reset.
- Add ant test target 'junit.run.newt.monitormode'
to test only monitor-mode / fullscreen cases
|
|
|
|
| |
Gears* RedSquare*
|
|
|
|
|
|
|
|
|
| |
- Quaternion.isEmpty()
- Texture.dispose(GL)
- GLContext.getGLVersionMajor() / ..Minor()
- GLContextImpl.bindPbufferToTexture() / releasePbufferFromTexture()
- MouseEvent.getWheelRotation()
-
|
|
|
|
|
|
|
|
|
| |
and CR/ENTER are printable for NEWT KeyEvent and font handling. Fix regression.
- Original behavior was treating CR/ENTER them as printable, lets keep it this way.
- KeyEvent: Query these 3 whitespaces upfront, no need to incl. them in 'nonPrintableKeys'.
- Fix regression: Native VK_ENTER was not change in commit 4c34f5980bddcdc84b10cb3bcbb96b365b9d471e.
|
|
|
|
| |
texture alpha properly (pre-multiply), due to lack of ALPHA_BLENDING.
|
| |
|
|
|
|
|
|
|
| |
some X11 tests systems, artifacts could be experienced.
X11 Test systems w/ AMD fglrx and Intel Mesa, the rotated height
is cut off .. probably due to bug of driver code and rotation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug 770:
X11Window.c:
- Request focus _before_ enabling EWMH flags (fullscreen or above) after resize
and temporary invisibility.
This actually allows us to keep the focus after resize and repositioning!
- Set _NET_WM_BYPASS_COMPOSITOR implicit analog to _NET_WM_STATE_FLAG_ABOVE
- Clean up _NET_WM_* flag names, avoiding name space collisions, i.e. adding FLAG!
- Remove dead _NET_WM_STATE setting via direct window property (not working anyways)
- Remove dead code: FS_GRAB_KEYBOARD
X11/WindowDriver.java:
- Enable _NET_WM_STATE_FLAG_ABOVE temporarily if
FLAG_IS_FULLSCREEN && !FLAG_IS_ALWAYSONTOP
- Override focusChanged(..) to react on focus lost/gained
in case of temporarily enabled _NET_WM_STATE_FLAG_ABOVE.
If focus is lost, disable _NET_WM_STATE_FLAG_ABOVE,
otherwise re-enable it.
WindowImpl.java:
- FullscreenAction.run: Always use 'FLAG_IS_FULLSCREEN_SPAN'
+++
Bug 771:
WindowImpl.java:
- Keep fullscreenMonitors and fullscreenUseMainMonitor values intact,
allowing them to be tracked. Remove duplicates in FullscreenAction class.
- MonitorModeListenerImpl.monitorModeChanged:
Add fullscreen path: If the changed monitor is part of fullscreenMonitors,
recalculate the viewport union and reset position and fullscreen-size.
- MonitorModeListenerImpl: Try to regain focus after successful mode change.
|
|
|
|
|
|
|
|
|
|
|
| |
MonitorMode* ; Sort List<MonitorMode> in descending order to be well determined.
Add Comparable<?>: Point*, Dimension*, Rectangle*, SurfaceSize* and MonitorMode*:
- Compare square values
- See API doc for order of special semantics (flags, rotation, ..)
Sort List<MonitorMode> in descending order to be well determined:
- Removes order by native mode id, give user a reliable natural order.
|
| |
|
|
|
|
| |
to class header.
|
|
|
|
| |
to class header.
|
|
|
|
| |
Window/Linux ..
|
| |
|
| |
|
| |
|
|
|
|
| |
traversal validation checks.
|
|
|
|
| |
traversal validation checks.
|