aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com
Commit message (Collapse)AuthorAgeFilesLines
* Bug 1392: Simplify CapabilitiesFilter: Criteria -> Test, remove ↵Sven Gothel2019-09-071-6/+6
| | | | RemovalCriteria as all Test definitions may be used for anything.
* Bug 1391 Bug 1392: Implement GLRendererQuirks DontChooseFBConfigBestMatch ↵Sven Gothel2019-09-071-2/+46
| | | | | | | | | and No10BitColorCompOffscreen Further enhance unit tests TestGLProfile03NEWTOffscreen, i.e. test all meta profile types on all offscreen drawable types (fbo, pbuffer and bitmap). Align unit test name numbers of TestGLProfile01NEWT to TestGLProfile03NEWTOffscreen.
* Bug 1392: Add CapabilitiesFilter and GLCapabilitiesFilter supporting diverse ↵Sven Gothel2019-09-071-0/+73
| | | | | | | | reusable [GL]CapabilitiesImmutable list filter To implement fix for Bug 1392, we have to remove certain GLCapabilitiesImmutable from the availability list. These filter provide a a clean reusable utility for the fix.
* Bug 1391: Cleanup to submit fix: Update known Quirk range; ↵Sven Gothel2019-09-072-6/+18
| | | | BuggyColorRenderbuffer enables NoFullFBOSupport
* Bug 1390: Fix GLPixelBuffer.GLPixelAttributes::convert(GL, int, boolean) ↵Sven Gothel2019-09-051-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | | failure on unsupported GL data format/type GLPixelBuffer.GLPixelAttributes::convert(GL, int, boolean) failed on unsupported GL data format/type On Mesa/AMD for GLPBuffer chosen GLCaps used rgba 10/10/10/2 and the GLContext set default values: GL_IMPLEMENTATION_COLOR_READ_FORMAT: 0x1908 GL_RGBA GL_IMPLEMENTATION_COLOR_READ_TYPE: 0x8368 GL_UNSIGNED_INT_2_10_10_10_REV GLPixelBuffer.GLPixelAttributes::getPixelFormat(int format, int type) currently does not handle the type GL_UNSIGNED_INT_2_10_10_10_REV and hence returned a null PixelFormat. Therefor the ctor GLPixelAttributes failed and threw the exception: "Caught GLException: Could not find PixelFormat for format and/or type: PixelAttributes[fmt 0x1908, type 0x8368, null]" This fix has the GLContext default values pre-validated in the convert(..) method and to use default GL_RGBA and GL_UNSIGNED_BYTE fallback values if not supported. This is most important to be future proof. Later we may shall add these 32bit coding 2+10+10+10 and its reverse.
* Bug 1363: Java 11: JAWTUtil: Use sun.awt.SunToolkit.awtLock/Unlock and ↵Sven Gothel2019-09-041-58/+5
| | | | | | | | | | | | | | | disableBackgroundErase (impl. semantics) Commit 13c6bbbde5ea476d60e0a2f04a5172d3302d0edd simply removed the AWT commonly used SunToolkit lock/unlock methods, which was incorrect. It lead to certain resources access collisions as access has to be synchronized using the same reentry lock across AWT and NativeWindow/JOGL. We utilize the new com.jogamp.common.util.UnsafeUtil of GlueGen commit 07c1885e9a3d1f3a3853414648c06fb3864bc69f to disable the IllegalAccessLogger while fetching the methods/fields and making them accessible. JAWUtil also hosts access to SunToolkit's disableBackgroundAccess(Component) aligning the code for GLCanvas, NewtCanvasAWT and AWTCanvas.
* Bug 1384: Move remaining 'lose' property quirks into GLRendererQuirks.OverrideSven Gothel2019-08-232-20/+25
|
* Bug 1383: Final fix: Always test GL3CompatNonCompliant and test on requested ↵Sven Gothel2019-08-221-0/+2
| | | | | | | | | | | | | | version/profile, also .. also, if requested version is within GL3CompatNonCompliant valid range, i.e. < 3.1, the detected actual version will be clipped for valid mapping to the requested data. Here it might be essential to know, that all versions are being 'scanned' via mapGLVersions from high to low. Therefor Version 3.0 would be tried before 2.0 and both will be mapped to the clipped actual version 3.0. The true actual version could be the maximum, however, using the very same would lead to trying an invalid unavailable GLProfile.
* Bug 1383: GLContext.isValidGLVersion() ensure only one profile bit is set ↵Sven Gothel2019-08-221-1/+14
| | | | max; Add OpenGL version 4.6
* GLRendererQuirks: Fix typoSven Gothel2019-08-211-1/+1
|
* JoglVersion.getGLInfo: Increase robustness of debug outputSven Gothel2019-08-212-8/+20
|
* Bug 1384: Allow GLRendererQuirks to be overridden by user propertiesSven Gothel2019-08-211-66/+125
| | | | | | | | | | | | | | | | | | | | | Allow GLRendererQuirks to be overridden by user properties, allowing to either force (inject) a quirk by a user property or to ignore a quirk by a user property. This helps: - debugging certain quirk behavior (See Bug 1383) - allowing a user to customize the quirk setting +++ This patch also refines the quirk: GLNonCompliant -> GL3CompatNonCompliant, i.e. constraints its semantics to GL3 compatible context. +++ This patch also removed useless code of GLRendererQuirk, i.e. the 'int[] quirk' array arguments which are nonsense or wasteful, as we operate with bitmasks.
* Bug 1101: Add missing disposal of Pipelined_QuadRenderer's VBOsSven Gothel2019-08-201-3/+15
| | | | Original author is 'Tof'
* Removed references to non-existent method getPeer() in debug codeWade Walker2019-08-191-2/+2
|
* iOS: Clean up promotion of EAGLLayer use down to FBObjectSven Gothel2019-06-241-51/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial commit bba73bc096250a3c7fc036d84b1ea054d1b70b06 hacked its path using a context global EGLLayer instance attachement. The hack was good for the first demo, however, it forbid using other FBObjects etc on the way. Properly specifying FBObject.Attachment.StorageDefinition, allowing the user to inject code for selected FBO attachements to define their storage. This might be useful for different platforms as well - however, it is OS agnostic and instance specific now. In this sense, GLFBODrawableImpl, hosting FBObject, has a more specific instance of FBObject.Attachment.StorageDefinition for color-renderbuffer. It is passed along newly created color renderbuffer. GLDrawableFactoryImpl.createGLDrawable uses a derived interface, OnscreenFBOColorbufferStorageDefinition which is defined in IOSEAGLDrawableFactory and return by its getter. GLDrawableFactoryImpl.createGLDrawable is therefor platform agnostic again. Bottom line is, as more platforms will be added, these semi-public interfaces have to adapt to suit them all .. All this due to iOS architecture for 'onscreen rendering' using a FBO which shares its color renderbuffer storage with the EAGLLayer, associated with the UIView. A bit weird maybe in first sight, but efficient for creating cheap hardware design ;-) Only criticism here is that Apple didn't bother using EGL and an extension.
* iOS: Initial working commit supporting iOS (ipad pro 11)Sven Gothel2019-06-234-103/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bug 1381: Keep host PixelFormat functional using requested immutable ↵Sven Gothel2019-05-132-13/+34
| | | | alphaRequested + add appropriate API doc
* Bug 1358: 'Honor' SWT's projection of High-DPI Scaling (Reading hidden pixel ↵Sven Gothel2019-04-101-25/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 :)
* Bug 1362: Minimal action required: setBackground of the parent canvas before ↵Sven Gothel2019-04-091-0/+5
| | | | | | | reparenting! Bug 1362 fix or workaround: Seems SWT/GTK3 at least performs lazy initialization Minimal action required: setBackground of the parent canvas before reparenting!
* Bug 1367: Adapt to TempFileCache & TempJarCache ChangesSven Gothel2019-04-032-2/+2
|
* Bug 1366 - Use String.format((Locale)null, "..." ..) avoiding Locale output ↵Sven Gothel2019-03-302-5/+7
| | | | for System related Operations
* Merge pull request #100 from PissedCapslock/patch-2Sven Gothel2019-03-261-1/+1
|\ | | | | Typo in javadoc of GLDrawable#isRealized
| * Typo in javadoc of GLDrawable#isRealizedRobin Stevens2016-05-041-1/+1
| |
* | Merge pull request #99 from PissedCapslock/patch-1Sven Gothel2019-03-261-3/+3
|\ \ | | | | | | Improved layout of last paragraph in class javadoc
| * | Improved layout of last paragraph in class javadocRobin Stevens2016-05-041-3/+3
| |/
* | ShaderCode: Fixed constant usage (GL3 -> GL3ES3)Sven Gothel2019-03-261-15/+15
| |
* | Bug 1283: Remove shader include filename quotes if exists at start and end onlySven Gothel2019-03-261-1/+9
| |
* | Merge pull request #95 from elect86/patch-1Sven Gothel2019-03-261-1/+1
|\ \ | | | | | | Removing double quotes from included shaders
| * | Removing also all the double quotesGiuseppe Barbieri2016-01-291-1/+1
| |/ | | | | https://jogamp.org/bugzilla/show_bug.cgi?id=1283
* / Shows all information of the default graphics device in JoglVersion, bug 1294bug1294Julien Gouesse2016-04-051-2/+1
|/
* Bug 1268: Adapt to GlueGen commit 2034bbfac88b7d1360f9c939e173ff758f7f47acSven Gothel2015-11-151-0/+10
|
* Remove deprectated classes and methodsSven Gothel2015-10-158-240/+39
|
* Streamline Composed Pipeline's interfaces and implementations (Trace* Debug*)Sven Gothel2015-10-121-27/+8
| | | | | | | Only add the required direct interfaces / implementations to interface / class derivations, not polluting overview in IDEs. Aligns w/ commit bf76b6b77f078178fc5e6a42c70d354369004b94
* Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part5: ↵Sven Gothel2015-10-073-27/+59
| | | | GL_ARB_ES3_2_compatibility -> [GL|GLContext].isGLES32Compatible()
* Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part4: Fix ↵Sven Gothel2015-10-071-3/+6
| | | | GLNameResolver: Add all known vendor extensions
* Bug 1189 - Add OpenGL ES 3.2 and new GL 4.5 Extensions support - Part3: ↵Sven Gothel2015-10-072-20/+32
| | | | GLEmitter: Don't RenameExtensionIntoCore for IgnoredExtensions
* Bug 1239: Fix GLMediaPlayer.CameraInputScheme API doc; ↵Sven Gothel2015-10-051-6/+13
| | | | GLMediaPlayerImpl.updateAttributes avoid div-by-zero (fps inf)
* Bug 1237: Adopt GlueGen's clarification of IOUtil.getResource(..), commit ↵Sven Gothel2015-10-034-7/+7
| | | | | | | | 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'
* Bug 1241 - Util's Texture.coords (image coordinates) not updated properlySven Gothel2015-10-021-22/+29
| | | | | | | | | 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.
* Bug 1234 - GLReadBufferUtil.readPixelsImpl(..) not using [xy] offset in ↵Sven Gothel2015-09-281-2/+2
| | | | | | | | | | | | | 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.
* Bug 1226 - GLPixelBuffer.GLPixelAttributes.getPixelFormat() doesn't handle ↵Sven Gothel2015-09-261-0/+4
| | | | glDataType GL_UNSIGNED_INT_8_8_8_8_REV
* Bug 1211: Hardening Condition-Wait from Spurious-Wakeups and unintended ↵Sven Gothel2015-09-156-127/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Bug 1203: OpenGL ES 3.1 NVIDIA 355.06's EGL impl. is unstable requires ↵Sven Gothel2015-08-301-3/+4
| | | | | | | | | | 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.
* Bug 1207 - GLDebugMessageHandler: Support GL_KHR_debug for Desktop and ES ↵Sven Gothel2015-08-301-0/+1
| | | | | | | | | | | | | | | | 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.
* Bug 1203: Optimize OpenGL Profile probing/mapping (Skip redundant queries)Sven Gothel2015-08-301-0/+12
| | | | | | | | | | | | | | | 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.
* Bug 1202 (related): Fix SEMVER regressions mostly due to Bug 1202 commits ↵Sven Gothel2015-08-293-2/+19
| | | | | | | | | (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
* *AnimatorImpl: Catch concurrent pulling of GLAutoDrawable instancesSven Gothel2015-08-292-24/+37
| | | | | | | | | | | | | | | 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)
* FloatUtil: Remove '@deprecated' for 'matrixToString' 'FloatBuffer' variantSven Gothel2015-08-291-1/+0
|
* Bug 1203: Implement regular EGL OpenGL Profile probing (ES* + GL*)Sven Gothel2015-08-291-38/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* Bug 1203: Cleanup and Prepare for regular EGL Profile probingSven Gothel2015-08-291-22/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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.