java - 在 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
,我在哪里可以找到它?
解决方案
您需要使用从clGetPlatformIDs获得的平台 ID 。第一个参数是一个缓冲区,用于存储 ID(或null
),第二个参数是一个缓冲区,用于存储读取的 ID 数量(或null
)。您需要在传递null
第一个参数和IntBuffer
第二个参数时调用该函数,然后使用存储在缓冲区中的 int 分配 aPointerBuffer
并再次调用它以实际读取 ID。
推荐阅读
- c# - 如何使用当前日期递增数字
- database - 使用核心 ftp 将网站上传到服务器后如何附加数据库?
- javascript - 从给定数组中获取属性的最大值
- php - 如何在控制器上使用 Twig 过滤器“time_diff”?
- javascript - 帮助文件和外部函数的 Jest 测试
- javascript - JavaScript (PWA) - 初始化服务工作者的正确方法是什么?
- angular - 量角器 - 配置文件“tsconfig.json”中的“文件”列表为空。(18002)
- css - Primeng DialogService 防止半像素
- r - 线性模型诊断:在 ggplot2 中获得的平滑线与使用基图获得的平滑线不同
- c++ - 如何使用 Sieve of Eratosthenes 算法改进我的素数程序?