2012-02-02 10 views
6

私はちょうど現在のXcode 4リリースをインストールし、iOSのOpenGLテンプレートでも使われている新しい "GLKit" APIを実現しました。だから、iOS、Mac & Windows用のクロスプラットフォームゲームを開発したい。 GLKitは移植性の点では一歩前進しているようですが、GLKitの機能(特に非同期テクスチャの読み込みと同様)は大きな利点です...GLKitを使用したクロスプラットフォーム開発ですか?

GLKitでクロスプラットフォームゲームを開発するにはどうすればよいですか?私は2回、グラフィックスコードを書く必要があります。または、Windows用のGLKit実装のようなものがありますか?

任意のアイデア、回避策、コードデザインのアドバイス(GLKitコードを他のコンポーネントから分割する方法)は歓迎です - ありがとう!

答えて

5

私はGLKit以外のGLKitコードでは置き換えられないものは考えられません。 OpenGL ES 2.0のタスクを抽象化してよりシンプルにすることができますが、ユニークなことはありません。他の場所(私が触れたことから)で複製できないものに最も近いのは、それが提供する高速化された行列とベクトル演算関数ですが、それらも少しのAccelerateまたはNEONコードで置き換えることができます。

私は自分のアプリケーションでGLKitを使いたいのですが、私はまだGLOSを利用できないiOS 4.2をサポートしています。私はGLKitを使うことができないので、現在のところ私がやっていることはできません。ビューの更新、テクスチャのアップロード、行列の計算などを処理するコードをもう少し書く必要があります。そこにはたくさんのドキュメンテーションとサンプルがありますこれらの操作のために、それらを実装する際にはあなた自身であることを心配する必要はありません。

あなたのコードをMacでクロスプラットフォームにしようとすると、GLKitよりもはるかに大きな問題があります。デスクトップOpenGLとOpenGL ESの実装にはいくつかの違いがあります。ある関数や組み込み変数を別の関数に置き換える場所を知っておく必要があります。 MacのCAOpenGLLayerとNSOpenGLViewもiOSのCAEAGLLayerと異なり、AppKit全体はUIKitとは別の動物です。

Windowsでは、Cocoaフレームワークを使用できなくなり、Objective-Cも使用できないため、サポートがさらに難しくなります。これはOpenGL/OpenGL ESの違いよりもはるかに時間がかかるでしょう。

関連する問題