首页 > 解决方案 > 在 LWJGL 的 OpenCL 功能中,我从哪里获得“cl_platform_id”?

问题描述

查看LWJGL 文档的 OpenCL 端口,可以看到为了使用类createPlatfromCapabilities中的方法创建 OpenCL 功能CL.class,您需要传入一个 long cl_platform_id。这是哪里衍生出来的?

我试过传入Platform.WINDOWS,如下所示: 但是,其中没有任何字段会产生 long 。在此处输入图像描述
Platform.WINDOWS

考虑到变量被命名为“平台”ID,我想它不会要求 LWJGL 通常发出的窗口很长,并且因为名称中也有“CL”,所以我假设它也是由内部 OpenCL 类之一发出的。

我已经广泛搜索了文档,并且“ cl_platform_id”仅出现在该方法中。文档只是说以下内容:

“@param cl_platform_id:要查询的平台”

哎呀。这很有帮助。

cl_platform_id方法中的参数是什么意思createPlatfromCapabilities,我在哪里可以找到它?

标签: javaopencllwjgl

解决方案


您需要使用从clGetPlatformIDs获得的平台 ID 。第一个参数是一个缓冲区,用于存储 ID(或null),第二个参数是一个缓冲区,用于存储读取的 ID 数量(或null)。您需要在传递null第一个参数和IntBuffer第二个参数时调用该函数,然后使用存储在缓冲区中的 int 分配 aPointerBuffer并再次调用它以实际读取 ID。


推荐阅读