簡體   English   中英

如何在OSX上使用glfw3在OpenGL和OpenCL之間創建共享上下文?

[英]How can I create an shared context between OpenGL and OpenCL with glfw3 on OSX?

我正在使用OpenGL和OpenCL構建粒子系統。 我需要在OpenGL和OpenCL之間共享VBO,因此需要創建具有適當屬性的OpenCL上下文。

我知道glfw3公開了一些本機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
};

在glfw github上討論了該問題,但未回答OSX的問題。

glfw3native.h的文檔在這里: http : glfw3native.h

我對OSX不熟悉,但是我假設您要使用glfwGetNSGLContext來獲取GL上下文。 我相信你仍然可以使用CGLGetCurrentContext即使您正在使用GLFW,看來你還是將不得不使用CGLGetShareGroup反正。

一種選擇是使用Boost.Compute庫提供的opengl_create_shared_context()函數。 此功能負責處理創建共享的OpenCL-OpenGL上下文時涉及的特定於平台的問題。

請看一下我對類似帖子的回答

實際上,您不需要glfw3的方法來訪問當前的OpenGL上下文。 只需#include以下頭文件,您就可以很好地使用示例代碼。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM