Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 用于创建OpenCL上下文的GLX上下文_Opengl_Opencl - Fatal编程技术网

Opengl 用于创建OpenCL上下文的GLX上下文

Opengl 用于创建OpenCL上下文的GLX上下文,opengl,opencl,Opengl,Opencl,问题:如何获取GLXContext并将其传递给clCreateContextFromType 信息: 我正在学习openGL CL互操作的工作原理。我已经设法学习了openCL的工作原理和openGl的工作原理,现在我正处于使它们协同工作的最后一步。我使用的是glut,但后来开始使用GLX,因为我需要一个GL上下文,以便CL能够从中创建上下文。我将GLXContext保存为全局变量,并将其传递给clCreateContextFromType,编译时得到: error: invalid conv

问题:如何获取GLXContext并将其传递给clCreateContextFromType


信息:

我正在学习openGL CL互操作的工作原理。我已经设法学习了openCL的工作原理和openGl的工作原理,现在我正处于使它们协同工作的最后一步。我使用的是glut,但后来开始使用GLX,因为我需要一个GL上下文,以便CL能够从中创建上下文。我将GLXContext保存为全局变量,并将其传递给clCreateContextFromType,编译时得到:

error: invalid conversion from ‘GLXContext {aka __GLXcontextRec*}’ to ‘cl_context_properties {aka long int}’
所以我在互联网上到处跑,从中找到一些建议,并制作了一个包含{cl_GLX_DISPLAY_KHR,glc}的cl_context_属性列表。它抛出了完全相同的错误。我错过了什么?为了使这个GLX上下文适合openCL,显然需要做一些事情。我错过了什么?

我发现了:

cl_context_properties props[] =
{
    CL_GL_CONTEXT_KHR, (cl_context_properties)glXGetCurrentContext(),
    CL_GLX_DISPLAY_KHR, (cl_context_properties)glXGetCurrentDisplay(),
    CL_CONTEXT_PLATFORM, (cl_context_properties)(platform_id),
    0
};

我真的不知道它为什么起作用。但我找到了。

这是一份所谓的财产清单。此类列表用于向函数提供任意数量的参数。偶数元素(0,2,4,…)表示以下每个奇数参数都提供了什么。既然您自己找到了答案,也请接受它,因为它将问题标记为已解决。我仍然不明白为什么我可以在属性列表中强制转换它,但不能以其他方式强制转换它。但是谢谢。