我在 LWJGL 中找不到太多关于 OpenCL Java 实现的信息。例如 device.isSharingSupported 不在 LWJGL 中,或者没有以通常的方式实现。谁能详细说明这一点?
所以我有兴趣与 opengl 共享来自 opencl 的纹理/顶点。切换到 JOGL 是否明智?
这是您在 LWJGL 中查询支持 KHR_gl_sharing 的 CLDevice 的方式:
CLPlatform platform = CLPlatform.getPlatforms().get(0);
List<CLDevice> devices = platform.getDevices(CL_DEVICE_TYPE_ALL, new Filter<CLDevice>() {
public boolean accept(CLDevice device) {
CLDeviceCapabilities caps = CLCapabilities.getDeviceCapabilities(device);
return caps.CL_KHR_gl_sharing;
}
});
有关完整示例,请参阅LWJGL测试包中的 org.lwjgl.test.opencl.gl.DemoFractal。您还可以在此处查看源代码。