私のアプリケーションはopenGLベースであり、ES1.1とES2.0をサポートしています。
私のビューコントローラには、EAGLViewのインスタンスであるビューがあり(Appleのサンプルコードによる)、ES 1.1または2.0のいずれかで異なる「レンダラー」オブジェクトを使用します(Xcodeサンプルを使用したことのある人にとってはほぼ標準です)。
CADisplayLinkを使用して画面を更新します。少なくともiOS4.0以降をターゲットにしているので、問題はないはずです。
起動時に、起動画像(Default.png)が表示された後の最初のフレームが黒く表示されます。間にある1フレームの迷惑な黒いちらつき。
ウィンドウキーと表示を作成する前に、更新/レンダリングサイクルの1ラウンドを「偽造」すると(バックバッファも空にならずにレンダリングされるように)、ちらつきは消えますが、ES2.0を使用している場合のみです。
kEAGLDrawablePropertyRetainedBackingをYESに設定しましたが、どちらの値も違いがないようです。
ES 1.1を使用すると、ちらつきが残ります。唯一の違いは、ウィンドウを表示する前に「更新」を実行すると、glClearColor()で指定した色に画面がちらつくことです。ただし、事前に更新しないと、ちらつきは常に黒になります。
私はCocos2dフォーラムでこの問題について何度も議論を見てきましたが、そこでさえ問題は常に戻ってきて、新しいハックが発生するたびにあなたを噛むようです。
それにもかかわらず、私はプレーンなOpenGL ES( Cocos2dやその他のライブラリではありません)を使用していますが、Webをどのように検索しても、同様の問題を抱えている人を見つけることができません...
ヒントはありますか?