Движок с нуля
Справочник

Двойная буферизация

Программа рисует кадр в невидимый задний буфер, а когда кадр готов, меняет задний буфер местами с передним. Так зритель никогда не видит недорисованный кадр.

Если рисовать прямо в тот буфер, который показывает монитор, зритель увидит процесс: сначала пустой экран, потом половину сцены, потом всю. Картинка будет мерцать.

Поэтому программа рисует в задний буфер: монитор этот буфер не показывает. Когда кадр готов, программа одной операцией меняет местами задний буфер и передний буфер, который показывает монитор. Эта операция называется swap («обмен»). Обычно swap меняет местами только указатели на два буфера и не копирует все пиксели кадра (для окна 1280 × 720 это 3,5 МБ), поэтому swap почти мгновенный.

А что такое vsync?

Монитор обновляет картинку с постоянной частотой, например 60 раз в секунду. Если сделать swap посреди обновления, верх экрана покажет старый кадр, а низ — новый («разрыв» картинки). Вертикальная синхронизация (glfwSwapInterval(1)) заставляет swap ждать начала следующего обновления монитора.