Graphics Device Interface
Graphics Device Interface, GDI — один з трьох основних компонентів або «підсистем», що разом з ядром і Windows API складають користувацький інтерфейс (віконний менеджер GDI) Microsoft Windows.
Graphics Device Interface | |
---|---|
Компонент Microsoft Windows |
GDI — це інтерфейс Microsoft Windows для представлення графічних об'єктів і передачі їх на пристрої відображення, таких як монітори і принтери.
GDI відповідає за растеризацію ліній і кривих, відображення шрифтів і обробку палітри. Він не відповідає за растеризацію вікон, меню тощо. Це завдання закріплене за користувацькою підсистемою, що розташоване в user32.dll і ґрунтуються на GDI. GDI схожий з класичним QuickDraw у Apple.
Одна з найбільших переваг використання GDI замість методів прямого доступу до обладнання — це можливість розширення функцій над різними пристроями. Використовуючи GDI, можна легко малювати на кількох різних пристроях, таких як екран або принтер, і досягти практично однакового відображення на них. Ця можливість лежить у центрі всіх WYSIWYG застосунків для Microsoft Windows.
Прості ігри, які не потребують швидкої графіки, використовують GDI (отже, GDI - повільний задля швидкої графіки). Однак GDI не може забезпечити якісну анімацію (немає можливості синхронізації з кадровим буфером). Також GDI не вистачає растеризації для відмальовування 3D-графіки. Сучасні ігри використовують DirectX чи OpenGL, що дає програмістам доступ до більшої кількості апаратних можливостей.
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.
Посилання
- 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