私はAndroidコードでFloatBuffersをしばらく使用しています(いくつかのopenglesチュートリアルからコピーしたものです)が、この構成が何であるか、なぜそれが必要なのかを正確に理解できません。
たとえば、このコード(または同様のコード)は、多くの人々のコードやAndroidチュートリアルで見られます。
float[] vertices = ...some array...
ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);
vbb.order(ByteOrder.nativeOrder()); // use the device hardware's native byte order
FloatBuffer fb = vbb.asFloatBuffer(); // create a floating point buffer from the ByteBuffer
fb.put(vertices); // add the coordinates to the FloatBuffer
fb.position(0); // set the buffer to read the first coordinate
これは、私が知る限り、フロートの配列の単なる派手なラッパーである何かにとって、ひどく冗長で厄介なようです。
質問:
他の種類のコレクションやfloatの単純な配列とは対照的に、このタイプのクラス(ByteBuffer、FloatBuffer)の正当性は何ですか?
FloatBufferに変換する前にByteBufferを作成する背後にある考え方は何ですか?