EGL opengl多线程绘制

opengl多线程绘制

实现效果:opengl开启两个线程,一个线程用于绘制,另外一个线程用于加载纹理。多线程

实现方法:opengl是单线程的,其余线程不能访问另外线程的纹理资源,可是,若是两个线程共享上下文,就能够访问彼此的纹理资源。线程

绘制线程:建立两个上下文code

//只有主要代码
...
context = eglCreateContext(display, config, NULL, ctxAttribs);
context1 = eglCreateContext(display, config, context, ctxAttribs);
...

eglMakeCurrent(display, eglSurface, eglSurface, context);

加载纹理线程:绑定绘制线程中两个上下文中的一个资源

eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, context1);