【发布时间】:2017-10-18 15:30:09
【问题描述】:
我正在创建一个 OpenFX 插件来为 VR 系统进行一些图像处理。
由于我们现有的处理代码和该插件所针对的主机均基于 OpenCL,主机开发人员为我提供了 OFX 的扩展以共享 OpenCL 环境。
但是 - 我们的代码使用 C++ API (cl::Context),并且他们提供的扩展为我提供了指向 C cl_context 的指针。
有什么方法可以让我从 cl_context 创建一个 cl::Context,而不获取后者的所有权? (对于来自 cl_command_queue 的 cl::CommandQueue 也是如此)。在线 API 文档建议复制构造函数和赋值运算符都拥有所有权。
【问题讨论】:
-
cl::Context 实例有一个
.getInfo(),这对于获取必要的信息(可能是CL_CONTEXT_DEVICES)来重建克隆很有用。 -
你有办法解决这个问题吗?保留功能受到保护,所以我不能使用下面的方法
-
是的 - 正如@Dithermaster 在他的评论中所说,您需要使用 clRetainContext()
标签: c++ c plugins opencl openfx