| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
using our OpenJFK 9 x86_64 and arm64 build.
Test demo class is 'com.jogamp.opengl.demos.ios.Hello',
residing in the new demo folder 'src/demos/com/jogamp/opengl/demos/ios/Hello.java'.
This commit does not yet include a working NEWT
specialization for iOS, but it shall followup soon.
Instead this commit demonstrates JOGL operating on
native UIWindow, UIView and CAEAGLLayer as provided by
Nativewindow's IOSUtil.
Test Video https://www.youtube.com/watch?v=Z4lUQNFTGMI
+++
Notable bug: The FBO used and sharing the COLORBUFFER RENDERBUFFER
memory resources with CAEAGLLayer to be displayed in the UIView
seemingly cannot handle GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24
or GL_DEPTH_COMPONENT32 depth buffer - none at all (Device + Simulation).
Therefor the default demo GLEventListener chosen here
don't require a depth buffer ;-)
This issue can hopefully be mitigated with other means
than using a flat FBO sink similar to FBO multisampling.
|
|
|
|
| |
alphaRequested + add appropriate API doc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dimensions)
Christian reported this bug and described multiple pathways.
This change usese the following:
- access to getClientAreaInPixels w/ fallback of
- DPIUtil.autoScaleUp(getClientArea())
I hardly have tested this on Linux/GTK, even though I use a High DPI monitor,
maybe just because of it and Eclipse _poor_ state of proper UI presentation.
Christian: Please test this .. if buggy, reopen quick for release 2.4.0
SWT/GTK High-DPI is a PIA:
- GDK_SCALE renders offscreen and scales the image (wow & ugly)
- GDK_DPI_SCALE works at least on the fonts properly
- swt.autoScale is pretty much like: What will be scaled?
It scales some icons in Eclipse, not fonts and result in Eclipse
looks horrible.
Maybe I just made this patch to vent about this poor state of things.
Notable: KDE looks great and uses DPI, firefox some GDK_DPI_SCALE equivalent (OK)
One also wonders why there is only a single scale dimension, where DPI differs x/y!
But enough of my rant :)
|
|
|
|
|
|
|
| |
reparenting!
Bug 1362 fix or workaround: Seems SWT/GTK3 at least performs lazy initialization
Minimal action required: setBackground of the parent canvas before reparenting!
|
| |
|
|
|
|
| |
for System related Operations
|
|\
| |
| | |
Typo in javadoc of GLDrawable#isRealized
|
| | |
|
|\ \
| | |
| | | |
Improved layout of last paragraph in class javadoc
|
| |/ |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Removing double quotes from included shaders
|
| |/
| |
| | |
https://jogamp.org/bugzilla/show_bug.cgi?id=1283
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
GLMediaPlayerImpl.updateAttributes avoid div-by-zero (fps inf)
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
glDataType GL_UNSIGNED_INT_8_8_8_8_REV
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
(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)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
| |
'-MapGLVersions' suffix.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[GLX|WGL]_EXT_swap_control_tear extensions support
asynchronous buffer swaps, i.e. adaptive Vsync.
<https://www.opengl.org/wiki/SwapInterval_aka_vsync#Adaptive_Vsync>
<https://www.opengl.org/registry/specs/EXT/wgl_swap_control_tear.txt>
<https://www.opengl.org/registry/specs/EXT/glx_swap_control_tear.txt>
<http://keithp.com/blogs/async_flip/>
The extensions utilizes a negative interval value,
enabling late swaps to occur without synchronization to the video frame.
Hence '-1' has new semantics, previously it was the 'default value'
of 'untouched vsync interval'.
New default is:
- 0 for unrealized context
- 1 for realized context
+++
It requires [GLX|WGL]_EXT_swap_control,
hence we shall ensure to use use this extension
in the implementation of GLContext.setSwapInterval(..).
+++
Mesa3D seems to support GLX_SGI_swap_control only.
+++
Implemented on Windows and X11.
+++
On GNU/Linux using NVidia driver w/ my setup(*), sadly the query
GLX.glXQueryDrawable(displayHandle, drawable.getHandle(), GLX.GLX_LATE_SWAPS_TEAR_EXT, val);
always returns zero here, indicating async vsync is not supported.
(Queried the attribute for every frame in windowed or fullscreen mode)
Fullscreen
(*)
- Debian 8
- Kernel 3.16
- KDE/Kwin
- GL Version 4.5 (Core profile, arb, compat[ES2, ES3, ES31], FBO, hardware) - 4.5.0 NVIDIA 355.06 [GL 4.5.0, vendor 355.6.0 (NVIDIA 355.06)]
- GL_RENDERER GeForce GTX 660/PCIe/SSE2
- Samsung U28D590 (DFP-4): Internal DisplayPort
+++
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
test.
- ImageIOUtil -> ImageType + ImageType.Util
- ImageType.Util.getFileSuffix(..):
- Fix byte type conversion, i.e. 'b == (byte)0x89',
cast is required to avoid byte -> int conversion.
Note: signed byte -128 - +128
- Parse in O(1), i.e. lexicographical parsing
- FIXME: We seem to have at least three type collisions, validate!
- ImageType:
- Complete T_* w/ API doc -> FIXME/TODO missing type references!
- ImageType instancing via InputStream or manual type definition.
- TextureData
- Contains optional source ImageType
- TextureProvider:
- Deprecate newTextureData(..) variants other than InputStream
simplifying TextureIO.
- TextureProvider.SupportsImageTypes:
- Added interface, allowing mapping ImageType -> provider
- Tested standalone ImageType (TestImageTypeNEWT) and
via TextureIO (TestTextureIONEWT) utilizing list of all
test data (ImageTstFiles), i.e. PNG, JPG, TGA and DDS.
|
| |
|
| |
|
|
|
|
| |
@since 2.3.2 tag
|
| |
|
| |
|
|
|
|
| |
report 1042
|
|
|
|
| |
the bug report 1042
|
| |
|