我正在尝试实现here中的OpenCL和OpenGL互操作性。
使用了函数clCreateFromGlTexture(),但是我在项目中使用的是C ++绑定,在它们的documentation上找不到等效的函数。
是否存在对此的绑定,或者有什么方法可以将cl :: Context对象转换为cl_context类型?
答案 0 :(得分:1)
是的,所有cl::
对象都从operator()
继承cl::detail::Wrapper< T >
并返回其cl_type。所以它可以像这样使用:
cl::context x;
cl_context c = x();
此外,您可能希望使用cl::ImageGL
,其行为类似于cl::Image
,并且是完全通过clCreateFromGlTexture()
调用从OpenGL纹理创建的。
请注意,即使使用c ++类,您仍必须使用clEnqueueAcquireGLObjects
和clEnqueueReleaseGLObjects
。