'JOGL in macOS : can't get a program to compile and execute
I'm trying to compile and execute a program I found here:
https://github.com/nekonaute/WorldOfCells
It works fine on Linux (with linux-amd64), but on my own MacBook Pro (with Intel Core i5), I'm running into issues. I'm trying a few approaches both on my Mac and on an Ubuntu virtual machine. I'd appreciate it if anyone could point me in the right direction because I'm starting to spin my wheels.
First the Mac, which seems promising because it compiles at least :
Pauls-MacBook-Pro:WorldOfCells pauljarski$ javac -classpath "./jogl/gluegen2-rt.jar:./jogl/jogl2.jar:." applications/simpleworld/*.java
Picked up _JAVA_OPTIONS: -Djogl.disable.openglcore
Pauls-MacBook-Pro:WorldOfCells pauljarski$ java -classpath "./jogl/gluegen2-rt.jar:./jogl/jogl2.jar:." applications/simpleworld/MyEcosystem
Picked up _JAVA_OPTIONS: -Djogl.disable.openglcore
Landscape contains 40000 tiles. (200x200)
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /Users/pauljarski/WorldOfCells/natives/macosx-universal/gluegen2-rt
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2393)
at java.base/java.lang.Runtime.load0(Runtime.java:755)
at java.base/java.lang.System.load(System.java:1953)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:624)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:106)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:487)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:421)
at com.jogamp.common.os.Platform$1.run(Platform.java:316)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at com.jogamp.common.os.Platform.<clinit>(Platform.java:295)
at com.jogamp.opengl.GLProfile.<clinit>(GLProfile.java:147)
at com.jogamp.opengl.GLCapabilities.<init>(GLCapabilities.java:84)
at graphics.Landscape.run(Landscape.java:185)
at applications.simpleworld.MyEcosystem.main(MyEcosystem.java:23)
Unfortunately gluegen2-rt doesn't seem to exist anywhere. I created that macosx-universal folder and filled it with everything that seemed pertinent. No luck though.
On the virtual machine it also compiled, but...
(base) guest@virtual-ubuntu-2021:~/WorldOfCells$ javac -classpath "/usr/share/java/gluegen2-rt.jar:/usr/share/java/jogl2.jar:." applications/simpleworld/*.java
(base) guest@virtual-ubuntu-2021:~/WorldOfCells$ java -classpath "/usr/share/java/gluegen2-rt.jar:/usr/share/java/jogl2.jar:." applications/simpleworld/MyEcosystem
Landscape contains 16384 tiles. (128x128)
Caught handled GLException: EGLGLXDrawableFactory - Could not initialize shared resources for EGLGraphicsDevice[type .egl, v1.4.0, connection :0, unitID 0, handle 0x7ff98c001740, owner true, ResourceToolkitLock[obj 0x53efd8c1, isOwner true, <7aef5e19, 3c5cc13e>[count 1, qsz 0, owner <main-SharedResourceRunner>]]] on thread main-SharedResourceRunner
[0]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:518)
[1]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[2]: java.lang.Thread.run(Thread.java:748)
Caused[0] by NoSuchMethodError: java.nio.IntBuffer.rewind()Ljava/nio/IntBuffer; on thread main-SharedResourceRunner
[0]: com.jogamp.common.nio.Buffers.newDirectIntBuffer(Buffers.java:146)
[1]: com.jogamp.common.nio.Buffers.newDirectIntBuffer(Buffers.java:150)
[2]: com.jogamp.common.nio.Buffers.newDirectIntBuffer(Buffers.java:154)
[3]: jogamp.opengl.egl.EGLGraphicsConfiguration.EGLConfig2Capabilities(EGLGraphicsConfiguration.java:221)
[4]: jogamp.opengl.egl.EGLGraphicsConfigurationFactory.eglConfigs2GLCaps(EGLGraphicsConfigurationFactory.java:481)
[5]: jogamp.opengl.egl.EGLDrawableFactory.getAvailableEGLConfigs(EGLDrawableFactory.java:962)
[6]: jogamp.opengl.egl.EGLDrawableFactory.access$800(EGLDrawableFactory.java:88)
[7]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.mapAvailableEGLESConfig(EGLDrawableFactory.java:679)
[8]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createEGLSharedResourceImpl(EGLDrawableFactory.java:613)
[9]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:516)
[10]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[11]: java.lang.Thread.run(Thread.java:748)
Caught handled GLException: X11GLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x50a195c3, isOwner false, <a73eeec, 3eb4a922>[count 0, qsz 0, owner <NULL>]]] on thread main-SharedResourceRunner
[0]: jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:306)
[1]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[2]: java.lang.Thread.run(Thread.java:748)
Caused[0] by NoSuchMethodError: java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer; on thread main-SharedResourceRunner
[0]: com.jogamp.common.nio.StructAccessor.slice(StructAccessor.java:68)
[1]: jogamp.nativewindow.x11.XRenderPictFormat.getDirect(XRenderPictFormat.java:94)
[2]: com.jogamp.nativewindow.x11.X11GraphicsConfiguration.XVisual2XRenderMask(X11GraphicsConfiguration.java:66)
[3]: jogamp.opengl.x11.glx.X11GLXGraphicsConfiguration.GLXFBConfig2GLCapabilities(X11GLXGraphicsConfiguration.java:353)
[4]: jogamp.opengl.x11.glx.X11GLXGraphicsConfiguration.GLXFBConfig2GLCapabilities(X11GLXGraphicsConfiguration.java:292)
[5]: jogamp.opengl.x11.glx.X11GLXGraphicsConfigurationFactory.chooseGraphicsConfigurationFBConfig(X11GLXGraphicsConfigurationFactory.java:311)
[6]: jogamp.opengl.x11.glx.X11GLXGraphicsConfigurationFactory.chooseGraphicsConfigurationStatic(X11GLXGraphicsConfigurationFactory.java:234)
[7]: jogamp.opengl.x11.glx.X11GLXDrawableFactory.createMutableSurfaceImpl(X11GLXDrawableFactory.java:531)
[8]: jogamp.opengl.x11.glx.X11GLXDrawableFactory.createDummySurfaceImpl(X11GLXDrawableFactory.java:542)
[9]: jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:263)
[10]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[11]: java.lang.Thread.run(Thread.java:748)
Caught handled GLException: EGLGLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x50a195c3, isOwner true, <a73eeec, 3eb4a922>[count 1, qsz 0, owner <main-SharedResourceRunner>]]] on thread main-SharedResourceRunner
[0]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:518)
[1]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[2]: java.lang.Thread.run(Thread.java:748)
Caused[0] by InternalError: XXX: defaultDevice EGLGraphicsDevice[type .egl, v1.4.0, connection :0, unitID 0, handle 0x7ff98c001740, owner true, ResourceToolkitLock[obj 0x53efd8c1, isOwner false, <7aef5e19, 3c5cc13e>[count 0, qsz 0, owner <NULL>]]], adevice X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x50a195c3, isOwner true, <a73eeec, 3eb4a922>[count 1, qsz 0, owner <main-SharedResourceRunner>]]] on thread main-SharedResourceRunner
[0]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createEGLSharedResourceImpl(EGLDrawableFactory.java:563)
[1]: jogamp.opengl.egl.EGLDrawableFactory$SharedResourceImplementation.createSharedResource(EGLDrawableFactory.java:516)
[2]: jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:353)
[3]: java.lang.Thread.run(Thread.java:748)
Exception in thread "main" com.jogamp.opengl.GLException: Profile GL_DEFAULT is not available on X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x50a195c3, isOwner false, <a73eeec, 3eb4a922>[count 0, qsz 0, owner <NULL>]]], but: []
at com.jogamp.opengl.GLProfile.get(GLProfile.java:991)
at com.jogamp.opengl.GLProfile.getDefault(GLProfile.java:722)
at com.jogamp.opengl.GLCapabilities.<init>(GLCapabilities.java:84)
at graphics.Landscape.run(Landscape.java:185)
at applications.simpleworld.MyEcosystem.main(MyEcosystem.java:23)
X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 1/1, reusable (open, marked uncloseable): 0, pending (open in creation order): 1)
X11Util: Open X11 Display Connections: 1
X11Util: Open[0]: NamedX11Display[:0, 0x7ff984006ba0, refCount 1, unCloseable false]
(base) guest@virtual-ubuntu-2021:~/WorldOfCells$
Thanks in advance for your help!
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|