protected static class MappedParticle extends MappedObject { @MappedField(byteOffset = 0) private float x; @MappedField(byteOffset = 4) private float y; @MappedField(byteOffset = 8) private byte r; @MappedField(byteOffset = 9) private byte g; @MappedField(byteOffset = 10) private byte b; @MappedField(byteOffset = 11) private byte a; public void init(float x, float y, float r, float g, float b) { this.x = x; this.y = y; this.r = (byte) (r * 255); this.g = (byte) (g * 255); this.b = (byte) (b * 255); a = (byte) 255; } public void update(float xSpeed, float ySpeed) { x += xSpeed; y += ySpeed; } }
public static void main(String[] args) { MappedObjectTransformer.register(MappedParticle.class); if (MappedObjectClassLoader.fork(ParticleTest8.class, args)) { return; } //releaseInit(); new ParticleTest8().gameloop(); }
ByteBuffer buffer = BufferUtils.createByteBuffer(particleByteSize * numParticles);MappedParticle mappedParticleData = MappedParticle.map(buffer);//OR (untested code)://MappedParticle mappedParticleData = MappedParticle.malloc(numParticles);//ByteBuffer buffer = mappedParticleData.backingByteBuffer();for (int i = 0; i < numParticles; i++) { mappedParticleData.view = i; mappedParticleData.init(...);}