Размер видеобуфера современных графических адаптеров многократно превышает объем памяти, необходимый для хранения образа экрана. Поскольку образ экрана занимает только часть видеобуфера, то адрес ячейки буфера, отображаемой в начало растра (левый верхний угол экрана), задается программно доступным регистром начального адреса. По каждому импульсу кадровой синхронизации содержимое регистра начального адреса (на рисунке это число 1280) переписывается в регистр текущего адреса. Следует отметить, что в адаптерах VGA регистр текущего адреса был недоступен для программиста.

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

1. При движении луча по строке растра содержимое регистра текущего адреса инкрементируется с такой частотой, чтобы к концу строки из буфера прочита-лось RX ячеек.

2. По каждому строчному импульсу в регистр текущего адреса заносится адрес начала следующей строки. Он может отличаться от адреса предыдущей строки более чем на RX ячеек.

Если адрес начала строки в видеопамяти увеличивать с шагом 2*RX = 1280 ячеек, то следует рассматривать кадр изображения как матрицу 29RXx RY, в которой можно сформировать изображение, по ширине вдвое превосходящее размер экрана. Поэтому в графических библиотеках различают ширину дисплейного растра и ширину поверхности рисования (в DirectX ей дано имя 1 Pitch).

Видимая часть поверхности рисования определяется содержимым регистра начального адреса. Если содержимое этого регистра увеличивать на величину г < RX, Основные термины и определения то получится эффект аппаратной горизонтальной прокрутки изображения. Для вертикальной прокрутки к регистру начального адреса надо прибавлять число, кратное 1 Pitch. Графические библиотеки обычно используют регистр начального адреса для аппаратного переключения страниц. Но приложению библиотеки не предоставляют функции, позволяющие записать в этот регистр произвольное число.


⇐ Предыдущая| |Следующая ⇒