Трехстраничный флип-буфер - возможно ли это?

Я только что обнаружил, что такое двойной буфер, и я полностью понимаю, как они работают и почему они используются (слава Богу за Википедию!)

Я также понимаю, что тройной буфер используется для плавной анимации графики.

Но перелистывание страниц (также известное как Ping Pong Buffering) также, по-видимому, быстрее и устраняет разрыв графики.

Итак, мои вопросы таковы:

  1. Можно ли сделать лучшее из обоих миров и иметь трехсторонний флип-буфер? Так что анимация не только плавная, но и без слез.
  2. Стоит ли идти к хлопотам по созданию этого буфера с тремя страницами? Например, сделает ли это анимацию быстрее или просто создаст ненужную нагрузку на устройство?

Заранее спасибо!

1 ответ

Решение

Большинство известных мне аппаратных средств использует то, что Википедия называет "методом переворота страниц" - то есть отображение нового кадра анимации путем переключения, который считается передним буфером, без какой-либо операции копирования. Этот метод полностью совместим с тройной буферизацией - если вы можете изменить какой из двух буферов вы рассматриваете как передний буфер, вы можете сделать то же самое с тремя.

Использование трех буферов, во-первых, является компромиссом: вы не тратите время, не имея буфера для рисования (если рисование быстрее, чем частота обновления), но оно использует больше памяти и потенциально может добавить дополнительную задержку.

Другие вопросы по тегам