我想不出 GLKit 所做的任何事情都不能被非 GLKit 代码取代。它可以通过将某些 OpenGL ES 2.0 任务从您那里抽象出来,从而使它们变得更简单,但它并没有做任何独特的事情。最接近你无法在其他地方复制的东西(从我修补的东西)是它提供的加速矩阵和矢量数学函数,但即使是那些也可以用一点 Accelerate 或 NEON 代码替换。
虽然我想在我的应用程序中使用 GLKit,但我仍然支持 iOS 4.2,它没有可用的 GLKit。目前没有什么事情因为我不能使用 GLKit 而被阻止,我只需要编写更多代码来处理视图更新、纹理上传、矩阵数学等事情。那里有大量的文档和示例对于这些操作,因此您不必担心在实施它们时要靠自己。
当你试图让你的代码在 Mac 上跨平台时,你会遇到比 GLKit 更大的问题,尤其是在 Windows 上。桌面 OpenGL 和 OpenGL ES 在它们的实现上存在一些差异,您需要注意将一个函数或内置变量替换为另一个的位置。Mac 上的 CAOpenGLLayer 和 NSOpenGLView 也不同于 iOS 上的 CAEAGLLayer,AppKit 总体上是不同于 UIKit 的动物。
支持 Windows 将面临更大的挑战,因为您将无法使用任何 Cocoa 框架,而且很可能也无法使用 Objective-C。这将比任何 OpenGL / OpenGL ES 差异花费更多的时间。