我目前正在编写一个使用 JOGL 绑定的游戏以使用 OpenGL,但我在这方面非常挣扎。
我需要使用我在实现 GLEventListener 的类的 init 方法中收集的 GL2 变量来初始化我的 vaos 和 vbos(对于每个组件)。像这样,
public abstract class Scene implements GLEventListener {
private GL2 gl;
@Override
public void init(GLAutoDrawable drawable) {
gl = drawable.getGL().getGL2();
...
但是当我想使用这个变量时它是空的,因为它出现在方法 init 的调用之前(这对我来说很奇怪)。我还检查了 GLContext.getCurrent() 可能会检索一个 GL 实例,但上下文也是空的。
所以我想知道上下文是在哪里创建的,是什么触发了上面的 init 函数?
也许我可以简单地创建一个布尔值来告诉组件何时在我的渲染函数中被初始化,所以可能会调用 GL init 方法。