在使用openGL(ES)的java中,我们可以直接分配ByteBuffer
ByteBuffer bf ;
bf.allocateDirect();
但是如果 FloatBuffer 不可用,我们就不能这样做,这是为什么呢?
我想知道是不是因为:
字节可在硬件级别访问(因为 OpenGL 与 delvik 不同,它在硬件之上工作)并且硬件中的寄存器(GPU 的硬件)以字节为单位,即使浮点数也应存储在 4 字节寄存器中,这可能不可用,因此我们无法直接分配,而是我们应该告诉缓冲区为给定大小的块分配内存,然后将数据放入这些块中并再次将其视为 FloatBuffer。