【发布时间】:2015-06-22 08:09:56
【问题描述】:
数据来源:
float[] v = { ... };
工作示例:
FloatBuffer buf = BufferUtils.createFloatBuffer(v.length);
buf.put(v);
buf.flip(); // or buf.rewind()
缓冲区现在可以上传到 opengl 并且工作正常:
...
glBufferData(..., buf, ...);
...
为什么下面的缓冲区创建示例不起作用?
不工作1:
FloatBuffer buf = FloatBuffer.wrap(v);
不工作2:
FloatBuffer buf = FloatBuffer.allocate(v.length);
buf.put(v);
buf.flip(); // or buf.rewind()
编辑:
浏览API代码后发现:
如果工作示例 memAddress(buf) 返回一个有效地址,但在其他情况下它只返回 0。
其他信息:
【问题讨论】:
-
这也可能取决于平台。我在 Android 上使用
FloatBuffer.wrap()没有任何问题。