Главная » Ассемблер, Железо » Организация видеопамяти в режимах типа DirectDraw

0

В режимах группы DirectDraw (HiColor и TrueColor) информация поступает на цифро-аналоговые преобразователи непосредственно из видеопамяти. Соответственно, красная, зеленая и синяя составляющие цвета точки представлены отдельными полями в выделенной для хранения точки области видеопамяти (от 2 до 4 байт на точку).

Следует отметить, что на рис. 4.7 расположение информационных разрядов показано в порядке, принятом в литературе по програм

Б режимах HiColor точка кодируется 16-разрядным словом, причем существует два варианта представления цвета, показанные на рис. 4.6: HiColorl5 (формат 1:5:5:5) и HiColorl6 (формат 5:6:5). Знаком X на рисунке обозначена зарезервированная (неотображаемая) область данных. Из видеопамяти на экран информация отображается слева направо и сверху вниз.

Рис. 4.6. Форматы данных группы HiColor

В режимах TrueColor для хранения каждого компонента цвета точки выделено по одному байту видеопамяти. Существует два формата представления данных, показанные на рис. 4.7: трехбайтный TrueCo- 1ог24 и четырехбайтный ТгиеСо1ог32. Дополнительный байт (на рисунке он обозначен символом X) добавлен в режим ТгиеСо1ог32 для выравнивания — на экране он не отображается. Дело в том, что процессор может передавать данные видеоконтроллеру только байтами, 16-разрядными и 32-разрядными словами. Чтобы не задеть соседние точки, в 24-битном режиме информацию приходится пересылать по байтам (каждый компонент цвета — отдельно), что в три раза снижает скорость передачи данных. Поскольку такая потеря темпа недопустима во многих приложениях (например, в играх), разработчики решили пожертвовать памятью (в режиме TrueColor32 четверть объема памяти расходуется впустую). Это стандартный прием обмена памяти на производительность, который часто используют инженеры.

Рис. 4.7. Форматы данных группы TrueColor

мированию: старший разряд слева, младший справа. Однако при отображении памяти на экран, как уже было указано, традиционно принят порядок слева направо и сверху вниз. Например, в режиме TrueColor32 1024×768 память отображается на экран в порядке, показанном на рис. 4.8.

Рис. 4.8. Отображение видеопамяти на экран в режиме TrueColor32 с разрешением 1024×768 точек

В общем, можно сказать, что развитие видеоконтроллеров направлено в сторону максимального упрощения (для программистов) работы с видеопамятью, даже за счет значительного ее перерасхода (рис. 4.9).

Рис. 4.9. Прохождение информации о цвете пиксела от видеопамяти до экрана монитора в различных графических режимах

Режимы DirectDraw реализуют прямое кодирование цвета без всяких промежуточных преобразований, а последний вариант (True- Color) обеспечивает простой доступ к каждому из трех основных

цветовых компонентов. Такая организация видеопамяти минимизирует вычисления, ускоряя расчет освещенности объектов при использовании трехмерной графики, но может заметно снижать скорость вывода двухмерного изображения (текста, графика, схемы, чертежа) из-за резкого увеличения объема передаваемой информации.

Источник: Кулаков В. К90 Программирование на аппаратном уровне: специальный справочник (+дискета). 2-е издание. — СПб.: Питер, 2003. — 847 е.: ил.

По теме:

  • Комментарии