Hello all,
I started using jME3 on Android with the 2-11 nightly and things were working fine, but when I’ve tried to use later versions I get a GL_INVALID_OPERATION (1282) error on glCreateShader:
I/OGLESShaderRenderer( 8466): GLES20.glEnable(GLES20.GL_BLEND)
I/OGLESShaderRenderer( 8466): GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA)
I/OGLESShaderRenderer( 8466): GLES20.glGenTexture(1, buffer)
I/OGLESShaderRenderer( 8466): GLES20.glBindTexture(3553, 1)
I/OGLESShaderRenderer( 8466): GLES20.glTexParameteri(3553GLES11.GL_GENERATE_MIMAP, GLES20.GL_TRUE)
I/OGLESShaderRenderer( 8466): GLES20.glTexParameteri(3553, GLES20.GL_TEXTURE_MIN_FILTER, 9729)
I/OGLESShaderRenderer( 8466): GLES20.glTexParameteri(3553, GLES20.GL_TEXTURE_MAG_FILTER, 9729)
I/OGLESShaderRenderer( 8466): GLES20.glTexParameteri(3553, GLES20.GL_TEXTURE_WRAP_T, 33071
I/OGLESShaderRenderer( 8466): GLES20.glTexParameteri(3553, GLES20.GL_TEXTURE_WRAP_S, 33071
I/OGLESShaderRenderer( 8466): setShader(Shader[language=GLSL100, numSources=2, numUniforms=16, shaderSources=[ShaderSource[name=Common/MatDefs/Light/Lighting.vert, defines, type=Vertex], ShaderSource[name=Common/MatDefs/Light/Lighting.frag, defines, type=Fragment]]])
I/OGLESShaderRenderer( 8466): GLES20.glCreateProgram()
I/OGLESShaderRenderer( 8466): GLES20.glCreateShader(Vertex)
W/dalvikvm( 8466): threadid=30: thread exiting with uncaught exception (group=0x40ecb228)
D/ ( 8466): [482] Exception thrown in Thread[GLThread 482,5,main]: at com.jme3.renderer.android.OGLESShaderRenderer.checkGLError(141)
D/ ( 8466): at com.jme3.renderer.android.OGLESShaderRenderer.updateShaderSourceData(990)
D/ ( 8466): at com.jme3.renderer.android.OGLESShaderRenderer.updateShaderData(1121)
D/ ( 8466): at com.jme3.renderer.android.OGLESShaderRenderer.setShader(1226)
D/ ( 8466): at com.jme3.material.Material.renderMultipassLighting(799)
D/ ( 8466): at com.jme3.material.Material.render(1028)
D/ ( 8466): at com.jme3.renderer.RenderManager.renderGeometry(649)
D/ ( 8466): at com.jme3.renderer.queue.RenderQueue.renderGeometryList(299)
D/ ( 8466): at com.jme3.renderer.queue.RenderQueue.renderQueue(351)
D/ ( 8466): at com.jme3.renderer.RenderManager.renderViewPortQueues(886)
D/ ( 8466): at com.jme3.renderer.RenderManager.flushQueue(842)
D/ ( 8466): at com.jme3.renderer.RenderManager.renderViewPort(1118)
D/ ( 8466): at com.jme3.renderer.RenderManager.render(1160)
D/ ( 8466): at [redacted].update(400)
D/ ( 8466): at com.jme3.system.android.OGLESContext.onDrawFrame(371)
D/ ( 8466): at android.opengl.GLSurfaceView$GLThread.guardedRun(1505)
D/ ( 8466): at android.opengl.GLSurfaceView$GLThread.run(1246)
Looking at the diffs in the code, I see that the error checking code is new, so I tried disabling it and my app kinda works, but the bitmap textures (which use the Lighted material — this is the material whose shader is getting updated in the above exception) are all hosed. Solid textures that use the Unshaded material seem fine.
I’m just using the supplied textures in the library; I’m not creating custom ones. I can attach snippets of source if it’s helpful.
Any ideas?