【发布时间】:2014-12-02 08:30:13
【问题描述】:
在使用openGL(ES)的java中,我们可以像直接分配ByteBuffer一样
ByteBuffer bf ;
bf.allocateDirect();
但是在 FloatBuffer 不可用的情况下我们不能这样做,这是为什么呢?
我想知道是不是因为:
字节可在硬件级别访问(因为 OpenGL 与 delvik 不同,它在硬件之上工作)并且硬件中的寄存器(GPU 的硬件)以字节为单位,即使是浮点数也应该存储在 4 字节寄存器中,这可能不可用,所以我们不能直接分配,而是应该告诉缓冲区为给定大小的块分配内存,然后将数据放入这些块中并再次将其视为 FloatBuffer。
【问题讨论】:
标签: java memory-management opengl-es bytebuffer floatbuffer