Graphics Device Interface

Graphics Device Interface
Компонент Microsoft Windows

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 не може забезпечити якісну анімацію (немає можливості синхронізації з кадровим буфером). Також 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.

Посилання[ред. | ред. код]