~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 97B390750AAED080037846D81C9FA3C9__1716447180 ✰
Заголовок документа оригинал.:
✰ Graphics Device Interface - Wikipedia ✰
Заголовок документа перевод.:
✰ Интерфейс графического устройства — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Graphics_Device_Interface ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/97/c9/97b390750aaed080037846d81c9fa3c9.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/97/c9/97b390750aaed080037846d81c9fa3c9__translat.html ✰
Дата и время сохранения документа:
✰ 23.06.2024 09:51:25 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 23 May 2024, at 09:53 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Интерфейс графического устройства — Википедия Jump to content

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

Из Википедии, бесплатной энциклопедии
Интерфейс графического устройства в архитектуре Windows NT
Например, GDK использует GDI .

Интерфейс графического устройства ( GDI ) — это устаревший компонент Microsoft Windows , отвечающий за представление графических объектов и передачу их на устройства вывода, такие как мониторы и принтеры . Он был заменен DirectDraw API, а затем и Direct2D API. [ нужна цитата ] Приложения Windows используют Windows API для взаимодействия с GDI для таких задач, как рисование линий и кривых, рендеринг шрифтов и обработка палитр . Подсистема Windows USER использует GDI для визуализации таких элементов пользовательского интерфейса, как рамки окон и меню. В других системах есть компоненты, аналогичные GDI; например: Mac OS имеет QuickDraw , а Linux и Unix имеют X Window System основной протокол .

Наиболее значительными преимуществами GDI перед более прямыми методами доступа к оборудованию являются, пожалуй, его возможности масштабирования и абстрактное представление целевых устройств. Используя GDI, можно рисовать на нескольких устройствах, таких как экран и принтер, и ожидать правильного воспроизведения в каждом случае. Эта возможность лежит в основе большинства приложений « Что видишь, то и получаешь » для Microsoft Windows.

Простые игры, не требующие быстрого графического рендеринга, могут использовать GDI. Однако GDI относительно сложно использовать для расширенной анимации, в нем отсутствует функция синхронизации с отдельными видеокадрами на видеокарте , а также отсутствует аппаратная растеризация для 3D. Вместо этого современные игры обычно используют DirectX , Vulkan или OpenGL .

Технические подробности [ править ]

В GDI контекст устройства (DC) определяет атрибуты текста и изображений для устройства вывода, например, экрана или принтера. GDI поддерживает фактический контекст. Для генерации выходных данных требуется дескриптор контекста устройства (HDC). После генерации вывода дескриптор можно отпустить.

GDI использует алгоритм рисования линий Брезенхема для рисования линий с псевдонимами. [1]

История версий [ править ]

Ранние версии [ править ]

GDI присутствовал в первоначальной версии Windows. Программы MS-DOS манипулировали графическим оборудованием с помощью программных прерываний (иногда через Video BIOS ) и напрямую манипулировали видеопамятью . Код, написанный таким образом, предполагает, что он является единственным пользователем видеопамяти, что невозможно в многозадачной среде , такой как Windows. Журнал BYTE в декабре 1983 года обсуждал планы Microsoft по созданию системы вывода графики на принтеры и мониторы с помощью одного и того же кода в предстоящем первом выпуске Windows. [2]

В Windows 3.1x и Windows 9x GDI может использовать функции Bit Blit для 2D-ускорения, если видеокарты . установлен подходящий драйвер [3]

Windows XP [ править ]

С появлением Windows XP GDI + дополнил GDI. GDI+ написан на C++. Он добавляет сглаженную 2D-графику, координаты с плавающей запятой, градиентную заливку, более сложное управление путями, внутреннюю поддержку современных форматов графических файлов, таких как JPEG и PNG , а также поддержку композиции аффинных преобразований в конвейере 2D-представлений. GDI+ использует значения RGBA для представления цвета. Использование этих функций очевидно в компонентах Windows XP, таких как Microsoft Paint , средство просмотра изображений и факсов Windows , мастер печати фотографий и заставка слайд-шоу «Мои рисунки». Их присутствие в базовом графическом слое значительно упрощает реализацию систем векторной графики, таких как Adobe Flash или SVG . Кроме того, .NET Framework предоставляет управляемый интерфейс для GDI+ через System.Drawing пространство имен .

Хотя GDI+ входит в состав Windows XP и более поздних версий, динамическую библиотеку GDI+ также можно поставлять с приложением и использовать в более старых версиях Windows. [4]

