Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

[LWJGL3] glGenTextures()でエラー

LWJGL3.1.1とJOML1.9.2がライブラリとして入れて、チュートリアルを見ながらやっている初心者です。
org.?lwjgl.?opengl.?GL11.glGenTextures()を実行するとエラーがでます。
実行場所は他のinitializeと同じところで行っても、mainスレッドの一行目に書いても同じようにエラーが起きるので、場所は関係なさそうです。

↓試したこと
・実行するためのjavaコマンドの書いてあるバッチファイルの管理者実行→意味なし
・org.?lwjgl.?opengl.?GL11.glGenTextures(IntBuffer textures)を使ってみる→同じエラー(EXCEPTION_ACCESS_VIOLATION (0xc0000005))がでる。
・org.?lwjgl.?opengl.?GL11.glGenTextures(int[] textures)を使う→java.lang.ExceptionInInitializerErrorがスローされる(スタックトレースが必要だったら追記します)。
int[] textures = new int[1];//配列の使い方は心配なので
glGenTextures(textures);

http://stackoverflow.com/questions/36522862/crash-on-calling-glgentextures
↑が同じ症状だと思うのですが、allocateDirect(1)で得たByteBufferのasIntBuffer()で得たIntBufferを使ってもできませんでした(英語は苦手なので間違えて解釈しているかもしれません)。
原因は何か、どうしたらきちんと実行できるのか、考えてもわかりません、教えてくださいm(_ _)m

以下はソースとコンソールとログファイルのみです。
↓ソースーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
package lwjgl3;

import static org.lwjgl.opengl.GL11.*;

public class Test {
    public static void main(String[] args) {
        glGenTextures();
    }
}

↓コンソールーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffb3b7feebd, pid=2768, tid=0x0000000000002b80
#
# JRE version: Java(TM) SE Runtime Environment (8.0_112-b15) (build 1.8.0_112-b15)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.112-b15 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [lwjgl_opengl.dll+0xeebd]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# D:\Sohui\Documents\NetBeansProjects\LWJGL3.1.1Test\hs_err_pid2768.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

↓hs_err_pid2768.logーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
字数制限にかかったので↓
https://pastebin.com/EesJ7Y3K

1

回答

520

閲覧

1件の回答

評価

0

すみません、自己解決しました。
同じエラーの人のために一応書いておきます。
なんで解決したかはよくわかってないのですが、多分GL.createCapabilities();の位置が悪かったようです。これはウィンドウを作成した後、テクスチャの読み込み等の前に実行すべきのようです。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。