0

FloatBuffer用一次数组初始化了 my 的内容Float。然后修改Floats我输入的,我希望它也会修改中的值,FloatBuffer但我得到一个奇怪的结果。

我做错了吗?有可能这样做吗?

编辑:我的错误,我知道 Float 是不可变的,所以这是正常行为。所以我的问题是,有没有办法用可变的浮动包装器填充 FloatBuffer 以便我可以通过引用轻松修改我的 FloatBuffer 内容?或者对于 OpenGL 数据传输有更好的替代 FloatBuffer 吗?

4

1 回答 1

0

如果我理解正确,FloatBuffer 有方法可以做你想做的事。

使用 FloatBuffer,您可以通过调用position 方法来设置它的位置(完成后不要忘记将其返回为 0,如果我没记错的话,opengl es 需要它为 0)。然后,您可以使用getput方法读取或写入该位置。

因此,如果您需要更新本机内存的内容,您可以从分配它的 FloatBuffer 执行此操作,如下所示:

    floatBuffer.position(position);
    floatBuffer.put(data, startIndex, count);
    floatBuffer.position(0);
于 2016-12-28T19:23:30.153 回答