aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Bug 1393: Run orderFront0(=setVisible) async off-thread on AppKit after sync ↵Sven Gothel2019-09-096-161/+162
| | | | | | | | | | | | | | | | | AppKit NSWindow creation MacOS 10.14.6 + OpenJDK11U produces occasional freezes on AppKit Main Thread Latest manual tests after resolving Bug 1389 disclosed a few occasional freezes using NEWT + Java11. These are related to probable AWT changes since Java8, as these do not occur with Java8. Fix: Spun off orderFront0(=setVisible) async off-thread on AppKit after sync AppKit NSWindow creation. This fix also aligns the macos createWindow code with the new simplified ios implementation, see commit 004c67c73a0309158c30929cd0d6513e23f34803
* OSXUtil::IsMainThread() Utilize ThreadLocal storage flag avoiding ↵Sven Gothel2019-09-081-24/+19
| | | | unnecessary JNI calls
* Buig 1389: Fix SIGSEGV on OpenJDK11 on [NSApplicationAWT sendEvent:]Sven Gothel2019-09-0810-18/+44
| | | | | | | | | | | | | | | | | | | | | | Culprit of the crash and the non propagated action on NSApp main-thread was _simply_ our OSXUtil_KickNSApp() 'kick alive' NSApplicationDefined NSEvent sent to the NSApp. Java11's NSApp code overrides sendEvent and handles NSApplicationDefined + subtype=ExecuteBlockEvent using the given data1 as a function pointer. 8-O ExecuteBlockEvent defined as 0, which we have sent. Simply passing subtype=8888 avoids this side-effect. Whether it is still required to KickNSApp() is another question. +++ Further, make code a bit more robuts regarding the offscreenSurfaceLayer at JAWTWindow invalidate. I.e. if still not detached, do the late cleanup there. This just in case the OSX Context callback to disassociate the drawable has been missed.
* Bug 1392: Simplify CapabilitiesFilter: Criteria -> Test, remove ↵Sven Gothel2019-09-073-31/+28
| | | | RemovalCriteria as all Test definitions may be used for anything.
* Bug 1392: X11PixmapGLXDrawable::createPixmap() requires ↵Sven Gothel2019-09-071-2/+2
| | | | | | | X11GLXGraphicsConfiguration having a valid XVisualInfo Therefor X11GLXGraphicsConfiguration::GLXFBConfig2GLCapabilities(..) also needs to clean the GLGraphicsConfigurationUtil.BITMAP_BIT from drawableTypeBits and if all removed, drop the FBConfig.
* Bug 1391 Bug 1392: Implement GLRendererQuirks DontChooseFBConfigBestMatch ↵Sven Gothel2019-09-0711-107/+272
| | | | | | | | | 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-072-0/+237
| | | | | | | | 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-073-11/+25
| | | | BuggyColorRenderbuffer enables NoFullFBOSupport
* Bug 1390: Fix GLPixelBuffer.GLPixelAttributes::convert(GL, int, boolean) ↵Sven Gothel2019-09-054-12/+31
| | | | | | | | | | | | | | | | | | | | | | | | | 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: Utilize UnsafeUtil.doWithoutIllegalAccessLogger(..) ↵Sven Gothel2019-09-043-53/+84
| | | | | | | | | | avoiding further unnecessary warnings Access to said internal non-exported methods is essential. See commit c5431f46b7bf64f109315ec78461859dd88f202a. Further added verbose DEBUG output where applicable.
* Bug 1363: Java 11: JAWTUtil: Use sun.awt.SunToolkit.awtLock/Unlock and ↵Sven Gothel2019-09-044-238/+131
| | | | | | | | | | | | | | | 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.
* check-junit: enhance output (make it a brief list of classes)Sven Gothel2019-09-041-2/+2
|
* Bug 1363: Java 11: Use new Android SDK 24 for Eclipse Android .classpathSven Gothel2019-09-041-1/+1
|
* Bug 1384: Move remaining 'lose' property quirks into GLRendererQuirks.OverrideSven Gothel2019-08-233-42/+27
|
* Bug 1385: Limit Quirk GL3CompatNonCompliant to Mesa < 18.2.0Sven Gothel2019-08-231-3/+4
|
* Bug 1383: Tighten version/profile qualification: fail if: requested compat ↵Sven Gothel2019-08-231-2/+10
| | | | | | | | | | | | | | profile && has core profile On Mesa, if requesting a 3.1 compat profile, we receive a 4.5 core profile. This is natural due to constraints within glXCreateContextAttribsARB, i.e. GLX_CONTEXT_PROFILE_MASK_ARB is only a available for versions >= 3.2 and these are not available on Mesa. Tested with Mesa 18.3.6 of Debian 10 Buster, which also confirms Bug 1385 fix of limitating GL3CompatNonCompliant to Mesa < 18.2.0
* Bug 1383: Final fix: Always test GL3CompatNonCompliant and test on requested ↵Sven Gothel2019-08-223-4/+22
| | | | | | | | | | | | | | 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: GLContextImpl.setGLFunctionAvailbility(..): Ensure only one ↵Sven Gothel2019-08-221-2/+33
| | | | | | | requested profile bit is set; Query GL_CONTEXT_PROFILE_MASK for hasCtxProfileBits and finally guess the GL profile bit if none could be determined: 'isESReq ? GLContext.CTX_PROFILE_ES : GLContext.CTX_PROFILE_COMPAT'
* Bug 1283: GLContextImpl.setGLFunctionAvailbility(..) calls: When leaving ↵Sven Gothel2019-08-225-6/+6
| | | | | | OpenGL version open, don't assume the profile The profile should be queried at runtime like the version in these situations.
* Bug 1383: GLContext.isValidGLVersion() ensure only one profile bit is set ↵Sven Gothel2019-08-221-1/+14
| | | | max; Add OpenGL version 4.6
* Bug 1383: Cleanup GLContextImpl.setGLFunctionAvailability(..): Parameter, ↵Sven Gothel2019-08-221-119/+151
| | | | | | | | | variables and clip at 180 line width This cleanup became necessary to re-analyse the code after quite some time. Using clear immutable input input parameters for the requested OpenGL version+profile and mutable current state 'has'.
* 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-212-69/+131
| | | | | | | | | | | | | | | | | | | | | 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'
* Reverting erroneous junit-test task condition (ant build)Sven Gothel2019-08-201-3/+3
| | | | | | | | | | | | | as introduced while hacking on iOS. - Builds on MacOS, Windows and GNU/Linux now. - All but 2 tests passed on Windows - GNU/Linux AMD GPU regression -- 1) No compat profiles on X11 device -- 2) Remaining core only profiles disclose buggy GLProfile selection -- This needs to be fixed pre-release
* Bug 1363: Java 11: Resolve unsupported JAWTUtil.getMonitorDisplayID(..)Sven Gothel2019-08-192-8/+14
| | | | | | | | | | | | | | | | | Previous commits removed access to OSX's GraphicsDevice.getCGDisplayID() on Java9+, avoiding illegal reflective access. Here we JAWTUtil.getMonitorDisplayID(..) simply returns null if Java9 or !OSX, so the sole NewtFactory caller falls back to the alternative working solution. Orig patch Wade Walker: This was used on Mac OS only to create a MonitorDevice in NewtFactoryAWT. But there was a fallback method for creating MonitorDevice, and testing with TestGearsES2GLJPanelAWT shows that the fallback method seems to give identical results on Mac, so changed to just use the fallback method (which is now the only method) everywhere. This gets rid of an illegal reflective access.
* Bug 1363: Java 11: Use getPixelScale standard method even on Mac under Java9+Sven Gothel2019-08-191-50/+50
| | | | | | | | | | Changed getPixelScale to use standard method, even on Mac Previously it used a Mac-specific method, but the new standard method of device.getDefaultConfiguration().getDefaultTransform() seems to work on Mac, so use it instead to avoid illegal reflective access warnings. Orig patch by Wade Walker.
* Bug 1363: Java 11: Don't use GraphicsDevice.getScaleFactor() on Java9+ ↵Sven Gothel2019-08-191-3/+16
| | | | | | | | | | | | [illegal reflective access] Use non-reflective method to get the pixel scale on Java9+ It's now possible to use GraphicsConfiguration.getDefaultTransform() instead of using reflection to get the pixel scale, which eliminates an illegal reflective access warning. Orig patch by Wade Walker
* Bug 1363: Java 11: Don't use sun.awt.SunToolkit.awtLock/Unlock on Java9+ ↵Sven Gothel2019-08-192-13/+18
| | | | | | | | | | | | | | | | [illegal reflective access] Avoid illegal reflective access to sun.awt.SunToolkit.awtLock/Unlock on Java9+ Apparently these give a performance benefit on X11 by avoiding taking the AWT global lock, and instead only taking a Java lock defined in sun.awt.SunToolkit. But this has thrown a warning since Java 9, and will soon be illegal. If a performance problem remains on X11, we'll need to find another solution. Orig patch by Wade Walker. This patch only skips utilizing said API on Java9+ while maintaining orig code path for Java8.
* Removed illegal reflective access to sun.java2d.opengl.OGLUtilitiesWade Walker2019-08-191-31/+8
| | | | | | | | We were reading a variety of surface type definitions from sun.java2d.opengl.OGLUtilities using reflection, which has thrown warnings since Java 9 and which soon will become illegal. For now, just hard-coded these types to remove the warnings that happen during static initialization. Eventually the entire Java2D class will have to be revamped if we want to be able to actually use it.
* Bug 1363: Java 11: (Hack) Inject OpenJFX [basic, graphics] into CLASSPATHSven Gothel2019-08-195-0/+191
| | | | | | | | | | | The OpenJDK JAR files within this folder only conveniently serve to compile JOGL on all platforms. They were extracted from Debian 10's 'libopenjfx-java' package version 11.0.2+1-1 See copyright (also extracted from package above) for (c) details. Note: This is similar to our SWT injection etc.
* Fixed clean target so it doesn't fail if GlueGenTask is not presentSven Gothel2019-08-194-7/+9
| | | | | | | | | | | | | If gluegen was cleaned, the GlueGenTask would be absent, which would cause a failure in jogl clean (even though GlueGenTask isn't needed in the clean target). So, modified the jogl build so it doesn't load GlueGenTask in the clean target. Orig commit by Wade Walker. This alternative patch uses the ant target common.gluegen.init to define the 'gluegen' task post gluegen compile check and pre 'gluegen' call, avoiding the if-then-else ant-task state query: <equals arg1="${ant.project.invoked-targets}" arg2="clean" />
* Bug 1363: Java 11: Adapt scripts for java11 (cont)Sven Gothel2019-08-1924-171/+35
|
* Bug 1363: Java 11: Aligned HowToBuild.html w/ GlueGen's updated versionSven Gothel2019-08-191-75/+108
|
* Bug 1363: Java 11: Complement javah replacement: Add new iOSSven Gothel2019-08-191-21/+20
| | | | Complements patch 63e31d05ad9f1df99663997c2f04ad086f29c8fc
* Bug 1363: Java 11: bring back bootclasspath for java 8 target accuracySven Gothel2019-08-196-2/+30
| | | | | | | | | | | | | | | Was removed mostly via commit 63e31d05ad9f1df99663997c2f04ad086f29c8fc We have 2 choices building for java8 under java11: 1) use source, target and bootclasspath options 2) use release option It is said that (2) is not yet accurate enough and (1) shall be favored as it guarantees no java>8 class leak from the build JDK. This patch is isolated to allow removal of said bootclasspath if desired by anybody
* Removed remaining bootclasspath and javah; build now works on Windows 10Wade Walker2019-08-196-33/+201
| | | | | | (sgothel: This cherry picked merge will be refined) Also removed a couple of duplicate "source" tags in javac tasks.
* Bug 1363: Java 11: Adapt build scripts for java11Sven Gothel2019-08-1917-87/+79
|
* Bug 1363: Java 11: javah replacement: Use conditional ant targets instead of ↵Sven Gothel2019-08-191-64/+74
| | | | | | branches, also re-add bootclasspath Refines commit df7c0ad3b98d3520f023e026b6163bcba2c7ee7e
* Removed import that caused GLUgl2/GLUgl2ProcAddressTable not to compileWade Walker2019-08-191-1/+0
|
* Removed references to non-existent method getPeer() in debug codeWade Walker2019-08-191-2/+2
|
* Removed obsolete tools.jarWade Walker2019-08-192-3/+3
| | | | | In Java 9+, the tools.jar file also no longer exists in Java installations (it's now stored in a secret non-JAR format), so removed it.
* Fixed native header generation for native windowing codeWade Walker2019-08-191-6/+62
|
* iOS: IOSUtil_CreateGLViewDemoA0 tests native UIWindow parenting (works)Sven Gothel2019-07-081-4/+11
|
* NEWT iOS: Support translucent windowsSven Gothel2019-07-086-14/+46
| | | | | | | and remove the redColor default background (debug only). IOSUtil.CreateUIWindow(..) also gets its 'visible' attribute, to be true only for demo Hello1 code - false for intended Proxy Surface Hook.
* NEWT iOS WindowDriver: Remove unused orig UIWindow/UIView creation pathSven Gothel2019-07-082-216/+1
| | | | See commit 004c67c73a0309158c30929cd0d6513e23f34803
* NEWT iOS WindowDriver: native UIWindow/UIView creation changeSven Gothel2019-07-082-13/+159
| | | | | | | | Astonishingly, the original code path doesn't show up the CAEAGL View/Layer (only the red test background) even though t is 1:1 equal to this alternative calls. Keeping the original path intact for future validation, another round of hours of analysis. The original code path will be removed in the next commit.
* NEWT iOS: Support Multi-Touch Events, PixelScale, ..Sven Gothel2019-07-0814-587/+979
| | | | | | | | | | | | | | | | | Note: Two subsequent commit will add some required change in the native UIWindow/UIView creation methods to actually make the NEWT view being displayed ;-) The demo 'com.jogamp.opengl.demos.ios.Hello' demonstrated a standard NEWT application running on iOS. Previous NativeWindow wrap-around demo is preserved in 'com.jogamp.opengl.demos.ios.Hello1'. Tested on ipad 11'inch arm64 and x86_64 simulation: - Using GearsES2 demo - PixelScale 1f, 2f and 0f - last two using max pixel scale - Touch w/ GearsES2 works: -- 1 finger rotate -- 2 finger drag -- 2 finger pinch-zoom gesture detection
* NEWT iOS / MacOS: Simplify setJavaWindowObjectSven Gothel2019-07-082-15/+17
|