我正在为我的应用添加GLView
,并且我已经了解I need to add the GLKit framework。
所以当我添加这个框架时,我意识到有一个名为OpenGLES.framework
的命名非常相似的框架。
我试图在谷歌上查找这两个框架之间的区别,然后我登陆this page。
这篇文章似乎暗示我需要一个名为QuartzCore.framework
的额外框架,这让我更加困惑。
我有以下问题:
1)这些框架如何相互关联?
2)似乎只有GLView框架才能使GLView正常工作。什么时候我需要使用其他两个框架?
答案 0 :(得分:3)
OpenGL ES是一种用于GPU加速绘图的跨平台C API,尤其适用于3D图形和图像处理。在iOS上,您可以链接OpenGLES.framework
,从而可以访问跨平台API以及最基本的iOS特定API(EAGLContext
和CAEAGLLayer
),以便在您的应用中使用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>