私はOpenGLESを使って簡単なゲームを作ろうとしています。 私は2つのEAGLView(メニューとゲームビュー)を持っています。 各ビューには独自のviewControllerがあります。ビューの初期化は、viewControllerのinitWithNIBNameメソッドによって行われます。 ビューを表示したいときは、単にメインウィンドウのaddSubviewメソッドを使用します。 ゲームビューは、起動時に1回だけ初期化されます。メニュービューは、必要な場合にのみ初期化されます。問題は、私がゲームビューからメニューに戻って戻って、ゲームビューを再描画すると、何かがうまくいかないことです。 (描画する前にdrawViewメソッドでEAGLContextを設定しているので、コンテキストが正しいかもしれません)。 問題がどこにあるのか分かりませんか? または、全体の切り替えが間違って管理されている場合は、私に助言してください。 返信いただきありがとうございます。openglesビュー切り替えの問題
0
A
答えて
1
テクスチャが正しく表示されない場合がありますか?
OpenGLの背後にある本当のことはわかりませんが、これは私の仮説です。 EAGLViewに戻るたびに、EAGLViewのEAGLContextが変更されます。 (OpenGLESテンプレートからコピー&ペーストしている場合)テクスチャは、コンテキストが正しい状態になった後にのみロードすることができます。そうでなければ、テクスチャをロードできません。コーダ(NSCoder *)::
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
if (!context || ![EAGLContext setCurrentContext:context]) {
[self release];
return nil;
}
だから、どのように我々は、このコンテキストを保存することができます今、EAGLViewを残し、そして戻ってくることで、あなたはinitWithCoderから新しいEAGLContextをインスタンス化していますか?私はそれをグローバルにする。そのような単純な。また、EAGLViewをもう一度インスタンス化するときは、 "global" EAGLContextがnilであるかどうかをチェックしてください。それが無ければ、インスタンス化するだけです。それ以外は何もしません。プログラムを終了しない限り、このグローバルEAGLContextを解放したりdeallocしたりすることはありません。
これは私には当てはまりますが、上記の私の仮説は正しくないかもしれません。誰かが本当のことを知っているなら、私に講演してください。私はまた、謙虚に指導を必要としています。私は本当になぜこれが起こるのかを知りたいのですが、なぜこれを行う必要があるのでしょうか。
そして、これはあなたの質問に答えていますか、Jenicek?
関連する問題
- 1. ラジオボタンjQueryの切り替えの問題
- 2. tinymce切り替えの問題
- 3. Symfony:コンテキスト切り替えの問題
- 4. 多言語切り替えの問題
- 5. ビュー間の切り替え
- 6. 他のビューの切り替えに切り替えるapp xcode
- 7. openglesでアンドロイドのテクスチャを切り替える
- 8. ビューの切り替え時にJavaFXコンパイルされたアプリケーションの問題
- 9. ナビゲーションコントローラのないビューの切り替え
- 10. Zendフレームワークでのビューの切り替え
- 11. NSWindowのビュー間の切り替え
- 12. ビューの表示の切り替え
- 13. NullPointerExceptionビュー間の切り替え時
- 14. 回転切り替えビューのクリッピング
- 15. 遅延切り替えビューの変更
- 16. backbone.jsモデルのビュー切り替え
- 17. アプリケーションとフォーカスの切り替えに問題があります
- 18. クラスの切り替えに問題があります
- 19. modalViewControllerでビューを切り替える
- 20. ボタンでビューを切り替える
- 21. ビューを切り替える方法
- 22. ViewSwitcherをビュー間で切り替える
- 23. drupalでビューを切り替える
- 24. iPhoneスワイプUIScanを切り替えるビュー
- 25. ビュー/ポップアップウィンドウを切り替える
- 26. AppiumをWebビューに切り替える
- 27. Workflow Foundationの問題の文字列の切り替え
- 28. Androidの問題:アクティビティスタック内のアクティビティの切り替え
- 29. jQueryスライドオープン/クローズリンクの切り替えの問題
- 30. Android Oのステータスバーの色を切り替える問題
ビューを切り替え、異なるOpenGLビューが画面に表示されているときは、正しいOpenGLコンテキストで[EAGLContext setCurrentContext:context]を呼び出す必要があります。それ以外の場合は、gl *呼び出しは他のOpenGLビューの内容を変更します。 –