[英]OpenGl ES 2.0 and GLKit : From GLKBaseEffect shaders to OpenGl
[英]How to replace OpenGL ES 1.1 EAGLLayer view with OpenGL view from GLKit?
我有一个简单的游戏直接使用EAGLLayer。 我必须设置runloop和所有OpenGL ES样板。 由于OpenGL背景问题,游戏有时会崩溃。 我听说GLKit有一个强大的样板OpenGL视图,它负责OpenGL的初始化和暂停。
是否可以为OpenGL 1.1设置此GLKit视图,我将从哪里开始?
这是一个相当开放的问题,所以最好先让自己了解一下GLKit的背景,然后在遇到具体问题时再提出更多问题。
看看使用“OpenGL游戏”模板创建新Xcode项目时获得的代码 - 这将为您设置GLKView
和GLKViewController
。 在Apple的OpenGL ES编程指南中还有一些关于这些类如何工作以及如何使用它们的描述。
它的总体要点: GLKView
为基本的OpenGL ES绘图完成所有帧缓冲,渲染缓冲和视口设置和演示(包括所有额外的帧缓冲,以便在需要时进行多重采样),这样您所要做的就是发出绘图命令。 GLKViewController
拥有一个GLKView
并运行一个动画计时器来调用你的绘图代码 - 默认情况下,它确保当应用程序在后台时不调用你的绘图代码。
如果您正在使用GLKViewController
并且仅从GLKView
(子类或委托)绘制方法进行OpenGL ES调用,则您不必担心由于GPU在后台使用而导致崩溃。 如果你看到这样的崩溃(在堆栈跟踪中使用gpus_ReturnNotPermittedKillClient
),它可以帮助尝试强制GL在进入后台之前完成处理 - 在applicationWillResignActive:
调用glFinish()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.