そのため、いくつかの OpenglES を使用して iphone 開発を行っていますが、エフェクトで prepareToDraw を呼び出すと、かなり奇妙なエラーが発生します。簡単に言えば、私のプログラムはサイコロを振ることをシミュレートしています (objective-c と opengl を学ぼうとしています)。プログラムはほとんどの部分で正常に動作します。アプリでプログラムしたすべてのことを使用できます (物理学のバグがありますが、後で修正できません)。この問題は、OpenGL を含むパーツを使用した後に発生します。
プログラムには、OpenGL を使用している画面に到達するために通過する必要がある 2 つのメニューが含まれています。アプリの OpenGL 部分を使用して前のメニューに戻り、もう一度 OpenGL 部分に戻ってみると、 GL ERROR: 0x0501 と表示されます。私のエフェクトからprepareToDrawメソッドが原因であると絞り込みました。それに関する他の奇妙な部分は、戻ってから再び進むと、OpenGLが再び機能し、OpenGL部分に入るたびに機能して壊れるために何度も繰り返すことができることです。
私は似たような問題を探していましたが、2 のべき乗テクスチャではないテクスチャの読み込みに関係するたびに、まだテクスチャを使用しておらず、色付きの頂点だけであるため、役に立ちません。
2 つのコード ファイルを問題のある場所に貼り付けました
Dice.m: http://pastebin.com/ze1DEEzs draw メソッドを使用すると、問題のある場所 (prepareToDraw メソッド) がプリントアウトで絞り込まれていることがわかります。(308行目)
RollViewController.m: http://pastebin.com/VycwAh3R このファイルは、エフェクトやコンテキストなどをセットアップする場所なので、OpenGL を 2 回実行するたびに prepareToDraw メソッドを台無しにするために、ここで何か間違ったことをしているに違いありませんプログラムの一部。コンテキストと効果に関係するある種のリソースを手放さないことに関係があると感じていますが、コンテキストと効果の削除については何も見つかりません(おそらく必要がないためですが、よくわかりません)。
同じ問題に遭遇し、私の質問に答えることができる誰かがそこにいることを願っています.
ありがとう