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

Loading texture - using OpenGl, LWJGL and SlickUtil

我在尝试加载纹理时遇到此错误。关于为什么会发生这种情况的任何想法?或者自从我上次使用这些库以来方法是否发生了变化?

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;
}

Slick-Util 不兼容LWJGL 3,不确定是否继续。好像有version that works with it,不过没试过

LWJGL 开发人员建议使用包含的 STB 库来加载纹理,因为它仍在开发中,轻量级并且非常擅长加载简单文件。您可以查看 tests and the getting started guide 以了解如何使用它的示例。