一見無作為に見えますが (ただし、特定のプログラムの実行中は通常一貫しています)、私のpresentRenderBuffer
呼び出しは非常に遅いです。makeの呼び出しまで追跡したglFlush()
のでpresentRenderBuffer
、今はglFlush()
presentRenderBuffer の直前に呼び出します。にタイマーを設定するglFlush()
と、一見ランダムに 2 つのうちのいずれかが実行されます。
glFlush()
また
1) 一貫して 0.0003 秒かかります
また
2) 約 0.019 秒と 0.030 秒を交互に繰り返す
最も奇妙なことは、これが描画コードから独立していることです。すべての描画コードをコメントアウトしてglClear()
、 call だけを実行しても、2 つの結果のうちの 1 つがランダムに取得されます。
描画メソッドはCADisplayLink
、次の設定でによって呼び出されます。
dLink = [[UIScreen mainScreen] displayLinkWithTarget:viewController selector:@selector(drawFrame)];
dLink.frameInterval = 1;
[dLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
結果の 1 つが発生する原因を特定することは不可能であることがわかっています。誰でもアイデアを提供できますか?