【发布时间】:2013-12-26 23:56:44
【问题描述】:
我正在尝试在 Eclipse 中运行处理草图。我已经这样做了很长一段时间,但最近才更新到 2.1。 运行软件模式时,草图运行良好。但是当我尝试使用 P2D 模式时,出现以下错误。 我已经包含了处理文件夹中的所有 jogl jar。我不确定是否应该添加本机库,但我似乎找不到它们。
线程“动画线程”中的异常 java.lang.RuntimeException: java.lang.NoSuchMethodError: javax.media.opengl.GL2ES2.glVertexAttribPointer(IIIZILjava/nio/Buffer;)V 在 com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58) 在 jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103) 在 jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:206) 在 javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172) 在 javax.media.opengl.Threading.invoke(Threading.java:191) 在 javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:492) 在 processing.opengl.PGL.requestDraw(PGL.java:1155) 在 processing.opengl.PGraphicsOpenGL.requestDraw(PGraphicsOpenGL.java:1602) 在 processing.core.PApplet.run(PApplet.java:2141) 在 java.lang.Thread.run(未知来源) 引起:java.lang.NoSuchMethodError: javax.media.opengl.GL2ES2.glVertexAttribPointer(IIIZILjava/nio/Buffer;)V 在 processing.opengl.PGL.vertexAttribPointer(PGL.java:3318) 在 processing.opengl.PGL.drawTexture2D(PGL.java:1594) 在 processing.opengl.PGL.drawTexture(PGL.java:1507) 在 processing.opengl.PGL.endDraw(PGL.java:1110) 在 processing.opengl.PGraphicsOpenGL.endOnscreenDraw(PGraphicsOpenGL.java:5974) 在 processing.opengl.PGraphicsOpenGL.endDraw(PGraphicsOpenGL.java:1681) 在 processing.core.PApplet.handleDraw(PApplet.java:2290) 在 processing.opengl.PGL$PGLListener.display(PGL.java:2643) 在 jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:590) 在 jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:574) 在 javax.media.opengl.awt.GLCanvas$9.run(GLCanvas.java:1218) 在 jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1036) 在 jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:911) 在 javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1229) 在 java.awt.event.InvocationEvent.dispatch(未知来源) 在 java.awt.EventQueue.dispatchEventImpl(未知来源) 在 java.awt.EventQueue.access$200(未知来源) 在 java.awt.EventQueue$3.run(未知来源) 在 java.awt.EventQueue$3.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(未知来源) 在 java.awt.EventQueue.dispatchEvent(未知来源) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForFilter(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.run(未知来源)
【问题讨论】:
-
试试jogamp.org/wiki/index.php/Downloading_and_installing_JOGL,也许你错过了什么。既然你说你刚刚升级了你的版本,那肯定是那里出错了。
-
jogamp.org/wiki/index.php/… ,另一个有用的页面。
-
这里有同样的问题(Eclipse,JOGL2 使用 GL2ES2 上下文)。该方法似乎只支持两个替代参数;使用
GLArrayData实现指定数据,或传递long来表示指向缓冲区的指针。这两种实现都需要指针数据,目前我不太确定可以从哪里获取。 -
我刚刚考虑了一下,它可能希望数据驻留在 VBO 中。我会看看这是否有效。
标签: eclipse opengl processing java