学习Java中的OpenGL。为什么glIsFramebuffer()返回false?

学习Java中的OpenGL。为什么glIsFramebuffer()返回false?,java,opengl,jogl,Java,Opengl,Jogl,我是OpenGL新手,对Java几乎没有经验。我正在跟踪一些并得到一个异常: Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Caught GLException: FBObject Init.isFB GL Error 0x501 of FBO[name r/w 1/1, init false, bound false, size 600x600, samples 0/0, modified true/

我是OpenGL新手,对Java几乎没有经验。我正在跟踪一些并得到一个异常:

Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Caught GLException: FBObject Init.isFB GL Error 0x501 of FBO[name r/w 1/1, init false, bound false, size 600x600, samples 0/0, modified true/true, depth null, stencil null, colorbuffer attachments: 0/1, with 0 textures: [null], msaa[null, hasSink false, dirty true], state NOT A FBO, obj 0x3300f465]
at com.jogamp.opengl.awt.GLJPanel$OffscreenBackend.initialize(GLJPanel.java:1794)
at com.jogamp.opengl.awt.GLJPanel.initializeBackendImpl(GLJPanel.java:1376)
at com.jogamp.opengl.awt.GLJPanel.paintComponent(GLJPanel.java:548)
at javax.swing.JComponent.paint(JComponent.java:1056)
从1105开始,我们有以下几点:

// generate fbo ..
gl.glGenFramebuffers(1, val, 0);
fbName = val[0];
if(0 == fbName) {
    throw new GLException("null framebuffer");
}

// bind fbo ..
gl.glBindFramebuffer(GL.GL_FRAMEBUFFER, fbName);
checkNoError(gl, gl.glGetError(), "FBObject Init.bindFB");  // throws GLException if error
if(!gl.glIsFramebuffer(fbName)) {
    checkNoError(gl, GL.GL_INVALID_VALUE, "FBObject Init.isFB"); // throws GLException
}
似乎()和()都没有失败,但是()返回false。我不知所措


我只发现了一个类似的(2014年的),但没有回复该帖子。我的情况类似(X11客户端和服务器在不同的机器上),因为我以来宾身份运行Ubuntu server 18.04.3,使用macOS 10.15.1上的VMware Fusion 11.5.1作为主机。我可以使用java.awt和java.swing打开其他窗口,因此这不是一个微不足道的X11问题。我正在使用JOGL2.3。

我建议您填写一份错误报告。请使用JOGL 2.4的夜间版本进行测试。此处报告的错误:请注意,您不应该真的需要调用glIsFrameBuffer,以便在程序不工作时仍能继续工作。我建议您填写错误报告。请使用JOGL 2.4的夜间版本进行测试。此处报告的错误:请注意,您不应该真正需要调用glIsFrameBuffer,以便在程序不工作时仍能继续工作。