動的なフロートのセットからFloatBufferを作成する必要があります(つまり、事前に長さがわかりません)。これを行うために私が見つけた唯一の方法は、かなりエレガントではありません(以下)。私は何かが欠けていると思います、そしてよりクリーンでより簡単な方法がなければなりません。
私の解決策:
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);
私はOpenGLコマンドにバッファを使用しているので、それらを保持する必要があります(つまり、結果のFloatBufferは単なる一時的なスペースではありません)。