Objective c 两个NSOpenGLContext之间究竟共享了什么?
我正在尝试创建一个NSOpenGLContext,初始化渲染引擎,然后使用第一个上下文中的share参数创建新的NSOpenGLContext。这不起作用,在我继续之前,上下文之间到底共享了什么?文档对此有一点说明: 共享上下文共享在启动共享之前和之后创建的所有纹理对象、显示列表、顶点程序、片段程序和缓冲区对象。对象的状态也是共享的,但不是其他上下文状态,例如当前颜色、纹理坐标设置、矩阵和照明设置、光栅化状态和纹理环境设置 当我创建第一个NSOpenGLContext时,我初始化我的渲染引擎,它进行以下类型的调用:Objective c 两个NSOpenGLContext之间究竟共享了什么?,objective-c,macos,opengl,nsopenglview,Objective C,Macos,Opengl,Nsopenglview,我正在尝试创建一个NSOpenGLContext,初始化渲染引擎,然后使用第一个上下文中的share参数创建新的NSOpenGLContext。这不起作用,在我继续之前,上下文之间到底共享了什么?文档对此有一点说明: 共享上下文共享在启动共享之前和之后创建的所有纹理对象、显示列表、顶点程序、片段程序和缓冲区对象。对象的状态也是共享的,但不是其他上下文状态,例如当前颜色、纹理坐标设置、矩阵和照明设置、光栅化状态和纹理环境设置 当我创建第一个NSOpenGLContext时,我初始化我的渲染引擎,它
- GlgenTexture、glActiveTexture、glBindTexture
- 格伦纳
- glUseProgram,GLGetAttriblLocation,glGetUniformLocation
- glUniform1i,glUniform3f
- GLGEnVertexArrayApple,glBindVertexArrayAPPLE,glBindBuffer
- GLVertexAttribute指针,GlenableVertexAttribute数组
您希望所有这些项都在上下文中共享吗?函数调用不会在上下文中共享。只有对象。只有一些物体 通常,共享的对象是那些显然禁止在另一个上下文中重新创建的对象。要么是因为存储了大量数据,要么是因为设置时间相对较长 如果需要列表,将共享以下对象:
- 显示列表
- 质地
- 渲染缓冲区
- 缓冲区对象
- 着色器和程序
- 顶点数组对象(位于其中的缓冲区对象是共享的,但对象本身不是)
- 帧缓冲区对象(与VAO一样,仅共享其中的内容)