GDI
Материал из Википедии — свободной энциклопедии
Это незавершённая статья о Microsoft Windows. Вы можете помочь проекту, исправив и дополнив её. |
GDI (Graphics Device Interface или Graphical Device Interface) — один из трех основных компонентов или «подсистем», вместе с ядром и Windows API составляющих пользовательский интерфейс (оконный менеджер GDI) Microsoft Windows.
GDI — это интерфейс Microsoft Windows для представления графических объектов и передачи их на устройства отображения, такие как мониторы и принтеры.
GDI отвечает за отрисовку линий и кривых, отображение шрифтов и обработку палитры. Он не отвечает за отрисовку окон, меню и т. п., эта задача закреплена за пользовательской подсистемой, располагающейся в user32.dll и основывающейся на GDI. GDI схож с классическим QuickDraw у Apple.
Одно из наибольших преимуществ использования GDI вместо методов прямого доступа к оборудованию — это возможность расширения функций над различными устройствами. Используя GDI, можно легко рисовать на нескольких разных устройствах, таких как экран или принтер, и достичь практически одинакового отображения на них. Эта возможность лежит в центре всех WYSIWYG приложений для Microsoft Windows.
Простые игры, которые не требуют быстрой графики, используют GDI. Однако GDI не может обеспечить качественную анимацию (нет возможности синхронизации с framebuffer (буфером кадра)). Также GDI не хватает растеризации для отрисовки 3D графики. Современные игры используют DirectX или OpenGL, что дает программистам доступ к большему количеству аппаратных возможностей.
Содержание |
[править] Технические детали
Контекст устройства (DC, Device Context) используется для определения атрибутов текста и изображения, которое выводится на экран или принтер. DC, как и большинство объектов GDI, является непрозрачным, то есть нельзя осуществить прямой доступ к данным.
[править] GDI+
После выхода Windows XP, использование GDI стало нежелательным из-за выхода в свет его потомка, подсистемы GDI+, основанной на C++. GDI+ является улучшенной средой для 2D графики, в которую добавлены такие возможности, как сглаживание линий (antialiasing), использование координат с плавающей точкой, градиентная заливка, внутренняя поддержка современных графических форматов (таких как JPEG и PNG), преобразования 2D матриц и т. п. GDI+ использует ARGB цвета. Эти возможности используются в пользовательском интерфейсе Windows XP, а их присутствие в базовом графическом слое облегчает использование систем векторной графики, таких как Flash или SVG. Динамические библиотеки GDI+ могут распространяться вместе с приложениями для использования в предыдущих версиях Windows.
В .NET можно использовать функции GDI+ через пространство имен System.Drawing.
GDI+ схож с подсистемой Quartz 2D у Apple и open-source библиотеками libart и Cairo.
[править] Уязвимости в GDI+
14 сентября 2004 года была обнаружена уязвимость в GDI+ и других графических API, связанная с ошибкой в коде стандартной библиотеки JPEG. Эта ошибка позволяла выполнить произвольный код на любой системе. Патч был выпущен 12 октября 2004 года.
[править] Ссылки
- Microsoft’s GDI+ page
- Bob Powell’s GDI+ FAQ list
- MSDN article on GDI overview
- Microsoft Security Bulletin MS04-028
- F-Secure: Critical vulnerability in MS Windows may escalate the virus threat
|
|
---|---|
Графика | Проводник Windows · DirectX · Direct3D · GDI · Windows Presentation Foundation · Windows Color System · Windows Image Acquisition · Windows Imaging Component |
Звук | DirectSound · DirectMusic · XACT · Speech API · MME |
Мультимедиа | DirectShow · Windows Media · Media Foundation |
Веб | MSHTML · MSXML · Платформа RSS для Windows · JScript · ActiveX · XMLHttpRequest · Гаджеты |
Доступ к данным | Компоненты Microsoft Data Access · Extensible Storage Engine · ADO.NET · Sync Framework · Jet механизм |
Сети | Winsock (LSP) · Filtering Platform · NDIS · Windows Rally · Сервис фоновой интеллектуальой передачи данных · P2P API |
Коммуникации | TAPI |
Администрирование | Консоль Win32 · Windows Script Host · Инструментарий управления Windows · PowerShell · Планировщик задач · Offline Files · Теневое копирование · Windows Installer · Диспетчер ошибок Windows · Журнал событий Windows |
Модель компонентов | COM · COM+ · DCOM · .NET Framework |
Библиотеки | Microsoft Foundation Class (MFC) · Active Template Library (ATL) · Windows Template Library (WTL) |
Разработка драйверов | Модель драйверов Windows · Windows Driver Foundation (KMDF, UMDF) |
Безопасность | Crypto API (CAPICOM) · Windows CardSpace · Data protection API · Security Support Provider Interface |
.NET | .NET Framework · ASP.NET · ADO.NET · .NET Remoting · Windows Presentation Foundation · Windows Workflow Foundation · Windows Communication Foundation · Windows CardSpace · XNA · Silverlight · Библиотека параллельного программирования |
Межпроцессное взаимодействие | MSRPC · Именованные каналы |
Текст и поддержка языков | Framework Текстовых сервисов · Объектная модель текстов · Редактор метода ввода · Языковые пакеты · Многоязычный интерфейс |
Игры | XNA · DirectX |
|