LWJGL APIは直接のopenGL呼び出しではありません。どこを見ても、抽象化の小さな層があります。それが軽量と呼ばれる理由だと思います。
抽象化の多くは類似しています。たとえば、この例のコードはソース全体で共通です。
public static void glBufferSubData(int target, long offset, FloatBuffer data) {
ContextCapabilities caps = GLContext.getCapabilities();
long function_pointer = caps.glBufferSubData;
BufferChecks.checkFunctionAddress(function_pointer);
BufferChecks.checkDirect(data);
nglBufferSubData(target, offset, (data.remaining() << 2), MemoryUtil.getAddress(data), function_pointer);
}
ご覧のとおり、LWJGLユーザーがこの関数を呼び出してから、この関数が実際のGL関数を呼び出します。nglBufferSubDataの「n」はネイティブを表すと思います。
だから私の質問は、このコードはどういう意味ですか?私はこの関数が何をするのか考えています、それはデータをopenGLバッファオブジェクトに送信します。コードで起こっていることを理解していません。誰かが私のためにそれを分解できますか?