|
 | doc/misc/robovm.txt |
|
 | doc/misc/robovm.txt (diff) |
|
 | doc/misc/robovm.txt (diff) |
|
 | doc/misc/robovm.txt (diff) |
|
 | www/index.html (diff) |
|
 | doc/HowToBuild.html (diff) |
 | doc/deployment/JOGL-DEPLOYMENT.html (diff) |
 | doc/userguide/index.html (diff) |
 | doc/NEWT-Overview.html (diff) |
 | doc/Overview-OpenGL-Evolution-And-JOGL.html (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/util/awt/AWTGLReadBufferUtil.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java (diff) |
Commit
bba73bc096250a3c7fc036d84b1ea054d1b70b06
by Sven GotheliOS: Initial working commit supporting iOS (ipad pro 11)
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.
|
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGLnBitmapCapsNEWT.java (diff) |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLDynamicLibraryBundleInfo.java |
 | .classpath (diff) |
 | make/scripts/make.jogl.all.macosx.sh (diff) |
 | src/demos/com/jogamp/opengl/demos/es2/shader/mgl_default_xxx.vp |
 | src/nativewindow/native/ios/NativeWindowProtocols.h |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGLProfileDeviceNEWT.java (diff) |
 | make/scripts/tests-x64.sh (diff) |
 | src/demos/com/jogamp/opengl/demos/es2/RedSquareES2.java |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLWindowOnOffscrnCapsNEWT.java (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java |
 | src/demos/com/jogamp/opengl/demos/es2/shader/PointsShader.vp |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
 | make/stub_includes/opengl/ios-window-system.h |
 | src/nativewindow/native/ios/CAEAGLLayered.h |
 | make/scripts/make.jogl.all.ios.arm64.sh |
 | src/demos/com/jogamp/opengl/demos/es2/shader/RedSquareShader.vp |
 | src/demos/com/jogamp/opengl/demos/es2/shader/elektronenmultiplizierer_port.fp |
 | make/stub_includes/macosx/UIKit/NSOpenGLView.h |
 | src/jogl/classes/com/jogamp/opengl/GLProfile.java (diff) |
 | src/newt/native/IOSUIWindow.m |
 | src/nativewindow/native/ios/CAEAGLLayered.m |
 | make/build.xml (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableNewtCanvasAWTOnOffscrnCapsAWT.java (diff) |
 | make/stub_includes/ios/QuartzCore/CALayer.h |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLGraphicsConfigurationFactory.java |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile00NEWT.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryES2OffscrnCapsNEWT.java (diff) |
 | make/stub_includes/ios/UIKit/UIKit.h |
 | src/demos/com/jogamp/opengl/demos/es2/shader/ruler.fp |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLContext.java |
 | src/demos/com/jogamp/opengl/demos/es2/GearsObjectES2.java |
 | src/demos/com/jogamp/opengl/demos/es2/LandscapeES2.java |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSOnscreenEAGLDrawable.java |
 | make/build-common.xml (diff) |
 | src/nativewindow/classes/com/jogamp/nativewindow/ios/IOSGraphicsDevice.java |
 | src/nativewindow/classes/com/jogamp/nativewindow/javafx/JFXAccessor.java (diff) |
 | src/jogl/native/ios/IOSWindowSystemInterface.h |
 | src/nativewindow/native/JVM_JNI8.c |
 | src/demos/com/jogamp/opengl/demos/ios/Hello0.java |
 | make/scripts/tests.sh (diff) |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLDrawable.java |
 | src/demos/com/jogamp/opengl/demos/es2/shader/texture01_xxx.fp |
 | src/jogl/classes/com/jogamp/opengl/FBObject.java (diff) |
 | make/stub_includes/macosx/UIKit/UIView.h |
 | src/newt/classes/jogamp/newt/driver/ios/DisplayDriver.java |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java (diff) |
 | make/scripts/setenv-jogl.sh (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/MacKeyUtil.java |
 | src/demos/com/jogamp/opengl/demos/es2/shader/fbo-mrt-1.vp |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableFactoryGL2OffscrnCapsNEWT.java (diff) |
 | make/stub_includes/ios/OpenGLES/EAGL.h |
 | src/demos/com/jogamp/opengl/demos/es2/shader/texture01_xxx.vp |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableDelegateOnOffscrnCapsNEWT.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile01NEWT.java (diff) |
 | src/nativewindow/native/ios/IOSmisc.m |
 | make/build-jogl.xml (diff) |
 | src/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff) |
 | src/demos/com/jogamp/opengl/demos/es2/shader/default.vp |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLDrawableFactory.java |
 | src/jogl/classes/com/jogamp/opengl/JoglVersion.java (diff) |
 | src/nativewindow/native/macosx/OSXmisc.m (diff) |
 | src/demos/com/jogamp/opengl/demos/es2/shader/gears.fp |
 | src/demos/com/jogamp/opengl/demos/ios/Hello.java |
 | src/newt/native/IOSNewtUIWindow.h |
 | make/scripts/tests-osx-x64.sh (diff) |
 | make/stub_includes/ios/window-system1.c |
 | src/demos/com/jogamp/opengl/demos/es2/shader/RedSquareShader2.fp |
 | src/jogl/native/JVM_JNI8.c |
 | src/demos/com/jogamp/opengl/demos/es2/shader/landscape.vp |
 | src/jogl/classes/jogamp/opengl/egl/EGLGLnDynamicLibraryBundleInfo.java (diff) |
 | make/config/jogl/eagl-ios.cfg |
 | make/stub_includes/macosx/UIKit/NSOpenGL.h |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedExternalContextAWT.java (diff) |
 | src/demos/com/jogamp/opengl/demos/es2/shader/mgl_default_xxx.fp |
 | src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDynamicLibraryBundleInfo.java (diff) |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLGraphicsConfiguration.java |
 | src/demos/com/jogamp/opengl/demos/es2/shader/PointsShader.fp |
 | src/nativewindow/classes/jogamp/nativewindow/ios/IOSDummyUpstreamSurfaceHook.java |
 | src/demos/com/jogamp/opengl/demos/es2/shader/fbo-mrt-2.vp |
 | src/demos/com/jogamp/opengl/demos/es2/shader/RedSquareShader.java |
 | make/build-nativewindow.xml (diff) |
 | src/demos/com/jogamp/opengl/demos/PointsDemo.java |
 | make/stub_includes/macosx/UIKit/NSOpenGLLayer.h |
 | src/demos/com/jogamp/opengl/demos/es2/shader/texsequence_xxx.vp |
 | src/demos/com/jogamp/opengl/demos/es2/PointsDemoES2.java |
 | src/demos/com/jogamp/opengl/demos/es2/shader/RedSquareShader.fp |
 | src/jogl/classes/jogamp/opengl/DummyGLExtProcAddressTable.java |
 | make/stub_includes/ios/QuartzCore/CAEAGLLayer.h |
 | src/demos/com/jogamp/opengl/demos/es2/GearsES2.java |
 | src/demos/com/jogamp/opengl/demos/es2/shader/fbo-mrt-1.fp |
 | src/jogl/classes/com/jogamp/opengl/GLDrawableFactory.java (diff) |
 | src/demos/com/jogamp/opengl/demos/es2/shader/texsequence_xxx.fp |
 | src/demos/com/jogamp/opengl/demos/es2/shader/elektronenmultiplizierer_development.fp |
 | make/stub_includes/ios/OpenGLES/EAGLDrawable.h |
 | src/demos/com/jogamp/opengl/demos/es2/shader/landscape.fp |
 | make/build-test.xml (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/ios/IOSUtil.java |
 | src/demos/com/jogamp/opengl/demos/es2/shader/fbo-mrt-2.fp |
 | src/jogl/native/ios/IOSWindowSystemInterface.m |
 | src/demos/com/jogamp/opengl/demos/GearsObject.java |
 | src/newt/native/JVM_JNI8.c |
 | src/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java |
 | make/build-newt.xml (diff) |
 | src/newt/native/IOSNewtUIWindow.m |
 | src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff) |
 | make/scripts/make.jogl.all.ios.amd64.sh |
 | src/demos/com/jogamp/opengl/demos/es2/shader/texture02_xxx.fp |
 | src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff) |
 | src/demos/com/jogamp/opengl/demos/es2/shader/gears.vp |
Commit
203f795cd3332d6d61c210c8b7901de069d9166a
by Sven GotheliOS: Clean up promotion of EAGLLayer use down to FBObject
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.
|
 | src/demos/com/jogamp/opengl/demos/ios/Hello.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff) |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLDrawableFactory.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLDrawableFactoryImpl.java (diff) |
 | src/jogl/classes/jogamp/opengl/ios/eagl/IOSEAGLContext.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/FBObject.java (diff) |
Commit
019a6fe3c2f5efe550d41f7262b8010d3cfa0aa0
by Sven GotheliOS: EAGLLayer FBO w/ DEPTH buffer workaround 1
Notable bug as mentioned before: 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).
This workaround re-binds the used color renderbuffer for EAGLLayer presentation at the end of the FBO drawable instantiation.
FBO DEPTH buffer works now as demonstrated w/ GearsES2.
We have to issue one more test now, using a demo using an FBO itself.
|
 | src/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff) |
 | src/nativewindow/native/ios/IOSmisc.m (diff) |
