1

集中的にレンダリングし、HTTP 経由でフェッチする OpenGL アプリケーションがあります。

Apple の OpenGL のサンプルに従って、私はもともとメインのペイント ループに NSTimer を使用していましたが、(他のみんなと同じように) 本当に良い考えではないことがわかりました (ペイントが遅いとペイントが発生すると、処理中のタッチ イベントに大きな遅延が生じることがあるため)。積み重ねるタイマー)。

そのため、現在、 http: //www.idevgames.com/forum/showthread.php?t=17058 (godexsoft による投稿を検索)でユーザー godexsoft によって提供された戦略を使用しています。具体的には、私のレンダー実行ループはメインスレッドにあり、これが含まれています:

while( CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.01f, FALSE) == 
     kCFRunLoopRunHandledSource);

この行により、タッチ イベントなどのイベントや通信に関連するイベントが、フレームのレンダリングの間に発生することが可能になります。それは機能しますが、さらに改良したいと思います。他のイベント (通信関連のものなど) よりもタッチ イベントを優先する方法はありますか? それができれば、0.01f の数値を下げて、フレーム レートを向上させることができます。(これは、通信が戻るのに時間がかかることを意味する可能性があることを認識していますが、タッチイベントが遅れていないことは非常に重要です)。

4

1 に答える 1

0

これはあなたの質問に直接答えるものではありませんが、再描画のスケジュールにCADisplayLinkを使用することを検討しましたか? iPhone OS 3.1 で導入されました。

于 2009-12-09T18:42:07.807 に答える