【发布时间】:2016-09-07 09:53:10
【问题描述】:
我正在使用 JOGL 进行游戏,但抛出以下错误:
线程“main-AWTAnimator#00”com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: com.jogamp.opengl.GLException: Caught InternalError: Immutable glNamedBufferStorage not supported on thread main-AWTAnimator#00 在 com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:92) 在 com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452) 在 com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:204) 在 java.lang.Thread.run(Thread.java:745) 引起:com.jogamp.opengl.GLException:捕获内部错误:线程 main-AWTAnimator#00 上尚不支持不可变 glNamedBufferStorage 在 com.jogamp.opengl.GLException.newGLException(GLException.java:76) 在 jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327) 在 jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147) 在 com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759) 在 com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81) ... 3 更多 原因:java.lang.InternalError: Immutable glNamedBufferStorage not supported yet 在 jogamp.opengl.GLBufferObjectTracker.createBufferStorage(GLBufferObjectTracker.java:219) 在 jogamp.opengl.gl4.GL4bcImpl.glNamedBufferStorage(GL4bcImpl.java:40826) 在渲染.Renderer.initBuffers(Renderer.java:182) 在渲染.Renderer.init(Renderer.java:128) 在 jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:644) 在 jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:690) 在 jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674) 在 jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443) 在 jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293) ... 6 更多
执行代码时会发生这种情况
gl4.glNamedBufferStorage(bufferName.get(Buffer.VERTEX), vertexBuffer.capacity() * Float.BYTES, vertexBuffer,
GL_STATIC_DRAW);
引发此错误的原因是什么,我该如何解决?
【问题讨论】:
-
该错误消息不是不言自明吗?看来JOGL不支持
glNamedBufferStorage。 -
这个功能将被实现,它不是一个明确的限制。
标签: java opengl exception buffer jogl