|
 | src/newt/native/NewtMacWindow.h |
 | make/build-newt.xml (diff) |
 | src/newt/native/MacWindow.m (diff) |
 | src/newt/native/IOSWindow.m |
 | src/newt/native/NewtMacWindow.m |
 | src/newt/native/MacNewtNSWindow.m |
 | src/newt/native/IOSUIWindow.m |
 | src/newt/native/MacNewtNSWindow.h |
|
 | make/scripts/tests.sh (diff) |
 | make/build-test.xml (diff) |
Commit
7fc01d666ae35bd789232b18f8d3f2df7146e4d3
by Sven GothelNEWT WindowImpl.doPointerEvent: Use native short[] for pNames
and not int[], this avoid copying in case given pNames are normalized.
This is benecifical for X11, Windows and the upcoming iOS touch/pointer support.
|
 | src/newt/classes/jogamp/newt/WindowImpl.java (diff) |
 | src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff) |
 | src/newt/native/WindowsWindow.c (diff) |
 | src/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff) |
 | src/newt/native/X11Display.c (diff) |
Commit
a307ab505ed3fb5fe64f01478ce6d2933cd26c7d
by Sven GothelCopyright: Add missing Copyright tag
Adding the missing JogAmp copyright tag on certain files.
Currently in debate whether 'JogAmp Community' is a legal Copyright tag in the first place, we might need to add (or replace it with) my authorship. However, as authorship is well documented via the git repository, this should be no real world issue.
|
 | src/newt/native/AndroidWindow.c (diff) |
 | src/newt/native/MacWindow.m (diff) |
 | src/newt/native/NewtCommon.c (diff) |
 | src/newt/native/KDWindow.c (diff) |
 | src/newt/native/MacNewtNSWindow.m (diff) |
Commit
f74e9c1597612edbff81425d4f2f528da5ebaf43
by Sven GotheliOS / MacOS: PixelScale Update
- IOSUtil/OSXUtil: Return float value and refine name to GetScreenPixelScale*
- WindowDriver's updateMaxScreenPixelScaleByDisplayID(..) and updateMaxScreenPixelScaleByWindowHandle(..) will only update the maxPixelScale, as actual user pixelSize change should not be triggered here.
A user pixelSize adaption to the changed underlying scale capabilities (e.g. switch monitor) should be supported by the implemented WindowDriver's: updatePixelScale(..) called by native code.
|
 | src/newt/classes/jogamp/newt/driver/macosx/ScreenDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/ScreenDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/ios/IOSUtil.java (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff) |
 | src/nativewindow/native/macosx/OSXmisc.m (diff) |
 | src/newt/native/MacNewtNSWindow.m (diff) |
 | src/nativewindow/native/ios/IOSmisc.m (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff) |
|
 | src/newt/native/MacWindow.m (diff) |
 | src/newt/native/IOSWindow.m (diff) |
