Ce que j´ai apris à force de lire dce forum, c´est qu´on s´arrange toujours pour ne pas limiter le nombre de FPS : si on peut en faire 200, tant mieux. Par contre, tu limite la modification de ton affichage : dans le cas d´un pong, tu ne vas pas déplacer de 2 pixel ta balle toutes les frames (et donc toutes les 1/60e de seconde dans le cas idéal) mais plutot de 120*(T-t) ou T est le temps actuel en seconde et t le temps du dernier affichage. (par exemple).
Ca à l´avantage de ne pas faire de problème si tu rate une frame :
SDL_Delay(16-(b-a));
Aura un effet dévastateur si pour une raisons ou une autre, b-a>16 alors tu attendra des heures (si c´est des unsigned int et pas de int ; je ne sais pas trop comment c´est gérer).
Pareil, avec différent thread (processus léger) tu ne peut pas être sur de l´ordre dans lequel il vont s´exécuter. En gros, le PC change de thread 10 fois par seconde je crois (si il y en a suffisement qui veulent bosser), donc 1/16 de seconde c´est peu à cette échelle, et tu aura un truc pas précis du tout (SDL_delay te garentit que tu vas attendre au mois 16 milli seconde (ou centième j´en sais rien), mais tu peut aussi attendre beaucoup plus si le système décide de ne pas te rendre la main tout de suite.