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

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

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


Интерфейс Windows графических устройств (GDI)

Интерфейс графических устройств (GDI)

GDI (Graphics Device In­terface) - интерфейс графических устройств является подсистемой Windows, используемой программами для рисования на экране. GDI позволяет рисо­вать на экране, принтере, графопостроителе или на других устройствах отображения с помощью драйверов. Программный драйвер является существенным элементом видеосистемы, с помощью которого осуществляется связь программного обеспечения с аппаратурой видеоадаптера. Плохой драйвер может свести на нет все преимущества быстродействующего адаптера. Главное в работе GDI - сделать программы в меру независимыми от ре­альной аппаратуры.

Раньше всякий раз с появлением нового поколения аппаратных средств высоко­производительное программное обеспечение либо получало новые драйверы, либо устаревало. С помощью GDI набор драйверов для аппаратуры обновляет прикладные программы. Интерфейс GDI выполняет и другую важную функцию. Он определяет набор операций, которые программа может вы­полнять на дисплее. Поскольку набор операций ограничен, то можно создать аппаратуру (Windows-акселераторы), выполняющую эти операции быст­рее, что позволит ускорить работу программ в среде Windows.

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

Команды рисования, представленные простейшими рисующими програм­мами, такими как входящая в Windows программа Paintbrush, эти команды в основ­ном отражают функции GDI. Более сложные рисующие программы, например CorelDRAW, выпол­няют сложные операции типа закрашивания (заливки) фонтаном и рисования сложных кривых.

Наиболее общей операцией Windows является перемещение прямоугольников из одной области экрана в другую; эта операция называется пересылкой блока (строки) битов (Bit Block Transfer), или BitBLT (Название операции произносится как BitBlit или просто blit). Windows выполняет операцию blit во время процесса прокрутки в окне. При прокрутке в направлении конца файла изображение на экране движется вверх. Хорошо написанные программы перемещают ранее созданное изображение вверх, занося новый рисунок в отображаемый участок окна с помощью операции blit. Поскольку пе­ремещаемые прямоугольники обычно содержат много пикселей, происходит перемещение большого количества данных. Ускорение операции blit приводит к более быстрой прокрутке.

Аппаратно реализованная операция blit работает быстрее, чем программа, так как выполняется только одна операция. Нет необходимости выбирать команды, декодировать и выполнять их. С по­мощью аппаратных средств многоугольник можно закрасить быстрее, поскольку при этом возможен более быстрый доступ к видеопамяти, к тому же для этого не требуется выполнения программы.

Область применения операции blit в Windows даже шире, чем описано, потому что перемеще­ние может происходить как из основной, так и из видеопамяти. Эта операция применяется, напри­мер, при рисовании текста. Поскольку шрифты являются наборами маленьких растров, при рисовании текста, состоящего из последовательности маленьких растров (по одному на символ), каж­дый растр перемещается из основной памяти в нужное место видеопамяти. Быстрые операции blit способствуют быстрому выводу текста.

Аппаратное выполнение функций GDI

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

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

Программный интерфейс в GDI. Чтобы рисовать на экране, программы в среде Windows обращаются к GDI. Необходимые программам операции могут либо непосредственно вы­полняться аппаратными средствами, либо требуют дополнительных средств.

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

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

Аппаратно-программная реализация операций GDI. В отдельных случаях GDI может ис­пользовать аппаратную поддержку, хотя запрашиваемую программой операцию модуль GDI может выполнить программно. Например, если в аппаратных средствах не предусмот­рена операция закрашивания многоугольника, GDI разбивает эту операцию на несколько этапов для последовательного рисования горизонтальных линий. Акселератор может рисо­вать линии, ускоряя тем самым всю операцию.

Метафайлы в Windows

Операции, поддерживаемые GDI, непосредственно отражены в формате метафайлов операционной системы Windows (Windows Metafile Format), который хранится в файлах с расширением WMF и в объектах типа “рисунок”(picture), находящихся в буфере обмена.

Метафайлы содержат последовательность команд для вывода изображения, а не само  изображение и поэтому  они значительно меньше изображений в пикселах по объему (примерно 1: 10). Метафайлы допускают увеличение или уменьшение масштаба изображения без потери четкости и качества, а растровое изображение нет.


Лицензия