Commit
0f97d9292cc7ff97f61f68b69c5a375cc023a5af
by Sven GothelNEWT iOS: Support Multi-Touch Events, PixelScale, ..
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
|
 | src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff) |
 | src/newt/native/IOSNewtUIWindow.h (diff) |
 | src/demos/com/jogamp/opengl/demos/ios/Hello.java (diff) |
 | src/newt/native/NewtCommon.c (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2SimpleNEWT.java (diff) |
 | src/nativewindow/native/ios/IOSmisc.m (diff) |
 | src/newt/native/IOSWindow.m (diff) |
 | src/newt/native/MouseEvent.h (diff) |
 | src/demos/com/jogamp/opengl/demos/ios/Hello1.java |
 | src/newt/native/NewtCommon.h (diff) |
 | src/newt/native/IOSNewtUIWindow.m (diff) |
 | src/newt/native/MacWindow.m (diff) |
 | make/build-newt.xml (diff) |
Commit
004c67c73a0309158c30929cd0d6513e23f34803
by Sven GothelNEWT iOS WindowDriver: native UIWindow/UIView creation change
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.
|
 | src/newt/native/IOSWindow.m (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
|
 | src/newt/native/IOSWindow.m (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
Commit
29ad35ab598b6d97367e2e9763f0d2a96c52bcaa
by Sven GothelNEWT iOS: Support translucent windows
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.
|
 | src/demos/com/jogamp/opengl/demos/ios/Hello1.java (diff) |
 | src/newt/native/IOSWindow.m (diff) |
 | src/nativewindow/native/ios/IOSmisc.m (diff) |
 | src/demos/com/jogamp/opengl/demos/ios/Hello.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/ios/IOSDummyUpstreamSurfaceHook.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/ios/IOSUtil.java (diff) |
|
 | src/nativewindow/native/ios/IOSmisc.m (diff) |
|
 | make/build-nativewindow.xml (diff) |
|
 | nbproject/ide-file-targets.xml (diff) |
 | nbproject/project.xml (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/awt/GLCanvas.java (diff) |
|
 | make/config/jogl/glu-gl2.cfg (diff) |
|
 | make/build-nativewindow.xml (diff) |
|
 | make/scripts/make.jogl.all.android-armv6-cross.sh (diff) |
 | make/scripts/make.jogl.all.linux-aarch64-cross.sh (diff) |
 | make/scripts/make.jogl.all.linux-x86.sh (diff) |
 | make/scripts/make.jogl.all.win32.bat (diff) |
 | make/scripts/make.jogl.all.linux-x86_64-clang.sh (diff) |
 | make/scripts/make.jogl.all.android-x86-cross.sh (diff) |
 | make/scripts/make.jogl.all.android-aarch64-cross.sh (diff) |
 | make/scripts/make.jogl.all.solaris-x86_64.sh (diff) |
 | make/scripts/make.jogl.all.win64.bat (diff) |
 | make/scripts/make.jogl.all.generic.sh (diff) |
 | make/scripts/make.jogl.all.ios.amd64.sh (diff) |
 | make/scripts/make.jogl.all.ios.arm64.sh (diff) |
 | make/scripts/make.jogl.all.linux-x86_64.sh (diff) |
 | make/scripts/make.jogl.all.solaris-x86.sh (diff) |
 | make/scripts/make.jogl.all.linux-armv6hf-cross.sh (diff) |
 | make/scripts/make.jogl.all.linux-x86-clang.sh (diff) |
 | make/scripts/make.jogl.all.macosx.sh (diff) |
|
 | make/build-jogl.xml (diff) |
 | make/build-oculusvr.xml (diff) |
 | make/build-test.xml (diff) |
 | make/build-newt.xml (diff) |
 | make/build-staticglgen.xml (diff) |
 | make/build-nativewindow.xml (diff) |
Commit
2ea5948b6133c4dc82533f9ce4a8fd56eb04eda2
by Sven GothelBug 1363: Java 11: bring back bootclasspath for java 8 target accuracy
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
|
 | make/build-jogl.xml (diff) |
 | make/build-test.xml (diff) |
 | make/build-nativewindow.xml (diff) |
 | make/build-newt.xml (diff) |
 | make/build-oculusvr.xml (diff) |
 | make/build-staticglgen.xml (diff) |
|
 | make/build-newt.xml (diff) |
|
 | doc/HowToBuild.html (diff) |
|
 | make/scripts/make.jogl.all.macosx-java6.sh |
 | make/scripts/tests-x64.sh (diff) |
 | make/scripts/tests-solx32.sh (diff) |
 | make/scripts/tests-solx64.sh (diff) |
 | make/scripts/tests-x32-dbg.bat (diff) |
 | make/scripts/tests-x64-dbg.bat (diff) |
 | make/scripts/tests-javaws-x64.bat (diff) |
 | make/scripts/tests-x32.sh (diff) |
 | make/scripts/test-win32-smb_share.bat (diff) |
 | make/scripts/setvc9-jogl.bat |
 | make/scripts/make.jogl.all.ios.arm64.sh (diff) |
 | make/scripts/make.jogl.all.macosx.sh (diff) |
 | make/scripts/tests-x64-custom.sh (diff) |
 | make/scripts/tests-osx-x64-mainthread.sh (diff) |
 | make/scripts/tests-osx-x64-java6.sh |
 | make/scripts/tests-macosx64-junit-java7.sh |
 | make/scripts/tests-osx-x64-custom.sh (diff) |
 | make/scripts/make.jogl.all.ios.amd64.sh (diff) |
 | make/scripts/make.jogl.all.linux-x86_64.java7.sh |
 | make/scripts/tests-x64.bat (diff) |
 | make/scripts/tests-osx-x64.sh (diff) |
 | make/scripts/tests-x32.bat (diff) |
 | make/scripts/tests-osx-x32.sh (diff) |
 | make/scripts/tests.sh (diff) |
Commit
c834ffbeffe454f758089c6ee17f8863acc3e7c5
by Sven GothelFixed clean target so it doesn't fail if GlueGenTask is not present
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" />
|
 | make/build-nativewindow.xml (diff) |
 | make/build-jogl.xml (diff) |
 | make/build-common.xml (diff) |
 | make/build-oculusvr.xml (diff) |
Commit
ddd64dc3eb0172654aff5a4c61a389b23d92d0e3
by Sven GothelBug 1363: Java 11: (Hack) Inject OpenJFX [basic, graphics] into CLASSPATH
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.
|
 | make/lib/openjfx/11/copyright |
 | make/build-common.xml (diff) |
 | make/lib/openjfx/11/javafx-base-11.jar |
 | make/lib/openjfx/11/README.txt |
 | make/lib/openjfx/11/javafx-graphics-11.jar |
Commit
e1c8add69973b0eae9a87cf2181a0f1cbbe62f4b
by Sven GothelRemoved illegal reflective access to sun.java2d.opengl.OGLUtilities
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.
|
 | src/jogl/classes/jogamp/opengl/awt/Java2D.java (diff) |
Commit
13c6bbbde5ea476d60e0a2f04a5172d3302d0edd
by Sven GothelBug 1363: Java 11: Don't use sun.awt.SunToolkit.awtLock/Unlock on Java9+ [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.
|
 | make/scripts/tests.sh (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff) |
Commit
c7858dc766cb9f76ac8f543796b1587a0f8f9279
by Sven GothelBug 1363: Java 11: Don't use GraphicsDevice.getScaleFactor() on Java9+ [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
|
 | src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff) |
Commit
24b75b2e91ec5f101b19fa24aa3804adb3819ebf
by Sven GothelBug 1363: Java 11: Use getPixelScale standard method even on Mac under Java9+
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.
|
 | src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff) |
Commit
7ec068e0c95a230101450cc80031f76770a0cd49
by Sven GothelBug 1363: Java 11: Resolve unsupported JAWTUtil.getMonitorDisplayID(..)
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.
|
 | src/newt/classes/jogamp/newt/awt/NewtFactoryAWT.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff) |
Commit
a17e86a07e53e47c778c6e36341c6c0e6874991e
by Sven GothelReverting erroneous junit-test task condition (ant build)
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
|
 | make/build.xml (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/util/awt/TextRenderer.java (diff) |
Commit
209bb2f0dc3418d168dc6887802bf4368b6d6f4e
by Sven GothelBug 1384: Allow GLRendererQuirks to be overridden by user properties
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.
|
 | src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/JoglVersion.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/GLProfile.java (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff) |
Commit
c896476cc309ab9705329da2c9776a6c481fdb5f
by Sven GothelBug 1383: Cleanup GLContextImpl.setGLFunctionAvailability(..): Parameter, 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'.
|
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/GLContext.java (diff) |
|
 | src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLContext.java (diff) |
 | src/jogl/classes/jogamp/opengl/x11/glx/X11GLXContext.java (diff) |
 | src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXExternalCGLContext.java (diff) |
 | src/jogl/classes/jogamp/opengl/windows/wgl/WindowsExternalWGLContext.java (diff) |
 | src/jogl/classes/jogamp/opengl/x11/glx/X11ExternalGLXContext.java (diff) |
Commit
615359e6a70f88bbe3db9664d27c7a4276e58415
by Sven GothelBug 1383: GLContextImpl.setGLFunctionAvailbility(..): Ensure only one 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'
|
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
Commit
bd4be8b54a43b95d7dec90f6dbd0905987ad7605
by Sven GothelBug 1383: Final fix: Always test GL3CompatNonCompliant and test on requested 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.
|
 | src/jogl/classes/com/jogamp/opengl/GLProfile.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
 | make/scripts/tests.sh (diff) |
Commit
21f82eb8b74a60cc8a869e073e124d44c75f217e
by Sven GothelBug 1383: Tighten version/profile qualification: fail if: requested compat 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
|
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
|
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/GLContext.java (diff) |
|
 | .classpath (diff) |
|
 | make/scripts/check-junit.sh (diff) |
Commit
c5431f46b7bf64f109315ec78461859dd88f202a
by Sven GothelBug 1363: Java 11: JAWTUtil: Use sun.awt.SunToolkit.awtLock/Unlock and 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.
|
 | src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/awt/GLCanvas.java (diff) |
 | src/newt/classes/jogamp/newt/driver/awt/AWTCanvas.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/jawt/JAWTUtil.java (diff) |
Commit
b90fcb88cf208dad27402256e4f08659b17ba567
by Sven GothelBug 1363: Java 11: Utilize UnsafeUtil.doWithoutIllegalAccessLogger(..) avoiding further unnecessary warnings
Access to said internal non-exported methods is essential.
See commit c5431f46b7bf64f109315ec78461859dd88f202a.
Further added verbose DEBUG output where applicable.
|
 | src/nativewindow/classes/jogamp/nativewindow/jawt/x11/X11SunJDKReflection.java (diff) |
 | src/nativewindow/classes/com/jogamp/nativewindow/awt/AppContextInfo.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/jawt/windows/Win32SunJDKReflection.java (diff) |
Commit
90760ac8eebe7431ac7392e4ebf3f9009e63cd72
by Sven GothelBug 1390: Fix GLPixelBuffer.GLPixelAttributes::convert(GL, int, boolean) 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.
|
 | make/scripts/make.jogl.all.linux-x86_64.sh (diff) |
 | make/scripts/make.jogl.all.macosx.sh (diff) |
 | make/scripts/tests.sh (diff) |
 | src/jogl/classes/com/jogamp/opengl/util/GLPixelBuffer.java (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/GLDrawableFactory.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff) |
Commit
2ab629205c88978891271dd51cfa2a1669a6eec2
by Sven GothelBug 1392: Add CapabilitiesFilter and GLCapabilitiesFilter supporting diverse 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.
|
 | src/jogl/classes/com/jogamp/opengl/GLCapabilitiesFilter.java |
 | src/nativewindow/classes/com/jogamp/nativewindow/CapabilitiesFilter.java |
Commit
56a9f30fde429663514c6d5c810af2c43cb7ebf3
by Sven GothelBug 1391 Bug 1392: Implement GLRendererQuirks DontChooseFBConfigBestMatch 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.
|
 | src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfigurationFactory.java (diff) |
 | src/jogl/classes/jogamp/opengl/x11/glx/X11PbufferGLXDrawable.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile03NEWTOffscreen.java (diff) |
 | make/scripts/tests.sh (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
 | src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java (diff) |
 | src/jogl/classes/jogamp/opengl/windows/wgl/WindowsWGLGraphicsConfiguration.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfile01NEWT.java (diff) |
 | src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfiguration.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff) |
Commit
7f6d030ba91060aa4dedbf4311290c5cf5f61c4a
by Sven GothelBug 1392: X11PixmapGLXDrawable::createPixmap() requires 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.
|
 | src/jogl/classes/jogamp/opengl/x11/glx/X11GLXGraphicsConfiguration.java (diff) |
|
 | src/nativewindow/classes/com/jogamp/nativewindow/CapabilitiesFilter.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/GLCapabilitiesFilter.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff) |
Commit
534d764474cacf8bc380123cbfd164c7c55f236a
by Sven GothelBuig 1389: Fix SIGSEGV on OpenJDK11 on [NSApplicationAWT sendEvent:]
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.
|
 | make/scripts/tests-osx-x64-java8.sh |
 | src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff) |
 | src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java (diff) |
 | make/scripts/tests.sh (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/awt/TestGearsAWT.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java (diff) |
 | src/nativewindow/native/macosx/OSXmisc.m (diff) |
 | make/scripts/tests-osx-x64.sh (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff) |
 | make/scripts/tests-macosx64-junit-swt.sh |
 | make/scripts/tests-osx-junit-swt.sh |
|
 | src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff) |
