OpenGL:如何避免滚动/动画中的混蛋

时间:2017-08-30 15:41:46

标签: android delphi opengl-es

我在delphiandroid下,看起来像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无阻塞但现在(我不知道为什么)这些混蛋更糟糕:(

那么我能做些什么来让我的滚动/动画非常流畅而没有任何混蛋?

0 个答案:

没有答案