I have an emitter, and in my update loop I try to increase the number of particles for the emitter if I determine I need more.
Like so:
[java]Particle[] particles = emitter.getParticles();
if (numParticlesNeeded > particles.length)
{
emitter.setNumParticles(numParticlesNeeded);
particles = emitter.getParticles();
}[/java]
However, I receive this error later in the rendering. Something to do with vertex buffers maybe:
[java]Apr 11, 2011 10:11:19 PM com.jme3.app.Application handleError
SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
java.nio.BufferOverflowException
at java.nio.Buffer.nextPutIndex(Buffer.java:495)
at java.nio.DirectFloatBufferU.put(DirectFloatBufferU.java:250)
at com.jme3.effect.ParticlePointMesh.updateParticleData(ParticlePointMesh.java:113)
at com.jme3.effect.ParticleEmitter.render(ParticleEmitter.java:732)
at com.jme3.scene.Spatial.runControlRender(Spatial.java:523)
at com.jme3.renderer.RenderManager.renderScene(RenderManager.java:516)
at com.jme3.renderer.RenderManager.renderScene(RenderManager.java:522)
at com.jme3.renderer.RenderManager.renderScene(RenderManager.java:522)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:712)
at com.jme3.renderer.RenderManager.render(RenderManager.java:739)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:249)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:158)
at com.jme3.system.lwjgl.LwjglCanvas.runLoop(LwjglCanvas.java:225)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:221)
at java.lang.Thread.run(Thread.java:662)[/java]
My current work around is to just create a new emitter instead of updating the old one
D’oh! Sorry, didn’t realize I was in the SpiderMonkey forums!
If someone would be so kind and move this to the correct forum, it would help bury some of my shame