Commit
b12a80e386b12d9d8fa63cf07124f8da989dcd04
by Sven GothelBug 1393: Run orderFront0(=setVisible) async off-thread on AppKit after sync 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
|
 | src/newt/native/MacWindow.m (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
 | src/newt/native/MacNewtNSWindow.m (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase00.java (diff) |
 | src/newt/native/IOSWindow.m (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff) |
Commit
e33aa16904d8abddaeceb1374ffa45bd45a96210
by Sven GothelBug 1393: MacOS/iOS: Issue updateSizePosInsets0 async to AppKit Main-Thread
Additionally, setPointerIcon0 must also be made async on AppKit (instead of wait), we have to assume/hope the user won't pull the PointerIconImpl instance in-between ;-) Hence removing the comment regarding the lifecycle.
|
 | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
Commit
7e76df3a05b7eb2404cb4584ee0b34ea287eb9bf
by Sven GothelBug 1393: OSXUtil: Optionally inject Apple's 'Main Thread Checker'
To allow proper testing of whether all AppKit calls are performed on its Main-Thread where required, we inject the libMainThreadChecker.dylib when property 'nativewindow.debug.OSXUtil.MainThreadChecker' is set.
See <https://developer.apple.com/documentation/code_diagnostics/main_thread_checker?language=objc> Lib-Name: /Applications/Xcode.app/Contents/Developer/usr/lib/libMainThreadChecker.dylib
|
 | make/build-newt.xml (diff) |
 | make/scripts/tests.sh (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff) |
|
 | src/newt/classes/jogamp/newt/OffscreenWindow.java (diff) |
 | src/newt/native/bcm_vc_iv.c (diff) |
 | src/newt/classes/jogamp/newt/driver/intel/gdl/WindowDriver.java (diff) |
 | src/newt/native/X11Display.c (diff) |
 | src/newt/native/MacNewtNSWindow.m (diff) |
 | src/newt/native/X11Event.c (diff) |
 | src/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/bcm/egl/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/WindowImpl.java (diff) |
 | src/newt/native/KDWindow.c (diff) |
 | src/newt/native/X11Window.c (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/kd/WindowDriver.java (diff) |
 | make/scripts/tests.sh (diff) |
 | src/newt/native/WindowsWindow.c (diff) |
 | src/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff) |
 | src/newt/native/IOSNewtUIWindow.m (diff) |
|
 | src/newt/native/X11Display.c (diff) |
 | src/newt/native/MacNewtNSWindow.m (diff) |
 | src/newt/native/WindowsWindow.c (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/WindowImpl.java (diff) |
 | src/newt/native/IOSNewtUIWindow.m (diff) |
 | src/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
 | src/newt/native/X11Window.c (diff) |
Commit
b8db98376069a72ad40b7ef2fe2d9003aea2b091
by Sven GothelBug 1393: Add window position validation in TestDisplayLifecycle*NEWT
The OSX fixes for bug 1393 spun off certain tasks like position/size gathering async to AppKit, hence we should validate whether both are valid.
Further the TestDisplayLifecycle02NEWT had one bug, it retrieved 'screen.getViewportInWindowUnits()' while it was not yet initialized.
|
 | src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle01NEWT.java (diff) |
Commit
fe6600234cafe16afb1d06a0254d2135ffb71b12
by Sven GothelBug 1394 - NEWT X11Window didn't gather inset at window creation (properly)
X11Window.c's 'NewtWindows_getFrameExtends(..)' retrieves the insets via XGetWindowProperty on _NET_FRAME_EXTENTS.
Right after window creation this method fails as the WM did not yet provide the information as the window has not yet been mapped.
Implementation needs to retry for a certain amount of time (250ms) and maximum number of attempts (96 XEvent).
This issue surfaced while validating fix for Bug 1393, testing TestDisplayLifecycle02NEWT also on X11.
|
 | src/newt/native/X11Window.c (diff) |
Commit
ecc6794670b31d859763eb363ed3ead15d757977
by Sven GothelBug 1393: Adding test cases setting visibility before enabling exclusive context thread animator
MacOS Java11 freezes occur on 3rd NEWT window creation (orderFront) after enabling exclusive context thread animator. Here we add set visibility upfront which does not trigger the freeze on the AppKit main thread. Note: OpenJDK8 works flawlessly. For some reason, the exclusive context thread enabled animator interferes when 'orderFront' is issued.
|
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase00.java (diff) |
Commit
b0a222100ce8425485bea201adf28dc6509333ad
by Sven GothelBug 1393: MacOS: Implement AppKit EDTUtil operating solely on main-thread
Introducing boolean property 'newt.macos.useAppKitEDTUtil', which defaults to 'false'. If enabled, the new AppKitEDTUtil is being used, operating on the AppKit main thread. This is used to ease debugging Bug 1393, minimizing thread context switches.
|
 | src/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/AppKitEDTUtil.java |
|
 | src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java (diff) |
 | src/nativewindow/native/macosx/OSXmisc.m (diff) |
|
 | src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff) |
|
 | src/newt/native/MacWindow.m (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java (diff) |
 | make/scripts/tests.sh (diff) |
|
 | make/scripts/tests-x32-dbg.bat (diff) |
 | make/scripts/tests-x64.bat (diff) |
 | make/scripts/make.jogl.all.win64.bat (diff) |
|
 | src/jogl/classes/jogamp/opengl/util/av/EGLMediaPlayerImpl.java (diff) |
 | make/config/jogl/egl-common.cfg (diff) |
|
 | src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff) |
 | src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff) |
|
 | src/newt/classes/jogamp/newt/driver/gbm/DisplayDriver.java |
 | src/newt/classes/jogamp/newt/driver/gbm/ScreenDriver.java |
 | make/build-common.xml (diff) |
 | make/build-newt.xml (diff) |
 | src/newt/native/gbm.c |
 | src/newt/classes/jogamp/newt/driver/gbm/WindowDriver.java |
|
 | src/newt/native/gbm.c (diff) |
 | src/newt/classes/jogamp/newt/driver/gbm/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/gbm/DisplayDriver.java (diff) |
|
 | src/newt/native/gbm.c (diff) |
|
 | src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff) |
 | src/newt/native/gbm.c (diff) |
 | src/newt/classes/jogamp/newt/driver/gbm/WindowDriver.java (diff) |
Commit
9b52db212f8749b61e4cf775fe3244b94c5ae41c
by Sven GothelBug 1156: EGL-GBM: Cleanup Code & Replace Newt GBM implementation
GBM driver is now under egl/gbm subpackage and has been replaced by bcm_vc_iv boilerplate. Native code is reentrant capable and cleaned up. TODO: EGLDisplayUtil work with SharedResourceRunner
|
 | src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff) |
 | make/build-common.xml (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java |
 | src/newt/native/bcm_vc_iv.c (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java |
 | src/newt/classes/jogamp/newt/driver/gbm/ScreenDriver.java |
 | src/newt/classes/jogamp/newt/driver/gbm/DisplayDriver.java |
 | src/newt/native/egl_gbm.c |
 | src/newt/native/gbm.c |
 | src/newt/classes/jogamp/newt/driver/gbm/WindowDriver.java |
 | make/build-newt.xml (diff) |
 | make/scripts/tests.sh (diff) |
|
 | src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff) |
|
 | make/scripts/tests.sh (diff) |
 | make/build-newt.xml (diff) |
Commit
e674f4fa0e795bd67335025123f9af727d856f7d
by Sven GothelBug 1156: Utilize internal glGetStringi (same as glGetString) - Robostness
Using EGL-GBM, using desktop GL we end up with an unsatisfied linkage error after the ProcAddressTable has been reset using the 'hasMajor' and 'hasCtxOptions'. However looking up using 'reqMajor' and 'reqCtxOptions' seems to work. Needs more analysis.
This change also increases robustness for scanning through GL profiles at initialization.
|
 | src/jogl/classes/jogamp/opengl/ExtensionAvailabilityCache.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
 | src/jogl/native/GLContext.c (diff) |
|
 | src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff) |
|
 | src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLSurface.java (diff) |
