使用GLKit进行跨平台开发?

时间:2012-02-02 18:05:59

标签: iphone cross-platform opengl-es-2.0 glkit

我刚刚安装了当前的Xcode 4版本并实现了新的“GLKit”API,它也用于iOS的OpenGL模板。所以,我想开发一款适用于iOS,Mac和Mac的跨平台游戏。视窗。 GLKit在便携性方面似乎倒退了一步,但GLKit功能(特别是异步纹理加载)是非常有益的......

如何使用GLKit开发跨平台游戏?我需要两次写任何grapics代码,对吗?或者有类似于Windows的GLKit实现吗?

欢迎任何想法,解决方法,代码设计建议(如何将GLKit代码与其他组件分开?) - 谢谢!

1 个答案:

答案 0 :(得分:5)

我想不出GLKit所做的任何不能被非GLKit代码取代的东西。它可以使一些OpenGL ES 2.0任务更容易从它们中抽象出来,但它并没有做任何独特的事情。最接近于拥有你无法在其他地方复制的东西(来自我所修饰的东西)是它提供的加速矩阵和矢量数学函数,但即使是那些也可以用一点加速或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差异更多的时间。