Следующий метод, требующий использования дополнительной
экранной памяти, обычно называют двойной буферизацией (double
buffering). Он применяется для обеспечения плавности движения в
быстро меняющихся изображениях (например, при мультипликации).
Даже в простых моделях с быстродействующим аппаратным обеспече-
нием непрерыное перерисовывание объекта может вызвать заметное
мерцание экрана. Оно вызвано необходимостью всякий раз очищать
дисплей перед тем, как система начнет рисовать объект в новой
позиции. Чтобы устранить этот дефект, двойная буферизация поз-
воляет системе рисовать образ в неотображаемой части экранной
памяти, а затем переключать отображение на эту часть. В этом
случае обьект немедленно воспроизводится в новой позиции.
Фактически, этот метод переопределяет некоторое количество
плоскостей (вторичный буфер) как скрытую память и затем меняет
местами два буфера так, что первичный буфер становится неотоб-
ражаемым. Если вы работаете с псевдо-цветными изображениями,
вам нужно два блока памяти глубиной по 8 плоскостей, всего 16
плоскостей, чтобы использовать этот метод. Если вы пожелаете
иметь двухбуферное изображение с действительными цветами, пона-
добится уже 48 плоскостей. Когда формирование вторичного изоб-
ражения завершено, вы сообщаете системе об изменении участка
отображаемой памяти, и следующий кадр изображения возникнет на
экране. Заметим, что такой подход не позволяет вам рисовать бу-
феры быстрее, он только дает ощущение более реалистичного дви-
жения. Пока существует только теоретическая возможность генери-
ровать двойные псевдо-цветные изображения для PC, и слишком ма-
ло программных средств ее реализуют.
|