OpenGL ES 面试高频知识点

OpenGL 共享上下文使用场景?有哪些资源可以共享?

多线程渲染或者跨窗口渲染,共享上下文可以使得多个线程、窗口之间能够共享 OpenGL 对象(如纹理、shader 等)和状态信息,避免了在多个上下文之间频繁地进行数据拷贝和同步操作,减少资源消耗,提高性能。

可以共享的资源:

纹理;
shader;
program 着色器程序;
buffer 类对象,如 VBO、 EBO、 RBO 等 。

不可以共享的资源:

FBO 帧缓冲区对象(不属于 buffer 类);
VAO 顶点数组对象(不属于 buffer 类)。

这里解释下,在不可以共享的资源中,FBO 和 VAO 属于资源管理型对象,FBO 负责管理几种缓冲区,本身不占用资源,VAO 负责管理 VBO 或 EBO ,本身也不占用资源。

注意,每个线程同时只能绑定(eglMakeCurrent)一个 Context ,但可以按顺序切换不同 Context。

你可能感兴趣的:(OpenGL,ES,3.0,面试,OpenGLES,音视频,图形渲染,c++,Android)