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 缓冲区对象中。我只是不明白代码中发生的事情。有人可以帮我分解吗?