OpenGL—多线程渲染共享上下文(share context)
来源:互联网 发布:手机拍照定位软件 编辑:程序博客网 时间:2024/06/08 08:53
简介:
在对OpenGL开发的过程中,由于正常只使用一个线程来进行绘图操作,这样有时会满足不了需求,所以需要加入多线程来进行操作。但是如果创建两个独立的渲染线程,这样却无法将绘图的信息同时显示在同一屏幕上,这时就需要使用到OpenGL的共享上下文方案,可以在两个线程中共享同一资源。实现:
在Android系统中,实现共享上下文很简单,只需要在调用eglCreateContext的时候将上一个已经创建好的eglContext传入即可:private class ShareGLContextFactory implements EGLContextFactory {private int EGL_CONTEXT_CLIENT_VERSION = 0x3098;private EGLContext mShareContext = null;ShareGLContextFactory(EGLContext shareContext) {mShareContext = shareContext;}public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig config) { int[] attrib_list = {EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE }; return egl.eglCreateContext(display, config, mShareContext, attrib_list); } public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) { if (!egl.eglDestroyContext(display, context)) { Log.e("DefaultContextFactory", "display:" + display + " context: " + context); } }}
注意事项:
1. 使用多线程来调用OpenGL API可以实现纹理ID或者其他的资源ID的共享,但是如果对同一资源同时进行写操作的时候,需要加锁进行分隔,否则会导致许多Crash问题
2. 使用多线程最好的使用方式是一个线程用于纹理加载,另外一个线程用于绘图,不建议两个线程同时进行绘图操作。
2. 使用多线程最好的使用方式是一个线程用于纹理加载,另外一个线程用于绘图,不建议两个线程同时进行绘图操作。
0 0
- OpenGL—多线程渲染共享上下文(share context)
- Opengl RC(Render context,渲染上下文)与像素格式(转)
- 略谈OpenGL中的共享上下文(EGL Context)
- Win32多线程之线程上下文切换(Context Switching)
- Android(12)——上下文Context
- 关于上下文(Context)
- 释意:Context(上下文)
- 释意:Context(上下文)
- 安卓 Context 上下文+应用共享概括
- Samba—share(共享模式)
- opengl 多线程渲染中的问题
- android下opengl多线程渲染
- Qt应用程序所有窗口共享OpenGL上下文
- IOS Dev Intro - Opengl ES Context Share Group
- MDX的上下文(Context)
- MDX的上下文(Context)
- java Context(上下文)释义
- java Context(上下文)释义
- UVA 103 - Stacking Boxes
- 第8周项目 3——2 多多分段函数求值
- 字节输入流BufferedInputStream和字节输出流BufferedOutputStream
- Android Stagefright MPEG4Extractor分析
- Android开发之异步详解(一)Thread+Handler
- OpenGL—多线程渲染共享上下文(share context)
- C#模拟软键盘,keybd_event 用法
- 关于图片上传
- 计算机工程研发中心经验交流会------2014.10.17(最后跟新2014.10.20)
- Python-guide 2 :Structuring Your Project
- MongoDB的配置和基本的操作
- 某集团公司cisco ASA5520的全配置
- spring mvc 表单标签
- linux TCP/UDP SOCKET编程