Graphics Device Interface и Device Context

Устройство графики в Windows

Graphics Device Interface и Device Context

Не стану углубляться в теорию строения Windows и ее графической подсистемы (литературы на эту тему написано вполне достаточно), постараюсь коротко изложить некий минимум знаний, который понадобится при программировании простейшей графики в Windows. При этом я постараюсь также дать понимание что и как устроено (пускай на простом уровне).

Во-первых, в Microsoft Windows существует несколько средств для вывода графической информации, включая DirectDraw, OpenGL, GDI и т.д. Мы рассмотрим GDI (Graphics Device Interface) - подсистему Windows, ответственную за вывод графики и текста на дисплей и принтер. Именно она занимается выводом большинства "окошек", которые и составляют то, что видит пользователь Windows на экране. Она является базовым и, пожалуй, простейшим способом вывода графики в Windows.

С графикой Windows с помощью GDI неразрывно связано понятия контекста устройства (device context). Контекст устройства (DC) - это структура данных, содержащая информацию о параметрах и атрибутах вывода графики на устройство (например, дисплей или принтер). Такая информация, в частности, включает в себя: палитру устройства, определяющую набор доступных цветов; параметры пера для черчения линий; параметры кисти для закраски и заливки; параметры шрифта, использующегося для вывода текста.

В GDI существуют пять типов контекста устройства - связанный с дисплеем (Display DC), принтером (Printer DC), контекст виртуального устройства в памяти (Memory DC), контекст метафайла (Metafile DC) и специальный вид контекста - информационный (Information DC).

Первые четыре типа контекста устройства - display, printer, memory и metafile предоставляют унифицированный интерфейс для вывода графической информации на разнотипные устройства, освобождая приложение (и его разработчика) от необходимости заботится о том, куда именно производится вывод графики. Информационный контекст для вывода графики не используется, он служит исключительно для получения информации о параметрах и поддерживаемых режимах устройства, с которым связан.

В чем отличие первых четырех типов контекста? Это можно понять из их названий - Display DC служит для вывода на экран, Printer DC для печати на принтер или графопостроитель, Memory DC служит для создания растровых изображений в памяти с возможностью быстрого их копирования в другие типы контекстов (и обратно), Metafile DC нужен для вывода графики в метафайл. Метафайл - это хранилище последовательности команд GDI, каждая из которых описывает одну графическую функцию. В отличие от растровых файлов, хранящих графическую информацию непосредственно в виде массива пикселов, метафайл ее хранит в виде последовательности команд, которая создает результирующий рисунок.

1.2 Как рисовать в Device Context?

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

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

Перо (pen)

- задает режим вывода линий (цвет, толщина, стиль);

  • Розділ I. ЗАГАЛЬНІ ПОЛОЖЕННЯ
  • ПИГМЕНТЫ
  • ID3 YVTCON(13)TIT2wяюListen To Your Heart (Roxette Cover) | vk.com/kidsmusichitTPE1=яюDaniel Weinrib (УаЩРЬ ХЩаиЩС)TYER яю2015WXXXvk.com/kidsmusichitAPIC+Бimage/jpg 53 страница
  • ТАМОЖЕННОЕ ОФОРМЛЕНИЕ И ЕГО ПРИНЦИПЫ
  • Электрондық хаттың құрылымы. Электрондық қолтаңба.
  • Глава 34 СТРОИТЕЛЬНО-МОНТАЖНЫЕ РАБОТЫ
  • Для любознательных. Старший дошкольный возраст - период расцвета игры-фан­тазирования
  • Честь, достоинство, деловая репутация и их защита.
  • Так тихо, что слышно как в саду перелетает с ветки на ветку одинокая ночная птица, или под лёгким дуновением ветерка шуршат листья на дереве под окном. Мерно тикая, бежит секундная стрелка на 35 страница
  • ПРОТЕЗУВАННЯ ДЕФЕКТІВ КОРОНОК ЗУБІВ ВКЛАДКАМИ
  • о дипломатических сношениях
  • Вывод по главе I
  • Пранаяма для Нади-Шуддхи
  • Чем дальше духом рвешься ввысь,
  • Устройство и технология монтажа воздушных линий электропередачи напряжением до 1 кВ
  • Заключительное слово. Я думаю, мы осветили проблемы, о которых вам необходимо знать перед приближающимся
  • Text 2. Shopping in the UK
  • Ж.1 Рекомендации по проверке состояния оборудования на соответствие требованиям охраны труда и промышленной безопасности. Общая часть
  • ОБЪЯВЛЯЕТ О ПРОВЕДЕНИИ II КОНКУРСА
  • Паломничество Ланселота 5 страница