Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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
C++ 如何使用OSX上的glfw3在OpenGL和OpenCL之间创建共享上下文?_C++_Macos_Opengl_Interop_Opencl - Fatal编程技术网

C++ 如何使用OSX上的glfw3在OpenGL和OpenCL之间创建共享上下文?

C++ 如何使用OSX上的glfw3在OpenGL和OpenCL之间创建共享上下文?,c++,macos,opengl,interop,opencl,C++,Macos,Opengl,Interop,Opencl,我正在使用OpenGL和OpenCL构建一个粒子系统。我需要在OpenGL和OpenCL之间共享VBOs,从而创建具有适当属性的OpenCL上下文 我知道glfw3公开了一些本机API函数,但是我不知道如何访问CGL函数 我基本上需要找到如何使用glfw3运行此功能: CGLContextObj kCGLContext = CGLGetCurrentContext(); CGLShareGroupObj kCGLShareGroup = CGLGetShareGroup(kCGLContext

我正在使用OpenGL和OpenCL构建一个粒子系统。我需要在OpenGL和OpenCL之间共享VBOs,从而创建具有适当属性的OpenCL上下文

我知道glfw3公开了一些本机API函数,但是我不知道如何访问CGL函数

我基本上需要找到如何使用glfw3运行此功能:

CGLContextObj kCGLContext = CGLGetCurrentContext();
CGLShareGroupObj kCGLShareGroup = CGLGetShareGroup(kCGLContext);

cl_context_properties properties[] =
{
    CL_CONTEXT_PROPERTY_USE_CGL_SHAREGROUP_APPLE,
    (cl_context_properties)kCGLShareGroup,
    0
};

这个问题也是,但没有回答OSX的问题。
glfw3native.h
的文档如下:

我不熟悉OSX,但我假设您希望使用
glfwGetNSGLContext
获取GL上下文。我相信即使使用GLFW,您仍然可以使用
CGLGetCurrentContext
,而且似乎您仍然必须使用
CGLGetShareGroup

一个选项是使用库提供的函数。此函数负责处理创建共享OpenCL OpenGL上下文时涉及的特定于平台的问题。

请查看

事实上,访问当前OpenGL上下文不需要
glfw3
的方法。只需
#包含
以下头文件,您就可以使用示例代码了

#include <OpenCL/opencl.h>
#include <OpenGL/OpenGL.h>
#包括
#包括