我正在使用 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/