NoSuchMethodError при получении свойств отображения с помощью: Display.getDisplayMode (). GetHeight () в LWJGL - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь получить свойства дисплея для моего дисплея, используя: Display.getDisplayMode().getHeight(); и Display.getDisplayMode().getWidth();, но получаю следующую ошибку:

[LWJGL] Version: 3.2.0 build 12
[LWJGL]      OS: Windows 7 v6.1
[LWJGL]     JRE: 1.8.0_151 amd64
[LWJGL]     JVM: Java HotSpot(TM) 64-Bit Server VM v25.151-b12 by Oracle Corporation
[LWJGL] Loading library (system): lwjgl
[LWJGL]     Using SharedLibraryLoader...
[LWJGL]     Found at: C:\Users\user\AppData\Local\Temp\lwjgluser\3.2.0-build-12\lwjgl.dll
[LWJGL]     Loaded from org.lwjgl.librarypath: C:\Users\user\AppData\Local\Temp\lwjgluser\3.2.0-build-12\lwjgl.dll
[LWJGL] MemoryUtil accessor: MemoryAccessorUnsafe
[LWJGL] MemoryUtil allocator: DebugAllocator
[LWJGL] Loading library: glfw
[LWJGL]     Using SharedLibraryLoader...
[LWJGL]     Found at: C:\Users\user\AppData\Local\Temp\lwjgluser\3.2.0-build-12\glfw.dll
[LWJGL]     Loaded from org.lwjgl.librarypath: C:\Users\user\AppData\Local\Temp\lwjgluser\3.2.0-build-12\glfw.dll
[LWJGL] Loading library (system): lwjgl_opengl
[LWJGL]     Using SharedLibraryLoader...
[LWJGL]     Found at: C:\Users\user\AppData\Local\Temp\lwjgluser\3.2.0-build-12\lwjgl_opengl.dll
[LWJGL]     Loaded from org.lwjgl.librarypath: C:\Users\user\AppData\Local\Temp\lwjgluser\3.2.0-build-12\lwjgl_opengl.dll
[LWJGL] Loading library: opengl32
[LWJGL]     opengl32.dll not found in org.lwjgl.librarypath=C:\Users\user\AppData\Local\Temp\lwjgluser\3.2.0-build-12
[LWJGL]     Loaded from system paths: C:\Windows\system32\opengl32.dll
Exception in thread "Thread-0" java.lang.NoSuchMethodError: org.lwjgl.glfw.GLFW.glfwInit()I
    at org.lwjglx.Sys.<clinit>(Sys.java:17)
    at org.lwjglx.opengl.Display.<clinit>(Display.java:74)
    at Engine.DisplayRenderEngine.DisplayManager.getWidth(DisplayManager.java:255)
    at Engine.EntityHandeling.BasicEntityRenderer.prepare(BasicEntityRenderer.java:40)
    at Engine.DisplayRenderEngine.DisplayManager.updateDisplay(DisplayManager.java:167)
    at Engine.Core.RenderThread.render(RenderThread.java:167)
    at Engine.Core.RenderThread.run(RenderThread.java:104)

Что означает эта ошибка?Как я могу это исправить?

1 Ответ

0 голосов
/ 17 октября 2018

Я исправил проблему, заменив:

Display.getDisplayMode().getHeight();

на:

IntBuffer w = BufferUtils.createIntBuffer(4);
IntBuffer h = BufferUtils.createIntBuffer(4);
glfwGetWindowSize(window, w, h);
height = h.get(0);

и:

Display.getDisplayMode().getWidth();

на:

IntBuffer w = BufferUtils.createIntBuffer(4);
IntBuffer h = BufferUtils.createIntBuffer(4);
glfwGetWindowSize(window, w, h);
width = w.get(0);

Это решает проблему.

...