IOS OPENGL ES 之EAGLContext上下文配置
来源:互联网 发布:手机主板检测软件 编辑:程序博客网 时间:2024/04/30 15:12
OPENGL ES在 iOS中的层级关系如图。
在IOS应用程序中,每个线程都会维护一个当前上下文。当你的应用程序使用Opengl ES的调用时,线程的上下文就会被那个调用改变。
要设置当前上下文,你可以通过调用EAGLContext类的setCurrentContext:方法。
[EAGLContext setCurrentContext:myContext];
你的应用程序也可以通过EAGLContext类的currentContext方法来获取一个线程的当前上下文。
当你的应用程序设置了一个新的上下文时,EAGL会释放先前的上下文,并且获取新的上下文。
当你的应用程序创建和初始化EAGLContext对象时,可以来决定那种版本的Opengl ES会被支持。创建Opengl ES 2.0上下文时,你的应用程序可以如下初始化:
EAGLContext* myContext = [[EAGLContext alloc]
initWithAPI:kEAGLRenderingAPIOpenGLES2];
共享组最有用的是以下两种情况:
在不同的上下文中,共享的资源不会变化(双缓冲区的实现原理)
当你想要应用程序在一个线程中创建新的Opengl ES对象,而在主线程渲染时。在这种情况下,第二个上下文运行在一个独立的线程中,并且致力于获取数据和创建资源。在所有的资源都加载完成后,第一个上下文绑定到这些对象上,然后立即使用它。
创建多个上下文引用到同一个共享组的方法,首先第一个上下文通过调用initWithAPI:初始化,那么一个共享组就会自动的被创建。然后第二个或者之后的上下文初始化时,就可以通过调用initWithAPI:sharegroup:的方法使用第一个上下文创建的贡献组。第一个上下文通过使用快捷方法。第二个上下文是通过一个扩展的API传递了第一个上下文的共享组从而被创建。
重要:共享同一个共享组的所有的上下文,都必须使用同一个版本的Opengl ES API来初始化上下文。
- EAGLContext* firstContext = CreateBestEAGLContext();
- EAGLContext* secondContext = [[EAGLContext alloc] initWithAPI:[firstContext API]
- sharegroup: [firstContext sharegroup]];
- IOS OPENGL ES 之EAGLContext上下文配置
- OpenGL ES Programming Guide for iOS 配置OpenGL ES上下文
- iOS之OpenGL ES
- [OpenGL ES 01]iOS上OpenGL ES之初体验
- iOS开发OpenGL ES教程之透视
- 如何配置OpenGL ES的上下文(OpenGL ES2.0官方文档翻译)
- 如何配置OpenGL ES的上下文(OpenGL ES2.0官方文档翻译)
- 如何配置OpenGL ES的上下文(OpenGL ES2.0官方文档翻译)
- OpenGL ES Programming Guide for iOS 之 iOS 中的OpenGL ES
- iOS OpenGL ES 研究一:渲染、缓存数据、上下文、几何知识
- OpenGL ES on iOS
- OpenGL ES on iOS
- iOS OpenGL ES 专业术语
- OpenGL ES 之 EGL
- opengl es 初始化及android切后台opengl上下文丢失
- OPENGL-ES之地球与月球For IOS
- iOS之OpenGL ES【1】:基本认识和理解
- iOS之OpenGL ES【2】:渲染管线和着色器
- 快速幂模板
- 百度的冬天:曾梦想成伟大公司 却为何陷入危机
- Struts2访问Servlet API的3种方式
- Can't create handler inside thread that has not called Looper.prepare()
- 自定义ToolBar
- IOS OPENGL ES 之EAGLContext上下文配置
- (七) spring_Bean的作用域
- acm之贪心算法题目6
- 理解postgresql数据表与其对应的数据文件关系
- UISwitch
- 欢迎使用CSDN-markdown编辑器
- [bzoj2733][HNOI2012]永无乡
- 持久层内存溢出
- Flask: Ajax 设置Access-Control-Allow-Origin实现跨域访问;Ajax页面底部自动加载