GLKView和EAGLView有什么区别?

che*_*ane 15 iphone opengl-es objective-c ios ios5

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

Bra*_*son 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渲染.