Ich muss FloatBuffer aus einem dynamischen Satz von Floats erstellen (das heißt, ich weiß nicht, die Länge vor der Zeit). Der einzige Weg, den ich gefunden habe, um dies zu tun ist ziemlich unelegant (unten). Ich nehme an, ich bin etwas fehlt und es muss eine sauberere/einfachere Methode sein.
Meine Lösung:
Vector<Float> temp = new Vector<Float>();
//add stuff to temp
ByteBuffer bb = ByteBuffer.allocateDirect( work.size() * 4/*sizeof(float)*/ );
bb.order( ByteOrder.nativeOrder() );
FloatBuffer floatBuf = bb.asFloatBuffer();
for( Float f : work )
floatBuf.put( f );
floatBuf.position(0);
Ich benutze meine Puffer für OpenGL-Befehle so muss ich sie um zu halten (das heißt, die resultierende FloatBuffer ist nicht nur ein temporärer Raum).