-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Labels
Description
Just tried jme3test.scene.instance.TestInstanceNode on Android. I get two exceptions.
** Exception 1**
com.jme3.app.AndroidHarness: SEVERE Exception thrown in Thread[GLThread 183,5,main]
com.jme3.renderer.RendererException: compile error in: ShaderSource[name=Common/MatDefs/Misc/Unshaded.vert, defines, type=Vertex, language=GLSL100]
ERROR: 0:158: '=' : global variable initializers must be constant expressions
at com.jme3.renderer.opengl.GLRenderer.updateShaderSourceData(GLRenderer.java:1200)
at com.jme3.renderer.opengl.GLRenderer.updateShaderData(GLRenderer.java:1227)
at com.jme3.renderer.opengl.GLRenderer.setShader(GLRenderer.java:1291)
at com.jme3.material.logic.DefaultTechniqueDefLogic.render(DefaultTechniqueDefLogic.java:94)
at com.jme3.material.Technique.render(Technique.java:166)
at com.jme3.material.Material.render(Material.java:968)
at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:616)
at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:266)
at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:305)
at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:870)
at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:781)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1097)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1145)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:253)
at com.jme3.app.AndroidHarness.update(AndroidHarness.java:497)
at com.jme3.system.android.OGLESContext.onDrawFrame(OGLESContext.java:336)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1548)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1259)
I checked the source, maybe something wrong in Common/ShadeLib/Instance.glsllib, line 43:
mat4 worldMatrix = mat4(vec4(inInstanceData[0].xyz, 0.0),
vec4(inInstanceData[1].xyz, 0.0),
vec4(inInstanceData[2].xyz, 0.0),
vec4(inInstanceData[3].xyz, 1.0));
because it said that ERROR: 0:158: '=' : global variable initializers must be constant expressions
** Exception 2**
com.jme3.util.BufferUtils: SEVERE {0}
java.lang.IllegalArgumentException: Expected receiver of type sun.nio.ch.DirectBuffer, but got java.nio.ByteBufferAsFloatBuffer
at java.lang.reflect.Method.invoke(Native Method)
at com.jme3.util.BufferUtils.destroyDirectBuffer(BufferUtils.java:1330)
at com.jme3.scene.instancing.InstancedGeometry.setMaxNumInstances(InstancedGeometry.java:196)
at com.jme3.scene.instancing.InstancedGeometry.addInstance(InstancedGeometry.java:322)
at com.jme3.scene.instancing.InstancedNode.addToInstancedGeometry(InstancedNode.java:239)
at com.jme3.scene.instancing.InstancedNode.instance(InstancedNode.java:293)
at com.jme3.scene.instancing.InstancedNode.instance(InstancedNode.java:300)
at com.jme3.scene.instancing.InstancedNode.instance(InstancedNode.java:306)
at net.jmecn.mygame.TestInstanceNode.simpleInitApp(TestInstanceNode.java:94)
at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:220)
at com.jme3.app.AndroidHarness.initialize(AndroidHarness.java:478)
at com.jme3.system.android.OGLESContext.onDrawFrame(OGLESContext.java:328)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1548)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1259)
I checked the source of com.jme3.util.BufferUtils.java, the bug seems has been fixed.