「OpenGL Game」テンプレートを使わずGLKitを使う方法
XCode(この記事執筆時点のバージョンは4.6)で「OpenGL Game」テンプレートを使わずに、例えば「Tabbed Application」など通常のテンプレートを用いたアプリ開発でも、GLKitでOpenGL ES 2.0を使えるようにする手順についてメモします。ここでは例として「Tabbed Application」を用いていますが、それ以外のテンプレートでも同様の手順で行けるはずです。
- まずは普通に、「Tabbed Application」テンプレートを選択してプロジェクトを作成します。
- プロジェクトに「GLKit.framework」「OpenGLES.framework」という2つのフレームワークを追加します。
- Storyboardエディタを開いて、既存の ViewController に貼付けられた UIView を削除します(今回の場合はTabbed Applicationなので、どちらか片方のみ(ここではFirstViewControllerの側)を削除してみます)
- 右下のObject Libraryから「GLKit View」を選んで、先程削除した UIView の代わりに貼付けます。
- GLKit View を貼付けた ViewController のヘッダファイル(ここでは FirstViewController.h )を開いて、以下のような書き換えを行います。GLKit/GLkit.h ヘッダファイルのインポートを追加して、UIViewControllerクラスではなく、GLKViewControllerクラスを継承するように書き換えます。
//FirstViewController.h #import <UIKit/UIKit.h> #import <GLKit/GLKit.h> //追加 @interface FirstViewController : GLKViewController //GLKViewControllerクラスを継承するように書き換え @end
- 後は、GLKit View を貼付けた ViewController のソースファイル(ここでは FirstViewController.m)に、GLKitを用いたコードを記述していくだけです。ここでは前の記事で記述した、GLKitのみで2つの回転する立方体を描画するコードをそのまま(ただし、ViewController の名前は FirstViewController に修正して)用いて実行してみます。以下のように、片方のタブでは OpenGL ES 2.0 によるグラフィックを表示、もう片方のタブでは通常のUIViewによる表示、といったアプリが作成出来ます。