在OS X上获取当前的OpenGL上下文

时间:2012-05-25 15:14:22

标签: qt opengl opencl

目前我正在尝试使用OpenCL< - > OpenGL互操作功能。我获取共享上下文的代码:

cl_int error = 0;
CGLContextObj glContext = CGLGetCurrentContext();

CGLShareGroupObj shareGroup = CGLGetShareGroup(glContext);
cl_context_properties props[] =
{
    CL_CONTEXT_PROPERTY_USE_CGL_SHAREGROUP_APPLE, (cl_context_properties)shareGroup,
    CL_CONTEXT_PLATFORM, (cl_context_properties)this->_clPlatform,
    0
};

context =  clCreateContext(props, 1, &this->_clDevice, NULL, NULL, &error);

此代码在clCreateContext期间因INVALID_VALUE错误而失败。我知道_clDevice是有效的,因为我的OpenCL-Only-Context它工作正常,但我发现CGLGetCurrentContext()总是返回0。我认为这是“无效价值”,但为什么总是0?我是否必须手动创建上下文?我正在使用它作为C ++ / Qt程序的一部分。

1 个答案:

答案 0 :(得分:0)

尝试删除

CL_CONTEXT_PLATFORM, (cl_context_properties)this->_clPlatform

完全。它仅对我使用CL_CONTEXT_PROPERTY_USE_CGL_SHAREGROUP_APPLE