はじめに
Xcode7.1でtvOSアプリケーションを作れるようになったのだが、なぜか新規プロジェクト作成時にGameを選ぶと、SceneKitとSpriteKitとMetalは選べるのにOpenGLは選べない。
tvOSはOpenGL ESもサポートしているようなので、使えないわけではなさそうだ。
そもそもMetalだとSimulatorで動作確認できないのが辛い。
そんなわけで無理矢理、OpenGLを使ってみた。
準備
まず、iOS用のOpenGLプロジェクトを用意します。ここでは新規でGame->OpenGL ESで作成されるサンプルソースを使います。おそらくすでにOpenGLアプリがあるのならそのソースを使ってもビルド出来るのではないかと思います(責任は持たない)。
次に、tvOS用のMetalプロジェクトを用意します。
手順
基本的に、iOS用プロジェクトの中身をtvOS用プロジェクトに流用して使います。
1.iOS用プロジェクトからShader.fsh,Shader.vshをtvOS用プロジェクトに持ってきます。新規でファイルを作成して中身だけコピペも良いでしょうし、ファイルごとコピペでも良いでしょう。
2.iOS用プロジェクトのGameViewController.swiftの中身を、tvOS用プロジェクトのGameViewController.swiftにまるごとコピペします。
3.tvOS用プロジェクトのShaders.metalファイルは要らないので削除します。
4.tvOS用プロジェクトのMain.storyboardのViewがMetal用のMTKViewになっているので、GLKViewに変更します。
余談ですが、tvOSではiOSとは違い、frameworkをプロジェクトに含めたりする必要がなさそうな気がします。
実際、OpenGLもframeworkとか気にしないで動きました。
ビルド
あとはApple TV Simulatorを選んで実行すればシミュレーター上でOpenGLアプリが動きます。
以上。