GLKView和EAGLView有什么区别?

时间:2011-12-07 08:26:51

标签: iphone objective-c ios opengl-es ios5

我在iOS应用程序中看到了EAGLView和GLKView。它们之间有什么区别?

1 个答案:

答案 0 :(得分:31)

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

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

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

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