現在、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
ます。私の OpenCL-Only-Context では正常に動作するため、それが有効であることはわかってい_clDevice
ますが、 CGLGetCurrentContext() は常に を返すことがわかりました0
。これは「無効な値」だと思いますが、なぜ常に0
ですか? コンテキストを手動で作成する必要がありますか? C++/Qt プログラムの一部として使用しています。