# Graphics Device Interface

Graphics Device Interface (interfície de dispositiu gràfic), abreujat com GDI, és un dels tres components bàsics o subsistemes del sistema operatiu Microsoft Windows.
GDI és un estàndard de Microsoft Windows per a la representació gràfica d'objectes, així com per a la seva transmissió als perifèrics de sortida, en general una pantalla o impressora.

## GDI

La funció del GDI és mostrar les línies, corbes, l'obtenció de fonts de representació i la gestió de paletes. Però, no és responsable per la visualització de finestres, menús i altres; aquest treball està reservat per al subsistema de l'usuari. GDI és la contrapartida del QuickDraw d'Apple.
Les capacitats més importants del GDI entre la majoria dels seus mètodes d'accés directe al maquinari probablement les seves capacitats vectorials, així com la seva capacitat d'abstracció del dispositiu de sortida. Utilitzar GDI permet recórrer a diversos dispositius (com pantalles o impressores) amb molta facilitat, i esperar-ne una molt bona reproducció en tots els casos. Aquesta capacitat és fonamental per a totes les aplicacions WYSIWYG de Microsoft Windows.
Jocs simples que no requereixen processament de gràfics com Freecell o Buscamines utilitzen GDI. No obstant això, GDI no sap produir bé animacions (cap concepte de sincronització amb el framebuffer) i no admet cap funcionalitat 3D, contràriament als API DirectX i OpenGL, les quals estan dissenyades per a exposar les característiques de maquinari 3D als programadors.
Des de Windows 95 i fins a Windows XP, GDI és en part accelerat per maquinari; actua com a intermediari entre l'aplicació i el controlador de gràfics. Sota Windows Vista, el suport de maquinari es va reduir i GDI és llavors completament produït per programari. Sota Windows 7, les aplicacions que s'executen sobre el nou motor de composició són de nou accelerades per maquinari.

## Impressores GDI

Impressores GDI (també conegudes com a Winprinters, similar als Winmodems) i, en particular, les impressores làser GDI, reemplacen l'electrònica tradicional de la impressora mateixa pel programari a l'ordinador hoste.
Treballen mitjançant la conversió de la imatge original en l'equip hoste en un mapa de bits enviat a la impressora. Aquest mètode té una sola avantatge:
* preu de compra: s'evita incloure una UCP gràfica i memòria RAM a la impressora. A relativitzar pel fet que la majoria de les impressores GDI té cartutxos de tintes sobrefacturats en comparació amb el preu real (format propietari).
Els desavantatges són:
* augment de la càrrega de treball al PC hoste en el moment de la impressió. En màquines més noves, això no planteja un problema, però en les més antigues (200 a 500 MHz), la impressió pot ser molt lenta.
* lentituds, ja que, fins i tot per «alguns caràcters», cal de vegades enviar una pàgina completa, la impressora no efectuant cap interpretació.
* les impressores GDI no inclouen emulacions en el seu microprogramari (ni la possibilitat d'afegir-los ulteriorment). Per tant, quan amb impressores PCL o PostScript, l'usuari pot configurar el seu controlador de dispositiu a voluntat, es pot trobar restringit per les limitacions d'una impressora GDI.
* les impressores GDI només funcionen en els sistemes Windows.
* no utilitzen cap norma, cada fabricant d'impressora havent d'escriure el seu propi controlador amb les seves pròpies regles. Per tant, una fiabilitat molt menor que per a les impressores PostScript i PCL.
La majoria de les impressores d'injecció de tinta recents funcionen basades en GDI (principalment per motius de rendiment, mentre que els problemes de cost estan més vinculats a les impressores làser), però la tendència és a augmentar la flexibilitat: molts funcionen d'ara endavant sobre Mac i la comunitat Linux crea cada vegada més controladors compatibles.

## GDI+

GDI+ és una nova API introduïda amb Windows XP i Windows Server 2003. Es tracta d'una API oferint funcionalitats de nivell més alt que GDI i una millor qualitat de representació. GDI+ és en part basat en GDI, del qual utilitza certes funcions.
A tall d'exemple, i no exhaustivament, GDI+ suporta: una pantalla anti-àlies, traçat de formes vectorials simples, suport de gradients, suport dels formats PNG i JPEG, així com la gestió de transformacions afins 2D.
A pesar de la seva potència, GDI+ és enterament en programari, no aprofitant de qualsevol acceleració de maquinari, a diferència de GDI, que és en part accelerat per maquinari.

## Referències

* ↑ «GDI: Graphics Device Interface». Arxivat de l'original el 2008-05-13. [Consulta: 20 novembre 2010].
* ↑ «Windows GDI» (en anglès). Microsoft. [Consulta: 20 novembre 2010].
* ↑ «HP DeskJet 720C & 722C Specifications» (en anglès). The Printer Works. Arxivat de l'original el 2018-03-30. [Consulta: 20 novembre 2010].
* ↑ «GDI printer» (en anglès). PC Magazine. Arxivat de l'original el 2010-02-09. [Consulta: 20 novembre 2010].
* ↑ Rildo Pragana. «GDI printers under Linux» (en anglès), 22-11-2009. Arxivat de l'original el 2019-12-25. [Consulta: 20 novembre 2010].
* ↑ «GDI+» (en anglès). Microsoft. [Consulta: 20 novembre 2010].

## Enllaços externs

* Alternatives to PostScript (anglès)
* Vulnerabilities in Microsoft GDI Could Allow Remote Code Execution (anglès)
* Gdi Plus (anglès)