GLKView和EAGLView有什么区别?

我已经看到在iOS应用程序中使用EAGLView和GLKView。 他们之间有什么区别?

这两个类都与OpenGL ES相关,但其中只有一个实际上由Apple提供,作为iOS SDK的一部分。

EAGLView不是Cocoa Touch框架提供的类。 在Apple的OpenGL ES模板和示例代码中,他们已经创build了具有OpenGL ES内容的名称的类。 其他人则将这些课程复制并粘贴到他们撰写的有关该主题的教程中。 通常,具有这个名字的所有类的一个元素有一个共同点,就是他们重写了+layerClass方法来返回[CAEAGLLayer class] ,表明这些视图将OpenGL ES内容托pipe在它的后台层。

作为GLKit框架的一部分,GLKView在iOS 5.0中是新的。 GLKit旨在通过提供像GLKView这样的辅助类来简化显示OpenGL ES材料所需的一些设置。 GLKView为您处理帧缓冲区的设置和渲染缓冲区,以及您通常需要编写代码的一些其他任务。

你可能不会看到这个类在教程中被大量使用,因为它们中的很多是在iOS 5.0之前编写的,但是这是一个方便的助手类,可以简化iOS OpenGL ES渲染。