Giter Club home page Giter Club logo

jogl-maven-deployer's People

Contributors

jzy3d avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

jogl-maven-deployer's Issues

Proposal: distinguish Maven artifacts using classifier, not artifactId

It's helpful for gluegen-rt-v2.4.0-rc4.jar and gluegen-rt-v2.4.0-rc4-natives-macosx-universal.jar to be installed to the same directory:

image

This enables compatibility with calls such as:

if (TempJarCache.initSingleton() && TempJarCache.isInitialized(true)) {
  boolean located = JNILibLoaderBase.addNativeJarLibs(new Class<?>[] { jogamp.common.Debug.class }, null);
}

addNativeJarLibs locates gluegen-rt-v2.4.0-rc4.jar correctly, and assumes that gluegen-rt-v2.4.0-rc4-natives-macosx-universal.jar will be located next to it.

You can achieve this by making the two artifacts agree on artifactId, but differ by classifier:

"$MVN" install:install-file -DgroupId=org.jogamp.gluegen -DartifactId=gluegen-rt                                       -Dversion="$version" -Dfile="${LIB}/gluegen-rt.jar"                          -Dpackaging=jar
"$MVN" install:install-file -DgroupId=org.jogamp.gluegen -DartifactId=gluegen-rt -Dclassifier=natives-macosx-universal -Dversion="$version" -Dfile="${LIB}/gluegen-rt-natives-macosx-universal.jar" -Dpackaging=jar
"$MVN" install:install-file -DgroupId=org.jogamp.jogl -DartifactId=jogl-all                                            -Dversion="$version" -Dfile="${LIB}/jogl-all.jar"                            -Dpackaging=jar
"$MVN" install:install-file -DgroupId=org.jogamp.jogl -DartifactId=jogl-all      -Dclassifier=natives-macosx-universal -Dversion="$version" -Dfile="${LIB}/jogl-all-natives-macosx-universal.jar"   -Dpackaging=jar

This JOGL version Is not working on Linux Mint 20, 20.1, 20.2 20.3

When I build my application with this jogl version (that also works on macOS M1 hardware), I get the following issue when OpenGl is initialized on Linux Mint 20:

Warning: Caught Exception while retrieving executable temp base directory:
java.io.IOException: Could not determine a temporary executable directory
at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1336)
at com.jogamp.common.util.cache.TempFileCache.(TempFileCache.java:84)
at com.jogamp.common.util.cache.TempJarCache.initSingleton(TempJarCache.java:96)
at com.jogamp.common.os.Platform$1.run(Platform.java:313)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at com.jogamp.common.os.Platform.(Platform.java:290)
at com.jogamp.opengl.GLProfile.(GLProfile.java:154)
at com.ariesproductions.imageViewer.ImageViewerInitializer.init(ImageViewerInitializer.java:117)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor.initialize(AstroPixelProcessor.java:7222)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor.(AstroPixelProcessor.java:1482)
at com.ariesproductions.astropixelprocessor.AstroPixelProcessor$1.run(AstroPixelProcessor.java:1090)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Can't load library: /opt/astropixelprocessor/natives/linux-amd64/libgluegen_rt.so
at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.base/java.lang.Runtime.load0(Unknown Source)
at java.base/java.lang.System.load(Unknown Source)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:625)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:107)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:488)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:427)
at com.jogamp.common.os.Platform$1.run(Platform.java:321)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at com.jogamp.common.os.Platform.(Platform.java:290)
at com.jogamp.opengl.GLProfile.(GLProfile.java:154)
at com.ariesproductions.imageViewer.ImageViewerInitializer.init(ImageViewerInitializer.java:117)

So the loading of libraries is not working for some reason. It does work on Fedora 28 and Windows 10 and macOS Big Sur.

If I package my application with these jars:
https://jogamp.org/deployment/archive/rc/v2.4.0-rc-20210111/fat/
all works on all the platforms, except on the M1 hardware.

It seems like a very weird issue, I can see that /tmp folders are created to copy and then load the libraries, But somehow the libraries are not copied. And why it does work on the regular JOGL release and not in your maven M1 release is the question I think.

Please let me know if you need more info to solve this issue and thank you very much for your maven deployer and macOS M1 compiled version.

Mabula

OPENAL does't work with Mac M1

on MAcbook pro M1, opegl is running absolutely fine but when I try to use openAL, it gives error in loading library


com.jogamp.openal.ALException: java.lang.ExceptionInInitializerError
	at com.jogamp.openal.ALFactory.initialize(ALFactory.java:102)
	at com.jogamp.openal.ALFactory.getALC(ALFactory.java:137)
	at com.jogamp.openal.util.ALut.alutInit(ALut.java:64)
	at org.shikhar.simphy.audio.impl.SoundManager.initialize(SoundManager.java:59)
	at org.shikhar.simphy.Simphy.<init>(Simphy.java:1777)
	at org.shikhar.simphy.SplashWindow.invokeMain(SplashWindow.java:135)
	at org.shikhar.simphy.SplashWindow.main(SplashWindow.java:85)
Caused by: java.lang.ExceptionInInitializerError
	at com.jogamp.openal.ALFactory.initialize(ALFactory.java:91)
	... 6 more
Caused by: java.lang.RuntimeException: Couln't load native AL/JNI glue library
	at jogamp.openal.ALImpl$1.run(ALImpl.java:1618)
	at jogamp.openal.ALImpl$1.run(ALImpl.java:1608)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at jogamp.openal.ALImpl.<clinit>(ALImpl.java:1608)
	... 7 more

I have added jogl-all, gluegen-rt, joal and all3 corressponding mac universal native jars in classpath. Do i need to add dylibs somewhere?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.