GLKit.framewok vs OpenGLES.framework vs QuartzCore.framework

时间:2014-02-20 07:19:54

标签: ios ios7 glkit

我正在为我的应用添加GLView,并且我已经了解I need to add the GLKit framework

所以当我添加这个框架时,我意识到有一个名为OpenGLES.framework的命名非常相似的框架。

我试图在谷歌上查找这两个框架之间的区别,然后我登陆this page

这篇文章似乎暗示我需要一个名为QuartzCore.framework的额外框架,这让我更加困惑。

我有以下问题:

1)这些框架如何相互关联?

2)似乎只有GLView框架才能使GLView正常工作。什么时候我需要使用其他两个框架?

1 个答案:

答案 0 :(得分:3)

OpenGL ES是一种用于GPU加速绘图的跨平台C API,尤其适用于3D图形和图像处理。在iOS上,您可以链接OpenGLES.framework,从而可以访问跨平台API以及最基本的iOS特定API(EAGLContextCAEAGLLayer),以便在您的应用中使用OpenGL ES。

GLKit是一个特定于Apple的框架,它增加了额外的功能,可以更轻松地开发基于OpenGL ES的应用程序,在您链接到的教程中总结得很好:

  
      
  • GLKView / GLKViewController。这些类抽象出了用于设置基本OpenGL ES项目的大部分样板代码。
  •   
  • GLKEffects。这些类实现了OpenGL ES 1.0中常用的着色行为,可以更轻松地过渡到OpenGL ES 2.0。它们也是一种方便的方式来获得一些基本的照明和纹理。
  •   
  • GLMath。在iOS 5之前,几乎每个游戏都需要自己的数学库以及常见的向量和矩阵操作例程。现在有了GLMath,大多数常见的数学例程都适合你!
  •   
  • GLKTextureLoader。此类可以更轻松地将图像作为要在OpenGL中使用的纹理加载。而不是必须编写处理大量不同图像格式的复杂方法,加载纹理现在是单个方法调用!
  •   

如果您链接GLKit.framework,则免费获得OpenGLES.framework - 同样,如果您导入GLKit标题,OpenGL ES标题会随之而来。

QuartzCore用于直接使用Core Animation图层。在介绍GLKit之前,你必须设置自己的图层来获取屏幕上的OpenGL内容 - 现在GLKView代表你这样做,所以除非你想用Core Animation做更多有趣的事情,否则不需要QuartzCore。 / p>