首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有所有权的情况下从OpenCL创建cl_context上下文

在没有所有权的情况下从OpenCL创建cl_context上下文
EN

Stack Overflow用户
提问于 2017-10-18 15:30:09
回答 1查看 366关注 0票数 2

我正在创建一个OpenFX插件来为虚拟现实系统做一些图像处理。

由于我们现有的处理代码和插件打算用于的主机都是基于OpenCL的,所以主机开发人员给了我一个扩展到OFX来共享OpenCL环境。

但是,我们的代码使用了C++ API (cl::Context),它们提供的扩展为我提供了一个指向C cl_context的指针。

有什么方法可以让我从cl_context中创建cl::Context,而不占用后者的所有权?(来自cl_command_queue的cl::CommandQueue也是如此)。API文档在线建议复制构造函数和赋值操作符都具有所有权。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-18 23:08:00

幸运的是,您可以检查OpenCL C++头,查看它到底做了什么(在底部它只进行can调用),您可以进入代码来验证它。在使用C和C++ API时,您必须小心OpenCL对象的保留/释放计数,特别是如果C++构造函数没有保留,但析构函数确实发布了,那么您就有了问题(因为您将从它们下面释放主机的上下文)。但是,它很容易修复,因为您只需在构造之后调用“在对象上保留自己”来平衡事情。我在C++中混合了C和OpenCL API,我也感受到了C++头的保留/发布理念,所以我感觉到了您的痛苦。奇怪的是,OpenFX主机的决心、维加斯、催化剂还是别的什么?在实现OpenCL的过程中,有一个统一的OpenFX扩展。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46813907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档