我在delphi
下android
下,看起来像openGL
问题。我有问题获得平滑滚动。我总是有 Jerks :(为了渲染我们这样做的框架:
will running do begin // << main loop
doSomething // << calculate for example position of controls regarding velocity
executeAllTimerProcedure;
eglMakeCurrent(..)
paintEverything // << paint all texture, this took around 5 ms
eglSwapBuffers(...) // << stuck waiting the vsync signal
end;
问题在于eglSwapBuffers
等待vsync signal
。由于每16.6 ms(60fps)触发vsync信号,主循环在步eglSwapBuffers
处阻塞。如果在dosomething中进行的计算被延迟,这可能会导致滚动中出现一些混乱。所有计时器都被延迟了。
我尝试设置eglSwapInterval(eglGetCurrentDisplay, 0);
这使得eglSwapBuffers无阻塞但现在(我不知道为什么)这些混蛋更糟糕:(
那么我能做些什么来让我的滚动/动画非常流畅而没有任何混蛋?