Благодаря дополнительным возможностям обработки текста и независимости от разрешения в GDI+, рендеринг текста выполняет ЦП. [5] Результат на порядок медленнее, чем у GDI с аппаратным ускорением . [6] Крис Джексон опубликовал несколько тестов, показавших, что написанный им фрагмент кода рендеринга текста может отображать 99 000 глифов в секунду в GDI, но тот же код, использующий GDI+, отображает 16 600 глифов в секунду.

GDI+ похож (по назначению и структуре) на подсистему Apple QuickDraw GX с открытым исходным кодом , а также на библиотеки libart и Cairo .

Windows Vista [ править ]

В Windows Vista все приложения Windows, включая приложения GDI и GDI+, работают в новом механизме композитинга Desktop Window Manager (DWM) с аппаратным ускорением. Таким образом, сам GDI больше не имеет аппаратного ускорения. [7] [8] [9] Из-за характера операций композиции перемещение окон может происходить быстрее и быстрее, поскольку базовый контент не требует повторной обработки приложением. [8]

Windows 7 [ править ]

Windows 7 включает аппаратное ускорение GDI для операций копирования в модели драйвера дисплея Windows версии 1.1 . Это повышает производительность GDI и позволяет DWM использовать локальную видеопамять для композитинга, тем самым уменьшая объем системной памяти и повышая производительность графических операций. Большинство примитивных операций GDI по-прежнему не имеют аппаратного ускорения, в отличие от Direct2D . GDI+ по-прежнему опирается на программный рендеринг в Windows 7. [10]

GDI-принтеры [ править ]

Принтер GDI или Winprinter (аналог Winmodem ) — это принтер, предназначенный для приема вывода с главного компьютера под управлением Windows. Главный компьютер выполняет всю обработку печати: GDI отображает страницу в виде растрового изображения, которое драйвер принтера получает, обрабатывает и отправляет на связанный принтер. [11] [12] Комбинация GDI и драйвера является двунаправленной; они получают информацию от принтера, например, готов ли он к печати или нет бумаги.

Принтеры, не использующие GDI, требуют аппаратного обеспечения, встроенного ПО и памяти для рендеринга страниц, тогда как принтер GDI использует для этого главный компьютер. Однако принтер с собственным языком управления может принимать входные данные от любого устройства с подходящим драйвером, тогда как для принтера GDI требуется ПК под управлением Windows. Принтеры GDI могут быть доступны компьютерам в сети, если они подключены как общие принтеры к компьютеру, на котором установлена ​​ОС Windows. Некоторые «общие» драйверы GDI, такие как pnm2ppaбыли написаны; они стремятся сделать принтеры GDI совместимыми с операционными системами, отличными от Windows, такими как FreeBSD , но они не могут поддерживать все принтеры. [11]

Чтобы упростить создание драйверов для Winprinters, универсальный драйвер принтера Microsoft был создан . Это позволяет производителям принтеров писать «минидрайверы» общего описания принтера (GPD), которые описывают возможности принтера и набор команд в виде открытого текста, вместо того, чтобы заниматься разработкой драйверов режима ядра.

Microsoft отошла от этой модели печати, выпустив спецификацию Open XML Paper .

Ограничения [ править ]

Каждое окно использует объекты GDI. По мере увеличения сложности окна с появлением дополнительных функций, таких как кнопки и изображения, также увеличивается использование объектов GDI. Когда используется слишком много объектов, Windows не может больше рисовать объекты GDI, что приводит к неправильному поведению программного обеспечения, зависанию и зависанию программы. [13] Многие приложения также имеют неправильный код и не могут освободить объекты GDI после использования, что еще больше усугубляет проблему. [14] Общее количество доступных объектов GDI варьируется от одной версии Windows к другой: в Windows 9x было ограничение в 1200 объектов; Windows 2000 имеет ограничение в 16 384 объекта; и Windows XP и более поздние версии имеют настраиваемый предел (через реестр), который по умолчанию составляет 10 000 объектов на процесс (но теоретический максимум составляет 65 536 для всего сеанса). [15] [16] В Windows 8 и более поздних версиях ограничение количества объектов GDI увеличивается до 65 536 на один сеанс входа пользователя.