Commit
30826d978258c16b06cdab34e5a4265406545c3f
by Sven GothelBug 1156: EGL-GBM: Fix NativeWindowFactory native-window-type query according to Bug 1156
- Special files like '/dev/dri/card0' can't be tested via isFile(), use exists()
Order for GNU/Linux (and other unices) IMHO is
1) Display Server (Vendor neutral) 1.1) running X11 display server (DISPLAY check enough?) 1.2) running WAYLAND display server (WAYLAND_DISPLAY check enough?)
2) Console Mode Vendor Neutral 2.1) GBM (how to check?)
3) Console Mode Vendor Specific 3.1) VCIV (how to check)
|
 | src/nativewindow/classes/jogamp/nativewindow/BcmVCArtifacts.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLES2DynamicLibraryBundleInfo.java (diff) |
 | src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff) |
Commit
3dcfa24384078fca34ce3cc877649f7e2c2c084b
by Sven GothelBug 1156: NEWT: NewtFactory.getCustomClass(..) Robustness
getCustomClass(..) shall throw all required exceptions upstream. Previous essential NEWT driver exception information got suppressed if failing, only disclosed in debug mode.
|
 | src/newt/classes/jogamp/newt/ScreenImpl.java (diff) |
 | src/newt/classes/com/jogamp/newt/NewtFactory.java (diff) |
 | src/newt/classes/jogamp/newt/WindowImpl.java (diff) |
 | src/newt/classes/jogamp/newt/DisplayImpl.java (diff) |
|
 | src/newt/native/egl_gbm.c (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff) |
Commit
976e89ff24da3b2cdf206e8ef8f222f54fb467de
by Sven GothelBug 1156: GBM: Bring up incl GL rendering (TODO: GBM working page flip / sync)
- EGLSurface: Factor out 'eglCreate[Platform]WindowSurface'
NEWT egl.gbm.WindowDriver -- Properly use GBM fourcc format and use as visualID for GBM surface creation and EGL config selection -- Create eglSurface within this class -- Hook up GBM/DRM page flip (not working yet, no visible artifacts - no swap)
- ProxySurfaceImpl.surfaceSwap() call upstreamSurface's implementation if available
TODO: 'Permission denied' calling: - drmSetMaster (optional) - drmModeSetCrtc - drmModePageFlip
|
 | make/scripts/tests.sh (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff) |
 | src/newt/native/egl_gbm.c (diff) |
 | src/newt/native/egl_gbm.h |
 | src/newt/native/egl_gbm_drmflip.c |
 | src/jogl/classes/jogamp/opengl/egl/EGLSurface.java (diff) |
 | src/nativewindow/classes/jogamp/nativewindow/ProxySurfaceImpl.java (diff) |
 | make/build-newt.xml (diff) |
 | src/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff) |
Commit
3e19c2267500c0c459e7dce8d2087387a56f3296
by Sven GothelBug 1156 - Implement DRM/GBM Support for JOGL(EGL) and NEWT
Adding new classes DRMLib (gluegen of drm + gbm), DRMUtil and DRMMode GBMDummyUpstreamSurfaceHook to new package jogamp.nativewindow.drm, allowing full awareness of DRM + GBM within NativeWindow for JOGL + NEWT.
DRMMode replaces the previous native code of collecting drmMode* attributes: active connector, used mode, encoder etc and also supports multiple active connectors.
DRMUtil handles the global static drmFd (file descriptor), currently only the GNU/Linux DRM device is supported.
GBMDummyUpstreamSurfaceHook provides a simple dummy GBM surface.
NativeWindow provides the new nativewindow_drm.so and nativewindow-os-drm.jar, which are included in most 'all' jar packages.
build property: setup.addNativeEGLGBM -> setup.addNativeDRMGBM
Changes NativeWindowFactory: - TYPE_EGL_GBM -> TYPE_DRM_GBM while keeping the package ID of '.egl.gbm' for NEWT (using EGL) - Initializing DRMUtil at initialization
Changes EGLDrawableFactory: - Using native GBM device for the default EGL display creation instead of EGL_DEFAULT_DISPLAY. This resolves issues as seen in Bug 1402, as well in cases w/o surfaceless support.
- GL profile mapping uses surfaceless when available for GBM, otherwise uses createDummySurfaceImpl (dummy GBM surface via GBMDummyUpstreamSurfaceHook)
- createDummySurfaceImpl uses a dummy GBM surface via GBMDummyUpstreamSurfaceHook
- DesktopGL not available with GBM, see Bug 1401
NEWT's DRM + GBM + EGL Driver - Using DRMLib, DRMUtil and DRMMode, removed most native code but WindowDriver swapBuffer - ScreenDriver uses DRMMode, however currently only first connected CRT. - WindowDriver aligns position and size to screen, positions other than 0/0 causes DRM failure - WindowDriver reconfigure n/a
NEWT TODO: - DRM Cursor support (mouse pointer) - Pointer event handling
|
 | src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfiguration.java (diff) |
 | make/stub_includes/drm/gbm.h |
 | make/stub_includes/drm/drm-gbm-lib.c |
 | src/newt/native/egl_gbm.c |
 | src/newt/native/egl_gbm_drmflip.c |
 | make/build-newt.xml (diff) |
 | src/newt/native/drm_gbm.c |
 | src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff) |
 | src/newt/native/drm_gbm.h |
 | src/nativewindow/classes/jogamp/nativewindow/drm/DRMUtil.java |
 | make/stub_includes/drm/drm.h |
 | make/stub_includes/drm/xf86drm.h |
 | make/build-nativewindow.xml (diff) |
 | src/nativewindow/classes/com/jogamp/nativewindow/VisualIDHolder.java (diff) |
 | make/stub_includes/drm/drm_mode.h |
 | src/nativewindow/classes/jogamp/nativewindow/drm/DrmMode.java |
 | src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff) |
 | make/scripts/tests.sh (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff) |
 | make/config/nativewindow/drm-gbm-lib.cfg |
 | src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff) |
 | src/nativewindow/native/JVM_JNI8.c (diff) |
 | make/stub_includes/drm/xf86drmMode.h |
 | src/nativewindow/classes/jogamp/nativewindow/drm/GBMDummyUpstreamSurfaceHook.java |
 | make/build-common.xml (diff) |
 | make/scripts/gluegen-gl.sh (diff) |
 | src/newt/native/egl_gbm.h |
 | src/nativewindow/native/drm/DRMmisc.c |
 | src/newt/native/drm_gbm_legacy.c |
 | src/nativewindow/classes/com/jogamp/nativewindow/GraphicsConfigurationFactory.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
Commit
d7469d4fcbc6d92a696b90b52a75a233d4a30e5c
by Sven GothelBug 1402: Standalone native test attempting to reproduce issue
Mesa 18.3.6 issues mixing EGL_DEFAULT_DISPLAY and GBM device on EGL_PLATFORM_GBM_KHR
Interestingly, the issue is no more reproducible. Weird.
However, it is advised to use a real GBM device handle for EGL display creation under EGL_PLATFORM_GBM_KHR.
|
 | src/newt/native/make-drm_gbm_egl_test01.sh |
 | src/newt/native/drm_gbm_egl_test01.c |
|
 | src/jogl/classes/jogamp/opengl/egl/EGLSurface.java (diff) |
Commit
4fe9e1dfa67f4e5d614f48c02ad88e4cdd1ed415
by Sven GothelBug 1200: probeSurfacelessCtx works at least since NVIDIA 430.40.
Added this version as the safe version to limit GLRendererQuirks.NoSurfacelessCtx setting.
Bug 1200 - JOGL crashes on Debian8 GNU/Linux x86_64 'NVidia beta driver 355.06' @ probeSurfacelessCtx
|
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
|
 | .externalToolBuilders/jogl builder.launch (diff) |
|
 | src/newt/native/drm_gbm_egl_test01.c (diff) |
