C++ 如何使用OSX上的glfw3在OpenGL和OpenCL之间创建共享上下文?
我正在使用OpenGL和OpenCL构建一个粒子系统。我需要在OpenGL和OpenCL之间共享VBOs,从而创建具有适当属性的OpenCL上下文 我知道glfw3公开了一些本机API函数,但是我不知道如何访问CGL函数 我基本上需要找到如何使用glfw3运行此功能: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
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>
#包括
#包括