iPhoneでOpenGLのUIViewをIBを使用しないで作成する方法
僕はInterfaceBuilderを一切使いたくないという方針なので、下記のようにするとUIViewControllerなんかも気軽に間にはさめていい感じになるんじゃないでしょうか。
- 「OpenGL ES Application」でプロジェクトを新規作成
- EAGLView.hとEAGLView.mをどこかにコピー
- 「Window - Based Application」でプロジェクトを新規作成
- さっきとっておいたEAGLView.hとmをClassesグループ内にコピー
- Frameworksグループ内に既存のフレームワークとして「OpenGLES」と「QuartzCore」を追加
- EAGLView.mのinitWithCoderメソッドの中身を、initWithFrameメソッドを作成してそっちにコピー
- EAGLView.mのinitWithCoderメソッドを削除
- AppDelegate.mのapplicationDidFinishLaunchingメソッドを下記のような感じで実装
- (void)applicationDidFinishLaunching:(UIApplication *)application { glView = [[EAGLView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [window addSubview:glView]; glView.animationInterval = 1.0 / 60.0; [glView startAnimation]; [window makeKeyAndVisible]; } - (void)applicationWillResignActive:(UIApplication *)application { glView.animationInterval = 1.0 / 5.0; } - (void)applicationDidBecomeActive:(UIApplication *)application { glView.animationInterval = 1.0 / 60.0; }