He estado usando FloatBuffers en mi código de Android por un tiempo (lo he copiado de un tutorial de opengles), pero no puedo entender exactamente qué es esta construcción y por qué es necesaria.¿Por qué FloatBuffer en lugar de flotar []?
Por ejemplo el código (o similar) que veo en el código y tutoriales androide muchos de muchas personas:
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
Esto parece muy prolijo y complicado para algo que en la medida que puedo decir es sólo una fantasía envoltura alrededor de una serie de flotadores.
Preguntas:
¿Cuál es la justificación para este tipo de clase (ByteBuffer, FloatBuffer), a diferencia de cualquier otro tipo de cobro o sencilla serie de flotadores?
¿Cuál es la idea detrás de crear un ByteBuffer antes de convertirlo en un FloatBuffer?