Uint32 prev = SDL_GetTicks();
while ( true )
{
Draw();
Uint32 now = SDL_GetTicks();
Uint32 delta = now - prev;
printf( "%u\n" , delta );
Update( delta / 1000.0f );
prev = now;
ProcessEvents();
}
Приложение представляет собой простой движущийся квадрат.Мой цикл выглядит так, и когда vsync в целом работает, все работает довольно гладко;вместо этого отключение вызывает некие скачки анимации.Я вставил несколько отпечатков, и вот что я нашел:
[...]
16
15
16
66 #
2 #
0 #
0 #
16
16
21
[...]
Я знаю, что есть несколько проблем с этим типом цикла, но ни одна из них, кажется, не относится к этому простому примеру (я не прав?).В чем причина такого поведения и как я могу его преодолеть?
Я использую карту ATI в системе Linux, но я ожидаю портативного объяснения / решения.