1

現在、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);

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

4

1 に答える 1

0

削除してみてください

CL_CONTEXT_PLATFORM, (cl_context_properties)this->_clPlatform

完全に。のみを使用して私にとってはうまくいきましたCL_CONTEXT_PROPERTY_USE_CGL_SHAREGROUP_APPLE

于 2012-05-29T16:12:25.693 に答える