Windows’95 и Windows NT, Сходства и различия, страница 7

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

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

Вывод графики в контекст устройства обычно осуществляется через логические координаты. Логические координаты описывают объект, используя независимые от устройства реальные измерения; например, прямоугольник можно описать как два дюйма шириной и один дюйм высотой. GDI предлагает необходимые функциональные возможности для преобразования логических координат в физические.

Существуют значительные отличия в способе преобразования координат в Windows 95 и Windows NT. Windows 95, как и ее 16-разрядная предшественница, ограничена 16-разрядными координатами. Это ограничение связано с наследованием большого объема кода от Windows 3.1. Windows NT, напротив, допускает 32-разрядные координаты, что делает эту операционную систему более подходящей для развитых графических приложений, например, программ автоматизированных программированного проектирования (CAD).

И Windows NT, и Windows 95 поддерживает простое преобразование из множества логических в множество физических координат. Это преобразование определяется значениями, указывающими начало координат, и знаковыми пределами логического и физического пространства. Начало координат обычно указывает горизонтальное и вертикальное смещение, а пределы определяют ориентацию и масштаб объектов после преобразования.

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

Из множества функций GDI чаще всего используются функции рисования различных объектов; например,Rectangle, Ellipse, Polygon илиTextOut. (Это всего несколько характерных функций, хотя их количество очень велико.)

Другой часто используемой группой функций являются функцииbitblit, используемые для быстрого и эффективного копирования растровых изображений. (Может быть, не так уж эффективно; в игровых приложениях, действительно требующих молниеносной скорости — быстрее, хотя и менее безопасно.)

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

Еще одно множество функций управляет преобразованием координат. Функции, общие для всех платформ Win32, можно использовать для установки или получения начала отсчета и экстента окна (пространства логических координат) и области просмотра (пространства координат целевого устройства). Дополнительные функции NT используются для работы с усовершенствованными матрицами преобразования мировых координат.

Функции GDI также можно использовать для работы с палитрой. Такие функции наиболее эффективны для приложений, стремящихся достичь точности передачи цветов на устройстве, одновременно поддерживающем ограниченное количество цветов, например, 256. Манипулируя цветовой палитрой, такие приложения (например, программы просмотра графических файлов GIF или PCX) могут выбирать множество цветов, наиболее подходящих к цветам изображаемого рисунка, сокращая расходы на передачу оттенков и предлагая более качественный образ. Манипуляции с палитрой можно использовать и для анимации палитры — технологии, использующей изменение палитры для создания впечатления движений на экране.