JavaFreak
JavaFreak

Reputation: 35

LWJGL & Slick2D 64 bit

I'm trying to compile a program in LWJGL and Slick2D using 64 bit JDK 8u60. However, when I don't put the natives in it says it's missing lwjgl64. Once I import the lwjgl64.dll natives, there is a runtime error stating that my pixel format is not accelerated. I have read other sources and people have said that I need to install newer drivers. However, I have checked for new updates and don't have any. When using the 32 bit JDK 8u60 there is no runtime error and no need to specify natives. Can someone help me fix this? I would prefer to not have to install JDK 8u60 32 bit install instead of 64 bit.

Here's my code

package dungeon.main;

import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;

public class Main extends BasicGame {
private static int width = 1200;
private static int height = 800;
private static boolean fullscreen = false;
private static int targetFramerate = 120;
private static boolean showFramerate = true;
public static void main(String[] args) {
    try {
        AppGameContainer appGameContainer = new AppGameContainer(new Main("Dungeon")); 
        appGameContainer.setDisplayMode(width, height, fullscreen); 
        appGameContainer.setTargetFrameRate(targetFramerate); 
        appGameContainer.setShowFPS(showFramerate); 
        appGameContainer.start(); 
    } catch (SlickException e) {
        e.printStackTrace();
    }
}
public Main(String title) {
    super(title);
    // TODO Auto-generated constructor stub
}
@Override
public void init(GameContainer arg0) throws SlickException {
    // TODO Auto-generated method stub

}
@Override
public void update(GameContainer arg0, int arg1) throws SlickException {
    // TODO Auto-generated method stub

}
@Override
public void render(GameContainer arg0, Graphics arg1) throws SlickException {
    // TODO Auto-generated method stub

}
}

Here's the error

Tue Oct 06 09:03:57 EDT 2015 INFO:Slick Build #237
Tue Oct 06 09:03:57 EDT 2015 INFO:LWJGL Version: 2.9.2
Tue Oct 06 09:03:57 EDT 2015 INFO:OriginalDisplayMode: 1600 x 900 x 32 @60Hz
Tue Oct 06 09:03:57 EDT 2015 INFO:TargetDisplayMode: 1200 x 800 x 0 @0Hz
Tue Oct 06 09:03:57 EDT 2015 ERROR:Pixel format not accelerated
org.lwjgl.LWJGLException: Pixel format not accelerated
    at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
    at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
    at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:253)
    at org.lwjgl.opengl.Display.createWindow(Display.java:306)
    at org.lwjgl.opengl.Display.create(Display.java:848)
    at org.lwjgl.opengl.Display.create(Display.java:757)
    at org.newdawn.slick.AppGameContainer.tryCreateDisplay(AppGameContainer.java:302)
    at org.newdawn.slick.AppGameContainer.access$000(AppGameContainer.java:34)
    at org.newdawn.slick.AppGameContainer$2.run(AppGameContainer.java:367)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:348)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:317)
    at dungeon.main.Main.main(Main.java:21)
org.newdawn.slick.SlickException: Failed to initialise the LWJGL display
    at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:378)
    at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:317)
    at dungeon.main.Main.main(Main.java:21)

Upvotes: 1

Views: 806

Answers (1)

Unlox
Unlox

Reputation: 13

If your doing it another way than this one try to set natives by those lines

System.setProperty("org.lwjgl.librarypath", new File(new File(System.getProperty("user.dir"), "native"), LWJGLUtil.getPlatformName()).getAbsolutePath());
System.setProperty("net.java.games.input.librarypath", System.getProperty("org.lwjgl.librarypath"));

And then paste natives into /yourgamefolder/natives/windows/...

To run lwjgl even when "Pixel format not accelerated" you can turn on software mode.

System.setProperty("org.lwjgl.opengl.Display.allowSoftwareOpenGL", "true"); 

(however software rendering is very slow)

Upvotes: 1

Related Questions