architecture word width mismatch (?) when using devil

Started by manji, February 18, 2009, 00:03:41

Previous topic - Next topic

manji

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?
toyWars game blog: http://toywars.wordpress.com/

Matzon

lwjgl doesn't support devil and fmod any more since 2.0

manji

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?
toyWars game blog: http://toywars.wordpress.com/

embeddednode

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

Matzon

or just:
TextureLoader.getTexture(format, new FileInputStream(texfile));

manji

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?
toyWars game blog: http://toywars.wordpress.com/

Matzon