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