Commit
bdbdcdc800294db3a84926b79503fc2e0e919128
by Sven GothelBug 1156: LinuxKeyEventTracker: Fix 64bit InputEvent and attempt to only use keyboard event files
The time structure on 64bit machines uses two 8 byte long values instead of two 4 bytes int values on 32bit machines. The insufficient read on 64bit machines caused an IllegalArgument exception. This fix considers 32 or 64 bit operation.
Class renamed: LinuxEventDeviceTracker -> LinuxKeyEventTracker, as it tracks key events specifically.
Now the EventDeviceManager tries to only use /dev/input/by-id/*-event-kbd keyboard event files, which reduces the handling on kbd event files only.
|
 | src/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java |
 | src/newt/classes/jogamp/newt/driver/linux/LinuxEventDeviceTracker.java |
 | src/newt/classes/jogamp/newt/driver/linux/LinuxMouseTracker.java (diff) |
Commit
381858b82c5197193ba2f490a8282149536a54f7
by Sven GothelBug 1156: DRM/GBM: Add full PointerIcon (Cursor) Support
DRM allows 64x64 pixel cursor images, using GBM_FORMAT_ARGB888 only.
Notable: GBM_FORMAT_ARGB888 == PixelFormat.BGRA8888
Having fixed mouse and keyboard input with previous commit, the demo com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NEWT shows via key press - i -> pointer visible/invisible - c -> pointer icon change
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff) |
 | src/newt/native/drm_gbm.c (diff) |
 | src/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff) |
 | src/newt/native/drm_gbm_legacy.c (diff) |
|
 | src/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff) |
|
 | doc/HowToBuild.html (diff) |
|
 | make/scripts/tests-linux-aarch64.sh |
 | doc/HowToBuild.html (diff) |
Commit
453f80e38bcb0945e7eac27a5917dce9bdc6446b
by Sven GothelBug 1156: LinuxKeyEventTracker, LinuxMouseTracker: Adding property to disable each
LinuxKeyEventTracker also disable the eventX reading by default, but can be enabled via new property.
The 'return bug' (crash due to underlying console) is indeed not occuring when using a VT w/o running console application underneath.
As Xerxes showed, one may use chvt to a free known VT or openvt.
|
 | src/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff) |
 | src/newt/classes/jogamp/newt/driver/linux/LinuxMouseTracker.java (diff) |
Commit
94dbf9b151bfa8590ea223f58dfe43d45dc0783d
by Sven GothelBug 1156: LinuxKeyEventTracker, LinuxMouseTracker: Robostness (+NEWT fix)
commit 453f80e38bcb0945e7eac27a5917dce9bdc6446b added disabling the tracker, however the NEWT usage didn't cover all mouse tracker null pointer.
Further, let's initialize and spawn off the threads only at first getSingleton() call not at class initialization earlier.
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/bcm/vc/iv/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff) |
 | make/scripts/tests.sh (diff) |
 | src/newt/classes/jogamp/newt/driver/linux/LinuxMouseTracker.java (diff) |
|
 | src/newt/native/drm_gbm.c (diff) |
|
 | make/scripts/make.jogl.all.macosx.sh (diff) |
 | make/scripts/make.jogl.all.ios.arm64.sh (diff) |
 | make/scripts/make.jogl.all.ios.amd64.sh (diff) |
|
 | make/scripts/tests.sh (diff) |
Commit
d3f454a3d8d608f9efe90987af3f08db89ad6e25
by xerxesVC4: Broadcom uses libbrcmEGL.so, libbrcmGLESv2.so, libbrcmOpenVG.so and libbrcmWFC.so since 7 Jul 2016
Raspbian integration (two libGLES side-by-side) https://github.com/anholt/mesa/issues/24
|
 | src/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLES2DynamicLibraryBundleInfo.java (diff) |
Commit
164db661e2688bfbc53fec3357fc6885b14ab893
by xerxesVC4: Only load Broadcom EGL driver when guessVCIVUsed
Broadcom VC IV can be used from both console and from inside X11
When used from inside X11 rendering is done on an DispmanX overlay surface while keeping an X11 nativewindow under as input.
When Broadcom VC IV is guessed only the Broadcom DispmanX EGL driver is loaded. Therefore standard TYPE_X11 EGL can not be used.
|
 | src/nativewindow/classes/com/jogamp/nativewindow/NativeWindowFactory.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLES2DynamicLibraryBundleInfo.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java (diff) |
|
 | make/scripts/test-demo-launcher0.sh |
 | src/demos/com/jogamp/opengl/demos/Launcher0.java |
 | src/demos/com/jogamp/opengl/demos/MiscUtils.java |
Commit
e57de40bd0e1a318d59ca70f20a6f7d8a8921c74
by Sven GothelBug 1406: DRMUtil: Probe DRM device whether it has resources attached (and is the desired one)
First issue was that the proper DRM file had to be queries, as Raspberry 4 may have two of them: <-- /dev/dri/dri0 /dev/dri/dri0 /dev/dri/by-path/platform-fec00000.v3d-card -> ../card0 /dev/dri/by-path/platform-soc:gpu-card -> ../card1 -->
This patch attempts to probe all /dev/dri/card[0..99] using this arbitrary range. The test loop ends if: - drmOpenFile succeeds and drmModeGetResources delivers non-null value - the iterated probed file doesn't even exist - 100 files has been tested ;-)
|
 | src/nativewindow/classes/jogamp/nativewindow/drm/DRMUtil.java (diff) |
|
 | make/build-test.xml (diff) |
Commit
0094f906b423ea4ad21da5de34076e066b9122b9
by Sven GothelBug 1406: demos.Launcher0: More tests ..
Misc: - Remove unused SysExit.. - showFPS=true default - allow setting 'useDoubleBuffer' via '-single' - demos.es2.GearsES2: Don't be verbose on display even w/o animator
IF '-noanim', issue glWindow.display() from main thread instead of using the animator thread otherwise. This shall test the swap buffering code in single threaded mode!
|
 | make/scripts/test-demo-launcher0.sh (diff) |
 | src/demos/com/jogamp/opengl/demos/Launcher0.java (diff) |
 | src/demos/com/jogamp/opengl/demos/es2/GearsES2.java (diff) |
|
 | src/test/com/jogamp/opengl/test/junit/newt/parenting/NewtReparentingKeyAdapter.java (diff) |
 | src/demos/com/jogamp/opengl/demos/Launcher0.java (diff) |
 | src/newt/classes/com/jogamp/newt/opengl/util/NEWTDemoListener.java (diff) |
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
 | src/newt/native/drm_gbm_legacy.c (diff) |
|
 | src/demos/com/jogamp/opengl/demos/Launcher0.java (diff) |
 | make/scripts/test-demo-launcher0.sh (diff) |
Commit
d5ba4cae824087879a4857e20961a95da04eaebb
by Sven GothelNEWT: Align DisplayImpl.createPointerIcon(..) behavior; PointerIconImpl.validatedHandle() shall not create native resource.
Semantic cleanup for clarity and equal behavior
Align DisplayImpl.createPointerIcon(..) behavior - return null handle of createPointerIconImplChecked(..) shall be accepted, no exception for neither of the two creation methods.
PointerIconImpl.validatedHandle() shall not create native resource. - throws exception if handle is null (about to be used) - no native creation shall happen here.
Display.PointerIcon.validate(): Removed, not used.
|
 | src/newt/classes/jogamp/newt/PointerIconImpl.java (diff) |
 | src/newt/classes/jogamp/newt/DisplayImpl.java (diff) |
 | src/newt/classes/com/jogamp/newt/Display.java (diff) |
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff) |
|
 | make/scripts/test-demo-launcher0.sh (diff) |
 | src/newt/classes/jogamp/newt/DisplayImpl.java (diff) |
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
 | src/newt/native/drm_gbm.c (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff) |
|
 | src/demos/com/jogamp/opengl/demos/Launcher0.java (diff) |
|
 | src/newt/classes/com/jogamp/newt/opengl/util/NEWTDemoListener.java (diff) |
Commit
c80147e3112f3ac87e004c19819b820b42b737df
by Sven GothelBug 1156, Bug 1401: Disable DesktopGL on EGL w/ DRM/GBM earlier in initialization
Was within hasOpenGLDesktopSupport(), but then DesktopGL libs would have been already loaded and looked-up. This is not necessary and only wastes resources and time.
|
 | src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff) |
|
 | src/demos/com/jogamp/opengl/demos/Launcher0.java (diff) |
 | make/scripts/test-demo-launcher0.sh (diff) |
|
 | src/newt/classes/jogamp/newt/driver/linux/LinuxKeyEventTracker.java (diff) |
Commit
033ee4cad3493038480b06f6caf3de015a3e8de7
by Sven GothelBug 1405, Bug 1406, Bug 1408: Resolution: Call ReleasePrimitiveArrayCritical(..) in GetPrimitiveArrayCritical(..) code path!
Now that was quite a miss, causing the bugs in the first place! The freeze was caused in the JVM, as this open GetPrimitiveArrayCritical(..) disabled the GC. This was reported via '-Xcheck:jni'. Depending on the system/jvm, the freeze may happen early or only after a while.
This code path was not executed with new property 'newt.disable.PointerIcon' set, but from there to finding the missing critical release - a journey:
- jstack showed
"main" #1 prio=5 os_prio=0 cpu=275.71ms elapsed=51.93s allocated=9710K defined_classes=472 tid=0x00007f7084015000 nid=0x1a39 waiting on condition [0x00007f70897c2000] java.lang.Thread.State: RUNNABLE at jogamp.opengl.es3.GLES3Impl.dispatch_glUniformMatrix4fv1(Native Method) at jogamp.opengl.es3.GLES3Impl.glUniformMatrix4fv(GLES3Impl.java:2585) at jogamp.opengl.es3.GLES3Impl.glUniform(GLES3Impl.java:10713)
-- said that this thread was no more running, waiting on condition .. -- glUniformMatrix4fv1 was given an array!
- '-Xcheck:jni' gave:
Warning: Calling other JNI functions in the scope of Get/ReleasePrimitiveArrayCritical or Get/ReleaseStringCritical
-- Now it is clear that the lack of releasing the critical array, returning to Java and then calling other JNI methods caused the Warning - and eventually the freeze.
|
 | src/newt/native/drm_gbm.c (diff) |
|
 | src/newt/classes/jogamp/newt/DisplayImpl.java (diff) |
 | src/newt/classes/jogamp/newt/PointerIconImpl.java (diff) |
Commit
c317985db39f840f6edf9860487c604e6e31c2ba
by Sven GothelBug 1409: GNU/Linux DRM Console: Clear stdin before exit and don't act on stdin in vsync-wait-loop
User input during test from the console will also end up in stdin of the console after the java application has been closed. This is not only annoying, but also a security concern, as the input gets executed if containing a CR.
Further, the vsync-wait-loop shall ignore stdin.
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff) |
 | src/newt/native/drm_gbm.c (diff) |
 | src/newt/native/drm_gbm_legacy.c (diff) |
|
 | src/newt/classes/jogamp/newt/PointerIconImpl.java (diff) |
Commit
de13e49aadd4b4df09eb1ab37c84cda404586ba5
by Sven GothelBug 1410: Fix NEWT PointerIcon Lifecycle (destroy and clean references @ closing)
Commit d5ba4cae824087879a4857e20961a95da04eaebb clarified and simplified the lifecycle of a PointerImpl instance, i.e. drop its resurrection in PointerImpl.validateHandle() in favor of a hard exception.
This caused detection of subsequent PointerImpl lifecycle issues, as instances were not fully destroyed on Display closing and references not null'ed in Display and Screen instances.
|
 | make/scripts/tests.sh (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/ScreenDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff) |
|
 | src/newt/native/NewtCommon.h (diff) |
 | src/newt/native/X11Display.c (diff) |
 | src/newt/native/NewtCommon.c (diff) |
 | src/newt/native/X11Window.c (diff) |
Commit
578edfc20915e2e2aa18aa06e49f7341f86990c4
by Sven GothelBug 1413 - NEWT X11Window: NewtWindows_getFrameExtends(..) may hang on XPeekEvent(..)
The wait loop uses XPeekEvent(dpy, &e), which can block indefinite if queue is empty.
Replace with timeout only _and_ only wait on CreateWindow0(..) not when queried via X11Display dispatch loop on events when it is assumed the information has been propagated already.
|
 | src/newt/native/X11Window.c (diff) |
 | src/newt/native/X11Common.h (diff) |
 | src/newt/native/X11Display.c (diff) |
|
 | src/newt/native/NewtCommon.c (diff) |
|
 | src/newt/native/NewtCommon.h (diff) |
 | src/newt/native/NewtCommon.c (diff) |
|
 | make/build-common.xml (diff) |
 | make/scripts/junit-linux-x86_64-headless.sh |
 | make/build-test.xml (diff) |
 | make/scripts/junit-linux-armv6hf-headless.sh |
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
 | src/newt/native/drm_gbm_legacy.c (diff) |
Commit
bb3ee12b7aeef276a03f091333eacc68542e784b
by Sven GothelBug 1200: GLRendererQuirks.NoSurfacelessCtx still persists on Linux/X11 NVIDIA 440.36 using FBO
Tested with com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingGearsNewtAWT, which crashes in native makeCurrent of NV driver gl-core when using SurfacelessCtx.
Therefor we had to revert the commit 4fe9e1dfa67f4e5d614f48c02ad88e4cdd1ed415 enabling SurfacelessCtx with NV driver >= 430.40.
|
 | make/scripts/tests.sh (diff) |
 | src/jogl/classes/com/jogamp/opengl/GLRendererQuirks.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
Commit
2e59792eba285d7cd3c2f4f4c78838b8cc8918f7
by Sven GothelBug 1393: Make window position check more tolerant (2x insets or 64 pixels, whichever is greater)
Certain WM's may modify the windowing position 'a little', which has been experienced on one X11 server during invisible setting. The insets were removed and its value added to the position!
We could argue that this is an issue in our windowing code, however, the WM is free to reposition a window.
Refines commit b8db98376069a72ad40b7ef2fe2d9003aea2b091
|
 | src/test/com/jogamp/opengl/test/junit/util/NewtTestUtil.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle01NEWT.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle02NEWT.java (diff) |
|
 | src/newt/classes/jogamp/newt/WindowImpl.java (diff) |
Commit
dd8f6f0c884161eb1099ff1ab8af20383984771d
by Sven GothelBug 1415: ExclusiveContextBase00+10: Utilize one Animator per Window for clean ExclusiveContextThread
No, this does not resolve the issue - but is the proper test case. ExclusiveContextBase10 also gets the preVis test.
|
 | make/scripts/tests.sh (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase10.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase00.java (diff) |
|
 | make/scripts/tests.sh (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase00.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/ect/ExclusiveContextBase10.java (diff) |
|
 | make/scripts/make.jogl.all.linux-x86_64.sh (diff) |
 | make/scripts/tests.sh (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff) |
|
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
Commit
3e92d34de3672d7f5e401ed6181bb55a58bdf4b6
by Sven GothelBug 1156: NEWT Window: Better handling of fixed console case: Not resizable and not repositionable.
Our two fixed size and position console cases 'bcm.egl' and 'egl.gbm' (drm.gbm) only operate in a console like fullscreen mode.
We should earmark and expose this behavior, as well as handle it by not waiting for a position / size and not attempting to change position and size.
Reducing WindowImpl.minimumReconfigStateMask to bare minimum values: STATE_MASK_VISIBLE | STATE_MASK_FOCUSED; New WindowImpl.mutableSizePosReconfigStateMask extends WindowImpl.minimumReconfigStateMask, representing previous values: STATE_MASK_VISIBLE | STATE_MASK_FOCUSED | STATE_MASK_FULLSCREEN | STATE_MASK_RESIZABLE | STATE_MASK_REPOSITIONABLE;
All WindowDriver implementations previously using WindowImpl.minimumReconfigStateMask are now using WindowImpl.mutableSizePosReconfigStateMask but the explicit console driver named above.
I would have liked to add the STATE_BIT_FULLSCREEN to the current stateMask to notify this semantics, however this would have lead to more code changes as our fullscreen mode assumes to be 'on top' of the normal mode. Here the normal mode is essentially fullscreen and no back/forth fullscreen setting is useful or allowed. Therefore, both fixed size & position console driver won't expose themselves as being in fullscreen mode.
|
 | src/newt/classes/jogamp/newt/WindowImpl.java (diff) |
 | src/newt/classes/jogamp/newt/driver/awt/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/OffscreenWindow.java (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java (diff) |
 | src/newt/classes/com/jogamp/newt/Window.java (diff) |
 | src/newt/classes/jogamp/newt/driver/kd/WindowDriver.java (diff) |
 | src/newt/native/X11Window.c (diff) |
 | src/newt/native/Window.h (diff) |
 | src/newt/classes/jogamp/newt/driver/android/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/x11/WindowDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/windows/WindowDriver.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLContextSurfaceLockNEWT.java (diff) |
 | src/newt/classes/jogamp/newt/driver/intel/gdl/WindowDriver.java (diff) |
Commit
3c9b7bcec2ae06060726c49e34b1d606f66d31c6
by Sven GothelBug 1416 - Allow EGLDrawableFactory re-creation after shutdown() - be functional
TestShutdownCompleteNEWT revealed that EGLDrawableFactory won't be properly re-created within subsequent GLProfile/GLDrawableFactory initSingleton() after a GLProfile.shutdown() call.
Hence after the shutdown() call, subsequent GLProfile have no EGLDrawableFactory available and hence may not have a default device existent in case no desktop-factory is available.
Allow EGLDrawableFactory to be re-created after a shutdown().
|
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLProfileXXNEWTPost.java (diff) |
 | make/scripts/tests.sh (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/InitConcurrentBaseNEWT.java (diff) |
|
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestCPUSourcingAPINEWT.java (diff) |
|
 | src/newt/classes/jogamp/newt/driver/egl/gbm/WindowDriver.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/GLCapabilities.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java (diff) |
|
 | make/build-test.xml (diff) |
Commit
c5fabde01babfdd07c72347ff17ac0705b8c6c5a
by Sven GothelBug 1411 DRM/GBM JOGL: Fix 'junit.run.console' unit test target, use it in respective (renamed) scripts.
Added junit.run.console target in build.xml
build-test.xml - Moves all results.test artifact moving from current directory into test-zip-archive target, reducing duplication.
- junit.run.console: Added proper dependencies etc
Renamed scripts to match junit.run.console: junit-linux-x86_64-headless.sh -> junit-linux-x86_64-console.sh junit-linux-armv6hf-headless.sh -> junit-linux-armv6hf-console.sh
|
 | make/scripts/junit-linux-armv6hf-console.sh |
 | make/scripts/junit-linux-x86_64-headless.sh |
 | make/scripts/junit-linux-x86_64-console.sh |
 | make/build-test.xml (diff) |
 | make/scripts/junit-linux-armv6hf-headless.sh |
 | make/build.xml (diff) |
|
 | make/build-test.xml (diff) |
Commit
548553e189f8f9fa60d6c59da6bf0a4bd1bf7505
by Sven GothelBug 1411 DRM/GBM JOGL: Fix 'junit.run.console' - fourth times
the property 'generic.junit.run.newt.headless.include.pattern' to run target 'generic.junit.run.newt.headless' multiple times for different unit tests must be unset within the caller space of ant.
also fixed other occasions (never really worked on multiple calls).
|
 | make/build-test.xml (diff) |
|
 | make/build-newt.xml (diff) |
 | make/scripts/make.jogl.all.android-armv6-cross.sh (diff) |
 | make/scripts/make.jogl.all.android-x86-cross.sh (diff) |
 | make/scripts/make.jogl.all.android-aarch64-cross.sh (diff) |
 | make/build-jogl.xml (diff) |
 | make/build-nativewindow.xml (diff) |
Commit
b91c680fb93a03720ff9fcb39cf052cfe8d40e76
by Sven GothelBug 1156: Seperate DRM/GBM NEWT native library from main head NEWT native library
DRM/GBM is enabled for Linux in general. Nativewindow's 'nativewindow_drm' DRM/GBM native library is already seperated.
NEWT get its 'newt_drm' DRM/GBM native library.
NEWT's main head native library is renamed from 'newt' -> 'newt_head' and is earmarked for further seperation similar to Nativewindow's. At least a 'newt_wayland' will probably followup when support is added.
Goal is to remove DRM/GBM dependency for Linux X11 operation as well as removing X11 dependency for Linux DRM/GBM operation.
|
 | src/newt/classes/jogamp/newt/NEWTJNILibLoader.java (diff) |
 | make/build-newt.xml (diff) |
 | src/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/egl/gbm/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/intel/gdl/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/android/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/ios/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java (diff) |
 | src/newt/classes/com/jogamp/newt/util/MainThread.java (diff) |
 | src/newt/classes/jogamp/newt/driver/windows/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/bcm/egl/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/kd/DisplayDriver.java (diff) |
 | src/newt/classes/jogamp/newt/driver/bcm/vc/iv/DisplayDriver.java (diff) |
 | make/scripts/tests.sh (diff) |
|
 | make/build-jogl.xml (diff) |
 | make/build-common.xml (diff) |
Commit
784dcfa2094f3fb235ca4b60395708a1f87c0b1b
by Sven GothelBug 1156 Regression (Bug 1417): Probe whether 'eglGetPlatformDisplay(..)' is available before using
commit f4281b5ee80d7674134bfee357695a98382884a3 for Bug 1156 (DRM/GBM) introduced the call to 'eglGetPlatformDisplay(..)' for known EGL-platforms.
However, 'eglGetPlatformDisplay(..)' is only available for EGL versions >= 1.5 or 'eglGetPlatformDisplayEXT(..)' if EGL extension 'EGL_EXT_platform_base' is available.
This patch adds a singular EGL version probe and a secondary extension fallback test at first call using EGL_NO_DISPLAY on both EGL_VERSION and EGL_EXTENSION eglQueryString(..) calls.
If 'eglGetPlatformDisplay*(..)' is not available, simply use 'eglGetDisplay(..)'.
This regression also impacted Bug 1417 (Android bringup using current SDK + NDK), i.e. disabled most Android devices as their EGL version is often 1.4.
|
 | src/test/com/jogamp/opengl/test/android/NEWTGearsES2ActivityLauncher.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java (diff) |
|
 | make/scripts/adb-reinstall-all-x86.sh |
 | make/scripts/adb-install-all-x86.sh |
|
 | make/resources/android/AndroidManifest-jogl.xml (diff) |
 | make/resources/android/AndroidManifest-test.xml (diff) |
 | make/build.xml (diff) |
 | make/build-test.xml (diff) |
Commit
50f9c9e113b09ab54ba40abba6b2face27c9a139
by Sven GothelBug 1287 - Complete Immutable glNamedBufferStorage support in GLBufferObjectTracker
As of the time of implementation, named immutable buffers were not fully supported within GL 4.4. This has changed, i.e. GL 4.5 supports glNamedBufferStorage. This patch adds support for the immutable named buffer storage case.
jogl commit 09fc7aa5539731bb0fba835caee61f6eb837ecff, added GLBufferObjectTracker allowing to keep required references to NIO object. This tracker complements the NIO buffer lifecycle with the GL semantics.
|
 | src/jogl/classes/jogamp/opengl/GLBufferObjectTracker.java (diff) |
Commit
e2223107cc54e08031bd9505ce8a9ccc72673be0
by Sven GothelBug 1347: Resolve Merged EGL/Desktop Profile Mapping
GLProfile.computeProfileImpl(..) as of Bug 1084 is not the culprit here and its hardware criteria filter works.
The issue is commit 99a064327bf991318841c858d21d13e55d6b39db of Bug 1203, in particular the change in GLProfile re: "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."
Here the Desktop-Profile-Map overwrites the EGL-Profile-Map and hence the software mapping gets used.
Indeed, this is a regression cause by the work of Bug 1203.
+++
Resolution is to revert the explicit 'union mapping' and rely on an enhanced 'GLContextImpl.remapAvailableGLVersions(fromDevice, toDevice)' function. Here the EGLDrawableFactory _already_ maps the EGL device's GL Versions to the 'host' device (e.g. X11). This has to be refined so that the remap will not overwrite the 'host' device's already detected GL Versions.
That alone is enough, so that GLProfile can simply use the 'mappedEGLProfiles' of the 'host' device if detected, which already is a merged mapping of X11 host- and EGL sub-device.
In case no 'mappedEGLProfiles' are available, we simply use the 'mappedDesktopProfiles'.
|
 | src/jogl/classes/com/jogamp/opengl/GLProfile.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLContext.java (diff) |
 | src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
 | src/jogl/classes/com/jogamp/opengl/GLContext.java (diff) |
 | make/scripts/tests.sh (diff) |
|
 | src/jogl/classes/com/jogamp/opengl/util/texture/Texture.java (diff) |
|
 | src/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/Gears.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java (diff) |
Commit
658e25429aa150fad45a7c81a5a08f9ca35c4479
by Sven GothelBug 1312: GLContextShareSet Cleanup
- refine some method names, eg -- 'addNew' -> 'mapNewEntry' -- 'hasCreatedSharedLeft(..)' -> 'hasCreatedSharesLeft(..)'
- add 'getCreatedShareCount(..)' and 'getDestroyedShareCount(..)' - add 'getSize()' and 'printMap(..)'
|
 | src/jogl/classes/jogamp/opengl/GLContextImpl.java (diff) |
 | src/jogl/classes/jogamp/opengl/GLContextShareSet.java (diff) |
Commit
79833c9e4741bec9d1f56ea8b322679756b16f70
by Sven GothelBug 1312: GLContextShareSet: Utilize WeakIdentityHashMap for shareMap and its destroyedShares
Picking up Tom Nuydens suggestion to utilize a WeakIdentityHashMap instead of a IdentityHashMap, allowing destroyed GLContext to be removed from the GLContextShareSet through the GC.
TestSharedContextVBOES2NEWT5 demonstrates the use-case, having one master context and several slaves being spawn off, killed and new sets to be spawn off. Here the GLContextShareSet shall not hard-reference the destroyed and user-unreferenced context, but allowing the system to GC 'em.
|
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT4.java (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT5.java |
 | src/jogl/classes/jogamp/opengl/GLContextShareSet.java (diff) |
 | make/scripts/tests.sh (diff) |
 | src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2NEWT3.java (diff) |