GLU.createGLU(GLES2) returns a GLU instance unable to create mipmaps whereas it should simply return an instance of GLUgl2es1 (whose source code is already compatible with ES 2) or an instance of GLUgles2. GLUgles2 would be mostly a copy of GLUgl2es1 at least as a first step. This bug prevents JogAmp's Ardor3D Continuation from working with OpenGL-ES 2: Exception in thread "main" javax.media.opengl.GLException: Caught RuntimeException: javax.media.opengl.GLException: not implemented on thread main at javax.media.opengl.GLException.newGLException(GLException.java:75) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1318) at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1138) at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:666) at jogamp.opengl.GLDrawableHelper.invoke(GLDrawableHelper.java:921) at jogamp.opengl.GLAutoDrawableBase.invoke(GLAutoDrawableBase.java:602) at com.ardor3d.framework.jogl.JoglNewtWindow.draw(JoglNewtWindow.java:212) at com.ardor3d.example.basic.JoglBasicExample.start(JoglBasicExample.java:91) at com.ardor3d.example.basic.JoglBasicExample.main(JoglBasicExample.java:70) Caused by: java.lang.RuntimeException: javax.media.opengl.GLException: not implemented at jogamp.opengl.GLRunnableTask.run(GLRunnableTask.java:66) at jogamp.opengl.GLDrawableHelper.execGLRunnables(GLDrawableHelper.java:767) at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:673) at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:441) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1284) ... 7 more Caused by: javax.media.opengl.GLException: not implemented at javax.media.opengl.glu.GLU.gluBuild2DMipmaps(GLU.java:1520) at com.ardor3d.scene.state.jogl.JoglTextureStateUtil.update(JoglTextureStateUtil.java:317) at com.ardor3d.scene.state.jogl.JoglTextureStateUtil.load(JoglTextureStateUtil.java:117) at com.ardor3d.scene.state.jogl.JoglTextureStateUtil.apply(JoglTextureStateUtil.java:670) at com.ardor3d.renderer.jogl.JoglRenderer.doApplyState(JoglRenderer.java:1821) at com.ardor3d.renderer.AbstractRenderer.applyState(AbstractRenderer.java:91) at com.ardor3d.scenegraph.Mesh.render(Mesh.java:267) at com.ardor3d.scenegraph.Mesh.render(Mesh.java:244) at com.ardor3d.renderer.jogl.JoglRenderer.draw(JoglRenderer.java:694) at com.ardor3d.scenegraph.Mesh.draw(Mesh.java:439) at com.ardor3d.renderer.queue.AbstractRenderBucket.render(AbstractRenderBucket.java:82) at com.ardor3d.renderer.queue.RenderQueue.renderBuckets(RenderQueue.java:132) at com.ardor3d.renderer.jogl.JoglRenderer.renderBuckets(JoglRenderer.java:146) at com.ardor3d.renderer.jogl.JoglRenderer.renderBuckets(JoglRenderer.java:139) at com.ardor3d.renderer.jogl.JoglRenderer.flushFrame(JoglRenderer.java:226) at com.ardor3d.framework.jogl.JoglCanvasRenderer.draw(JoglCanvasRenderer.java:266) at com.ardor3d.framework.jogl.JoglDrawerRunnable.run(JoglDrawerRunnable.java:16) at jogamp.opengl.GLRunnableTask.run(GLRunnableTask.java:60) ... 11 more
Actually, it is harder than I thought as GLU uses GL2ES1 whereas it shouldn't.