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

标签 c++ macos opengl interop opencl

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

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

https://github.com/glfw/glfw/blob/master/include/GLFW/glfw3native.h

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

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

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

问题也是discussed on the glfw github但没有回答 OSX 的问题。

最佳答案

一种选择是使用 opengl_create_shared_context() Boost.Compute 提供的功能图书馆。此函数负责处理创建共享 OpenCL-OpenGL 上下文时涉及的特定于平台的问题。

关于c++ - 如何在 OSX 上使用 glfw3 在 OpenGL 和 OpenCL 之间创建共享上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28955023/

相关文章:

opengl - Vertex Array Objects - 关于保存当前绑定(bind)的顶点缓冲区的确切状态信息的混淆

c++ - C++ 中的二进制文件,更改音频文件中原始数据的内容

c - 如何在 MAC OSX 上交叉编译 zlib 和共享库?

swift - (OS X) 如何在用户切换 mac 桌面空间时得到通知

c - mingw fatal error : GL/glew. h: 没有那个文件或目录

linux - MacOS 上的 OpenGL

c++ - NSDictionary - C++ 中的 Objective-C 代码

c++ - 在 C++/Windows 中从名称和样式获取字体文件路径

c++ - 迭代排序列表并计算不同的数字

java - 如何从 Mac Os X 将图标添加到 Java (NetBeans) 中?