Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Формирование изображения в текстовом режиме. Знакогенератор.

 

Формирование изображения в текстовом режиме. Знакогенератор.

Символы хранятся в виде растров (которые GDI хранит в памяти шрифта). Каждый символ имеет собственный маленький растр. Для различных размеров всевозможных шрифтов существует отдельный набор растров. Курсивные и полужирные шрифты имеют свои собственные растры. Для шрифтов TrueTypeGDI создает растры из очертаний символов, которые он может масштабировать к необходимому размеру в процессе создания растра.

При рисовании текста на экране GDI вначале создает необходимые растры шрифта, а затем в цикле выводит все символы. В каждой итерации цикла копируется растр шрифта из основной памяти в нужную позицию на экране. Каждая отдельная операция рисования символа - это BitBLT маленького растра шрифта из основной памяти в видеопамять. Если аппаратный акселератор имеет функцию BitBLT, то процессор может просто выдавать акселератору последовательность команд и поручать ему всю работу. Для каждого символа требуется одна операция BitBLT.

Главное достоинство акселератора состоит в том, что каждый символ содержит сотни пикселей и процессор должен выполнять цикл для копирования каждого символа на экран. Даже если процессор может обрабатывать несколько пикселей одновременно за один проход цикла при копировании растра, для вывода символа на экран потребуются сотни или даже тысячи команд, в зависимости от числа пикселей. Для крупных символов требуется намного больше пикселей.

Для управления акселератором при копировании растра (независимо от величины символа) требуется одно и то же число команд процессора, поэтому процессор может делать другую работу, в то время когда акселератор выполняет команду. Рисование текста представляет собой последовательность операций BitBLT - по одной операции на каждый символ строки текста. Функция BitBLT используется для ускорения вывода текста. Для копирования растра в позицию на экране процессору требуется не просто дать команду акселератору, а выполнить намного больше работы.

Самый «скромный» знакогенератор имеет формат знакоместа 8x8 точек (см. рис. 1), причем для алфавитно-цифровых символов туда же входят и межсимвольные зазоры, необходимые для читаемости текста. Лучшую читаемость имеют матрицы 9x14 и 9x16 символов (знакогенератор на микросхеме ПЗУ, может использовать несколько выбираемых банков памяти знакогенератора, а на микросхеме ОЗУ, естественно, обеспечивается и режим, в котором его содержимое можно программно загрузить).

QIP Shot - Image: 2017-12-18 16:56:29 

Рис. 1. Превращение 8-ми разрядного кода символа A (41h) в точечный растр

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

В биты 0...2 байта атрибутов записывается код цвета символа, а бит 3 при исходной настройке видеоадаптера, действующей по умолчанию, управляет яркостью символа. Таким образом, каждый символ независимо от других может принимать любой из 16 возможных цветов. Соответствие кодов, записываемых в байте атрибута, конкретным цветам составляет палитру видеосистемы. Палитра устанавливается программно, по умолчанию действует назначение кодов приведенное в табл. 1.

 Таблица 1

Стандартные коды цветов

Значение кода

Цвет

Значение кода

Цвет

0h

Черный

8h

Серый

lh

Синий

9п

Голубой

2h

Зеленый

Ah

Салатный

3h

Бирюзовый

Bh

Светло-бирюзовый

4h

Красный

Ch

Розовый

5h

Фиолетовый

Dh

Светло-фиолетовый

6h

Коричневый

Eh

Желтый

7h

Белый

Fh

Ярко-белый

 Текстовый адаптер также имеет аппаратные средства управления курсором. Знакоместо, на которое указывают регистры координат курсора, оформляется особым образом. Объем видеопамяти (в битах), требуемый для хранения образа экрана, определяется как произведение количества пикселов в строке на количество строк и на количество бит на пиксел.

Если физический объем видеопамяти превышает необходимый для отображения матрицы всего экрана, видеопамять можно разбить на страницы. Страница — это область видеопамяти, в которой умещается образ целого экрана. При многостраничной организации видеопамяти только одна из них может быть активной — отображаемой на экран. Этим страницы принципиально отличаются от слоев, которые отображаются одновременно.

 


Лицензия