我正在制作一款CAD软件,它将为类似的视图创建不同的OpenGL上下文(如果它们没有显示相同的内容)。
我想在这些OpenGL上下文之间尽可能分享数据,特别是VBO和着色器。
我想知道可以分享哪些内容以及如何以跨平台的方式分享它们,并且最好使用纯OpenGL 3.2(无引擎)。
我正在制作一款CAD软件,它将为类似的视图创建不同的OpenGL上下文(如果它们没有显示相同的内容)。
我想在这些OpenGL上下文之间尽可能分享数据,特别是VBO和着色器。
我想知道可以分享哪些内容以及如何以跨平台的方式分享它们,并且最好使用纯OpenGL 3.2(无引擎)。
wglShareLists
,可在多个上下文之间共享对象。虽然它只谈到显示列表,但它可以共享所有可共享对象。wglShareLists
来连接新创建的上下文与先前存在的上下文。或者通过将要与之共享的上下文句柄传递给 wglCreateContextAttribsARB
来分享。但是,要获得该函数的函数指针,您必须首先创建一个代理上下文(这需要跳过几个步骤,我已经在 https://git.datenwolf.net/wglarb/ 中实现了这些步骤,所以您只需调用 wglarb_CreateContextAttribsARB
即可,无需关心其余部分)。wglCreateContextAttribsARB
的方式基本相同,使用 glXCreateContext
。