| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
GLBufferStateTracker needs to support ARB_indirect_parameters,
i.e. checkTargetName(target) and getQueryName(target)
need to recognize GL4.GL_PARAMETER_BUFFER_ARB.
|
| |
|
| |
|
|\
| |
| | |
Removing double quotes from included shaders
|
| |
| |
| | |
https://jogamp.org/bugzilla/show_bug.cgi?id=1283
|
| |
| |
| |
| | |
NoDoubleBufferedPBuffer no more required for Mesa >= 18.2.2
|
|\ \
| | |
| | | |
Fix BugZilla bug 1357
|
| |/ |
|
| |
| |
| |
| | |
Also refactor query to jogamp.nativewindow.BcmVCArtifacts
|
|\ \
| | |
| | | |
Change BCM VC IV detection to handle presence of vc4 DRI module
|
| |/
| |
| |
| | |
When the VC4 DRM driver isn't loaded, we want to load the VC IV GLES2 driver, which is - unfortunately - only available as libGLESv2.so.
|
|/ |
|
|
|
|
| |
OpenAL Version
|
| |
|
| |
|
|
|
|
|
|
|
| |
Only add the required direct interfaces / implementations
to interface / class derivations, not polluting overview in IDEs.
Aligns w/ commit bf76b6b77f078178fc5e6a42c70d354369004b94
|
|
|
|
| |
GL_ARB_ES3_2_compatibility -> [GL|GLContext].isGLES32Compatible()
|
|
|
|
| |
GLNameResolver: Add all known vendor extensions
|
|
|
|
| |
GLEmitter: Don't RenameExtensionIntoCore for IgnoredExtensions
|
|
|
|
| |
(index) as filename for OSX
|
| |
|
| |
|
|
|
|
| |
GLMediaPlayerImpl.updateAttributes avoid div-by-zero (fps inf)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
visibility
Experimenting w/ no GLEventListener attached to an GLAutoDrawable,
e.g. GLWindow (onscreen), GLJPanel (fbo offscreen),
indeed on some GL implementations the default framebuffer is uninitialized
and hence shows garbage.
GLDrawableHelper.setViewportAndClear(..)
- Clear framebuffer after setting viewport
- Called from:
- public final void init(..)
- public final void reshape(..)
- Method is used independent of GLEventListener,
hence this simplifies implementation: removes 'setViewport' criteria
for init, display, reshape: it is always performed!
Note: We only attempt to help against leaking un-initialized framebuffer content
not against user-app faults, we do not clear a 2nd-buffer (double-buffering).
Note: We may still be late at resize, i.e. small noisy flickering might be visible.
This might be due to lack of proper vsync.
|
| |
|
|
|
|
|
|
|
|
| |
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'
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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!
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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 ..
|
|
|
|
| |
glDataType GL_UNSIGNED_INT_8_8_8_8_REV
|
|
|
|
| |
throwing an exception, it is OK not to have ffmpeg/libav
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
profile
GL_KHR_debug <https://www.opengl.org/registry/specs/KHR/debug.txt>
GL_KHR_debug shall be favorized before
- GL_ARB_debug_output
- GL_AMD_debug_output
Allow GL_KHR_debug for GL2GL3 and GL2ES2 profiles,
i.e. including ES profiles: GLES2, GLES3.
GL_ARB_debug_output and GL_AMD_debug_output
are only allowed for desktop GL2GL3 profiles.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Via GLDrawableFactory[Impl] the following details are considered
while GLContextImpl.mapGLVersions(..):
- hasOpenGLDesktopSupport
If false, skip OpenGL Desktop queries
- hasOpenGLESSupport
If false, skip OpenGL ES queries
- hasMajorMinorCreateContextARB
If false, reduce [maxMajor.maxMinor..minMajor.minMinor]
iteration, reducing to [maxMajor..minMajor],
usually only one query.
|
|
|
|
|
|
| |
Need to handle GLRendererQuirks.GLES3ViaEGLES2Config,
i.e. a created ES3 context via ES2 request must result in
mapping ES3 as well.
|
|
|
|
|
|
|
|
| |
b8ba30a0bc7cbd36abba37d72b45f78eb989e994)
commit b8ba30a0bc7cbd36abba37d72b45f78eb989e994's
GLContextImpl.createContextARBMapVersionsAvailable(..)
accepted minMajor=2 for ES3 detection -> wrong of course.
|
|
|
|
|
|
|
|
|
| |
(adding dummy methods)
Commits deff49c901915e007f43a1df1a0d217a786e9f06 and 6ab634654f58afcf4549fcd1a796a0f9fd13298c
changed/removed a few protected methods of public classes ..
Re-added dummy methods .. shall be removed for next 2.4.* version
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It may happen that an GLAutoDrawable is being pulled concurrently from the
animators list, in which case an IndexOutOfBoundsException might be thrown.
Example:
[junit] *** AWTRobotUtil: UncaughtException (this Thread main-AWTAnimator#00) : Thread <main-AWTAnimator#00>, java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
[junit] java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
[junit] at java.util.ArrayList.rangeCheck(ArrayList.java:653)
[junit] at java.util.ArrayList.get(ArrayList.java:429)
[junit] at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:68)
[junit] at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451)
[junit] at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:198)
[junit] at java.lang.Thread.run(Thread.java:745)
|
|
|
|
| |
on device (surfaceless); Remove one try-finally block
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- GLProfile
- Add 'hasGL234OnEGLImpl' handling, i.e. GL* profiles on EGL devices
- Properly handle EGL's 'GLDynamicLookupHelper' queries for ES2, ES1 and GL* profiles,
i.e. allow each one to fail seperately.
- Merge computed EGL-Profile-Map (1) and Desktop-Profile-Map (2)
per device, instead of just using the last computation,
preserving and favoratizing the Desktop-Profile-Map.
- GLContextImpl.mapGLVersions(..): Map ES* profiles if having an EGLGraphicsDevice
and not disabled via GLProfile.disableOpenGLES.
- EGLContext
- createContextARBImpl(..): Use the EGL_CONTEXT_MINOR_VERSION_KHR if supported
- GLContext* accessibility: Remove unused entries, add newly used ones
- EGLDrawableFactory
- Fix a bug regarding detection of 'OpenGL' API for EGL
- SharedResource: Use detailed knowledge of each profile
- Only create one drawable and context for probing maximum,
utilizing 'GLContextImpl.MappedGLVersionListener'
to detect all mapped profiles for 'SharedResource' instance.
- Detect whether the probed/mapped device
can be mapped to the default-EGL-device, i.e.:
- current device is not the default-EGL-device
- default-EGL-device is valid and could be mapped (beforehand)
- same connection
In this case, no probing/mapping is performed
and the default-EGL-device mapped data being reused and remapped
to the requested device.
- When mapping/probing, attempt to use a surfaceless context first,
allowing same codepath for default-EGL-device and native-device (X11, ..).
This avoids using pbuffer if using default-EGL-device
and a dummy onscreen window if using a native-device (X11, ..).
If this fails, continue as usual ..
- default-EGL-device -> pbuffer
- native-device (X11, ..) -> dummy onscreen window
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
355.06' @ probeSurfacelessCtx
Refine commit e88216bd03a41480b81345ed9afc45ddea5ecfcd,
i.e. restrict new 'NoSurfacelessCtx' NVidia-Vendor criteria in GLContextImpl.setRendererQuirks(..) to
- isX11 (new)
- isDriverNVIDIAGeForce (kept)
- !(adevice instanceof EGLGraphicsDevice) (new)
Surfaceless context seems to work on NVidia 355.06 for EGL+[ES+GL].
It does not work for GLX+GL though!
TODO: Validate changing a GLContext's GLDrawable from 'onscreen' or 'offscreen'
to 'zero' (Surfaceless).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- GLContextImpl
- add 'MappedGLVersion' type, preserving information from GL profile mapping
- add 'MappedGLVersion mapAvailableGLVersion(..)'
- add 'setMappedGLVersionListener(final MappedGLVersionListener mvl)',
allowing implementations to register successfully mapped profiled.
- add 'void remapAvailableGLVersions(final AbstractGraphicsDevice fromDevice, final AbstractGraphicsDevice toDevice)',
allowing implementations to fully map one-devices profiles to another one
avoiding a redundant profile mapping (probe operation).
- 'mapGLVersions(..)'
- disable desktop-core profile mapping if GLProfile.disableOpenGLDesktop
- disable desktop-desktop profile mapping if GLProfile.disableOpenGLDesktop
- EGLDrawableFactory
- remove jogl.debug.EGLDrawableFactory.QueryNativeTK,
since it shall not be used anymore.
- Use 'NativeWindowFactory.getDefaultDisplayConnection(..)'
for default EGLGraphicsDevcie
- add 'hasFullOpenGLAPISupport()'
- Use 'EGLSurface' return type if appropriate.
|
| |
|