我曾经用Float数组初始化过我的FloatBuffer的内容。然后修改我放入的Floats,我想它也会修改FloatBuffer中的值,但我得到了一个奇怪的结果。
我做错了吗?这样做有可能吗?
编辑:我的错误,我知道浮动是不可变的,所以这是一个正常的行为。所以我的问题是,有没有一种方法可以用可变的浮动包装器填充FloatBuffer,这样我就可以通过引用轻松地修改FloatBuffer内容?或者,对于OpenGL数据传输,有没有比FloatBuffer更好的选择?
发布于 2016-12-29 03:23:30
如果我没理解错的话,FloatBuffer有一些方法可以做你想做的事情。
使用FloatBuffer,你可以通过调用position method来设置它的位置(如果我没记错的话,别忘了把它返回到0,opengl es需要它在0)。然后,您可以使用get和put方法读取或写入该位置。
因此,如果您需要更新本机内存的内容,您可以从分配它的FloatBuffer执行此操作,如下所示:
floatBuffer.position(position);
floatBuffer.put(data, startIndex, count);
floatBuffer.position(0);https://stackoverflow.com/questions/41354239
复制相似问题