2

我正在尝试使用 JavaCL OpenCL 绑定库在我的图形渲染引擎中利用 OpenCL 内核。

我遇到的问题是我需要将 BufferedImage 像素数据数组直接传递到 OpenCL 内核中,以便对其进行修改。复制到本机指针对象然后在计算后重新复制可能会首先消除使用 OpenCL 的性能优势,所以我真的试图避免这种情况。

我希望使用 IntBuffer 直接修改像素数据,但分配的缓冲区必须是直接的,如果您使用这是不可能的wrap(int[])(有关更多信息,请参阅 BridJ文档)。

所以现在我被困在如何使这项工作上。我正在寻求任何建议的解决方案或解决方法,无论是直接使用数组还是仅仅使用带有图像、指针等的不同 OpenCL 功能。

任何帮助表示赞赏。提前致谢。

4

1 回答 1

0

您可以尝试使用 java.nio.ByteBuffer。我相信你可以做这样的事情:

byte[] temp = new byte[54];

ByteBuffer buffer = ByteBuffer.allocateDirect(54);

接着:buffer.putInt(int someInt[]);

于 2013-07-02T00:26:24.200 回答