I'm trying to run lesson06 of NeHe, using the devil optional package in a 64bit linux system. While the class is compiled successfully, when I run it I get the following error:
run:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/stathis/various/lwjgl-2.0.1/native/linux/liblwjgl-devil.so: /home/stathis/various/lwjgl-2.0.1/native/linux/liblwjgl-devil.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at org.lwjgl.devil.ILNative$1.run(ILNative.java:69)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.devil.ILNative.loadLibrary(ILNative.java:62)
at org.lwjgl.devil.ILNative.<clinit>(ILNative.java:77)
at org.lwjgl.devil.IL.create(IL.java:590)
at nehe.lessons.Lesson06.init(Lesson06.java:202)
at nehe.lessons.Lesson06.run(Lesson06.java:72)
at nehe.lessons.Lesson06.main(Lesson06.java:67)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
I read somewhere that this might have to do with the jdk 64bit edition I'm using, and maybe I should try the 32bit. If so, can I use the 32bit just for Netbeans and the 64bit for the rest of the system?
lwjgl doesn't support devil and fmod any more since 2.0
I read about it on other posts too... It sucks, but if there was no way to maintain it, so be it. Could someone please show me an example of how to use slick-util, the recommended replacement for Devil, to load a texture?
Quote from: manji on February 18, 2009, 23:19:51
I read about it on other posts too... It sucks, but if there was no way to maintain it, so be it. Could someone please show me an example of how to use slick-util, the recommended replacement for Devil, to load a texture?
You could change to the SWT in the LWJGL 2. For example,
import org.eclipse.swt.graphics.ImageData;
(skip......)
int loadTexture(String imgPath) {
ImageData img = new ImageData(imgPath);
int width = img.width;
int height = img.height;
byte[] data = new byte[img.data.length];
for(int i=0; i<img.data.length; i++)
data[i] = img.data[img.data.length-(i+0x1)];
ByteBuffer scratch = ByteBuffer.wrap(data);
IntBuffer buffer = ByteBuffer.allocateDirect(0x4).order(ByteOrder.nativeOrder()).asIntBuffer();
GL11.glGenTextures(buffer);
GL11.glBindTexture(GL11.GL_TEXTURE_2D, buffer.get(0x0));
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0x0, GL11.GL_RGB, width, height, 0x0, GL11.GL_RGB, GL11.GL_UNSIGNED_BYTE, scratch);
return buffer.get(0x0);
}
I hope the example which can help you. ;D
Best regads,
embeddednode
or just:
TextureLoader.getTexture(format, new FileInputStream(texfile));
embeddednode thank you, I downloaded SWT and I'll work on your code. Also, I found that the spaceinvaders (http://www.cokeandcode.com/node/9) game uses Texture and TextureLoader classes.
Matzon, I didn't get it, where is the TextureLoader class you say?
org.newdawn.slick.opengl.TextureLoader