Более ранние версии Windows, такие как Windows 3.1 и Windows 98, включали программу Resource Meter, позволяющую пользователю отслеживать, какая часть общих ресурсов GDI системы используется. Этот счетчик ресурсов сам потреблял объекты GDI. Более поздние версии, такие как Windows 2000 и Windows XP, могут сообщать об использовании объектов GDI для каждой программы в диспетчере задач, но они не могут сообщить пользователю общую доступную емкость GDI.

Переполнение емкости GDI может повлиять на саму Windows, препятствуя открытию новых окон, отображению меню и появлению окон предупреждений. Ситуацию может быть трудно устранить, и потенциально может потребоваться принудительная перезагрузка системы, поскольку это препятствует функционированию основных системных программ. В Windows 8 и 8.1 принудительный выход из системы происходит в результате переполнения емкости GDI, а не перезагрузки.

Преемник [ править ]

Direct2D является преемником GDI и GDI+. Его брат DirectWrite заменяет Uniscribe . Они поставлялись с Windows 7 и Windows Server 2008 R2 и были доступны для Windows Vista и Windows Server 2008 (с установленным обновлением платформы). Позже Microsoft разработала Win2D , бесплатную GDI-подобную библиотеку классов с открытым исходным кодом . Целевая аудитория Win2D — разработчики, использующие C++, C# и Visual Basic.NET для разработки приложений универсальной платформы Windows . [17]

См. также [ править ]

Примечания и ссылки [ править ]

  1. ^ Стивен, Уайт; Дэвид, Коултер; Майк, Джейкобс (31 мая 2018 г.). «Сравнение аппаратного ускорения Direct2D и GDI» . Разработчик Windows . Майкрософт .
  2. ^ Батлер, Джон (декабрь 1983 г.). «Устройственно-независимый графический вывод для Microsoft Windows» . БАЙТ . п. 49 . Проверено 20 октября 2013 г.
  3. ^ https://www.dosdays.co.uk/media/cirrus_logic/CL-GD543X_Applications_and_Eratta_Book_Apr94.pdf . {{cite web}}: Отсутствует или пусто |title= ( помощь )
  4. ^ Распространяемый пакет SDK платформы: GDI+.
  5. ^ «API 2D-рисования в Windows —» . Блог разработчиков DirectX . Блоги MSDN. 12 мая 2009 года . Проверено 19 июля 2012 г.
  6. ^ Джексон, Крис. «Производительность рендеринга текста GDI и GDI+» . Семантическое созвучие Криса Джексона . Майкрософт.
  7. ^ MSDN: Сравнение аппаратного ускорения Direct2D и GDI
  8. ^ Перейти обратно: а б GDI не имеет аппаратного ускорения в Windows Vista
  9. ^ Многоуровневые окна... SW иногда работает быстрее, чем HW . Avalite в блогах MSDN.
  10. ^ Томас Олсен (29 октября 2008 г.). «Представляем API Microsoft Direct2D» .
  11. ^ Перейти обратно: а б «Общий принтер GDI» . Открыть печать . Фонд Linux . Проверено 21 июля 2021 г.
  12. ^ «Принтеры только для Windows» . Проект документации Linux . Проверено 29 октября 2019 г.
  13. ^ Статья 838283 базы знаний Microsoft — Меню настольных приложений отображаются неправильно, если процесс превышает квоту объекта GDI в Windows XP или Windows 2000 http://support.microsoft.com/kb/838283
  14. ^ Блог Microsoft Developer Network — утечка GDI в Outlook 2007 вызывает проблемы, когда использование GDI достигает 10 000 объектов http://blogs.msdn.com/rgregg/archive/2007/09/03/outlook-2007-gdi-leak-hotfix.aspx
  15. ^ Сеть разработчиков Microsoft — ограничения объектов GDI http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx
  16. ^ Статья 894500 базы знаний Microsoft. Программы .NET, разработанные в новых операционных системах NT, могут работать неправильно в более старых версиях Win 95/Win 98/Win ME из-за более низких ограничений использования GDI http://support.microsoft.com/kb/894500.
  17. ^ «Вин2Д» . репозиторий Microsoft/Win2D . Майкрософт . Проверено 21 июля 2021 г. — через GitHub.com .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 97B390750AAED080037846D81C9FA3C9__1716447180
URL1:https://en.wikipedia.org/wiki/Graphics_Device_Interface
Заголовок, (Title) документа по адресу, URL1:
Graphics Device Interface - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)