Android kodumda bir süredir FloatBuffers kullanıyorum (bazı opengles eğiticilerinden kopyaladım), ancak bu yapının ne olduğunu ve neden gerekli olduğunu tam olarak anlayamıyorum.FloatBuffer neden float []?
Örneğin bu kodu (veya benzeri) Birçok birçok insanın kodu ve android dökümanında bakın: bildiğim kadarıyla söyleyebilirim sadece bir fantezi olduğunu
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
Bu müthiş ayrıntılı ve bir şey için dağınık görünüyor bir dizi yüzen etrafında sarıcı.
Sorular:
toplanması veya yüzen basit dizinin başka türlü aksine sınıfın bu tip (ByteBuffer, FloatBuffer) gerekçesi nedir
?Bir FloatBuffer'a dönüştürmeden önce bir ByteBuffer oluşturmanın ardındaki fikir nedir? ByteBuffers ve yerli kod ile ara-yüz, diğer NIO sınıfları (tipik olarak bir geçici verileri arabelleğe kopya ihtiyacını kaçınılarak) işlemleri ivme enable: