繁体   English   中英

如何用GLKit中的OpenGL视图替换OpenGL ES 1.1 EAGLLayer视图?

[英]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项目时获得的代码 - 这将为您设置GLKViewGLKViewController 在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM