10.3.9. Рисование в обратном режиме Рисование узора в обратном режиме (reverse mode) также можно использовать для стирания прямой линии и восстановления исходных значений пикселов. Буфер кадров с глубиной Ъ бит содержит N= 2Ь возможных значений пикселов в диапазоне от 0 до 2b - 1. Рисование пиксела в обратном режиме означает, что текущее значение пиксела dзаменяется значением f(d) = N-d. Отметим, что эта функция рисования является «инволюцией» (involution): повторное рисование восстанавливает оригинал, поскольку f(f(d))= = JV - f(d) = N-(N-d)=d. Опишите, как эта технология работает при рисовании резиновой нити и какие цвета видны вдоль этой нити при ее пересечении с пикселами различных цветов. В чем состоит различие между рисованием в обратном режиме и режиме XOR для случая однобитовой плоскости (6 = 1)?

10.3.4. Операция BitBLT

Подпрограммы drawO, readO и соруО могут быть объединены в единую функцию с некоторыми дополнительными возможностями, которые значительно увеличивают их мощность и применимость. Эта операция известна под названием BitBLT (произносится «bitblit»), что означает пересылку битовой строки (bit boundary block transfer). Ее называют также растровой операцией (raster op) [Ingalls, 114, Newman, 147]. Если изображение содержит больше одного бита на пиксел, то операцию BitBLT иногда называют pixelBLT. Мы во всех случаях будем придерживаться названия BitBLT.

Иногда BitBLT выполняется программно, однако эта операция стала настолько распространенной, что были разработаны микросхемы VLSI (СБИС - сверхбольшие интегральные схемы), специально

10.4. Рисование прямых своими силами: алгоритм Брезенхема предназначенные для выполнения операций BitBLT с очень высокими скоростями (сотни миллионов пикселов в секунду). Для микросхемы BitBLT задается всего несколько параметров, после чего она включается и для передачи данных взаимодействует непосредственно с системной шиной.

Определение операции BitBLT

Существует несколько версий BitBLT, различающихся некоторыми деталями. В своем простейшем виде BitBLT копирует прямоугольник пикселов источника (source rectangle) в прямоугольник пикселов адресата (destination rectangle), имеющий те же самые высоту и ширину. Как источник, так и адресат могут располагаться в экранной или во внеэкранной памяти. BitBLT-процессор отслеживает эти два прямоугольника следующим простым способом: записываются координаты х и у верхнего левого / угла каждого прямоугольника, а также их высота и ширина (в пикселах). Все необходимые преобразования между парой (х, у) и соответствующим адресом в памяти осуществляются самим процессором.


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