加载纹理 - 使用OpenGl,LWJGL和SlickUtil

时间:2015-12-24 00:20:43

标签: java opengl lwjgl slick2d

当我尝试加载纹理时出现此错误。有关为何发生这种情况的任何想法?或者自从我上次使用库以来该方法是否已更改?

Exception in thread "main" java.lang.NoSuchMethodError: org.lwjgl.opengl.GL11.glGetInteger(ILjava/nio/IntBuffer;)V
at org.newdawn.slick.opengl.renderer.ImmediateModeOGLRenderer.glGetInteger(ImmediateModeOGLRenderer.java:194)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:317)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:254)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:200)
at org.newdawn.slick.opengl.TextureLoader.getTexture(TextureLoader.java:64)
at org.newdawn.slick.opengl.TextureLoader.getTexture(TextureLoader.java:24)
at engine.Loader.loadTexture(Loader.java:39)
at game.Game.main(Game.java:51)

加载纹理的代码就是这个。

public int loadTexture(String fileName){
    Texture texture = null;
    try {
        texture = TextureLoader.getTexture("PNG", new FileInputStream("res/" + fileName + ".png"));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    int textureID = texture.getTextureID();
    textures.add(textureID);
    return textureID;
}

1 个答案:

答案 0 :(得分:2)

Slick-Util与LWJGL 3不兼容,不确定是否会继续使用。似乎有version that works with it,但我还没试过。

LWJGL开发人员建议使用附带的STB库来加载纹理,因为它仍在开发中,重量轻,非常适合加载简单文件。您可以查看testsgetting started guide以了解如何使用它的示例。