Graphics Device Interface
De Wikipedia, la enciclopedia libre
Graphics Device Interface (cuyo acrónimo es GDI), es uno de los tres componentes o subsistemas del UI (Interfaz de Usuario) de Microsoft Windows. Trabaja junto con el núcleo y el API de Windows.
Esta API se encarga del control gráfico de los dispositivos de salida como los monitores o las impresoras.
Las tareas más comunes del GDI son el dibujado de líneas, curvas, polígonos; el relleno de cuadros, círculos, polígonos, etc.; igualmente se encarga del renderizado de fuentes y textos, y el manejo de paletas.
Esta API no se encarga del dibujo de los menús, ventanas, etc. este es un trabajo es especial para el user32.dll (Una librería del API de Windows exclusiva para estas funciones).
Tal ves la mas significativa capacidad del GDI sobre métodos más directos de acceder al hardware es la escalabilidad de posibilidades, y la abstracción que se pude conseguir con los dispositivos de salida. Usando GDI es muy fácil dibujar en varios dispositivos, como es en la pantalla o en una impresora, esta capacidad es el objetivo principal del WYSIWYG de Microsoft Windows.
La mayoría de juegos simples se pueden crear aprovechando el GDI, pero a su vez el motor no es lo suficientemente poderoso para la creación de juegos complejos debido a la falta de sincronización con el framebuffer (encargado de las animaciones) y su obvia incapacidad para la renderización de modelos y objetos 3D. Juegos modernos utilizan DirectX o OpenGL que resuelven estos problemas.
Los objetos más importantes son:
- hDC: O (Handle to) Device Context (entorno de dibujo). Que viene a ser el lienzo donde se pinta.
- hBrush: O (Handle to) Brush (brocha). Permite rellenar zonas con colores.
- hPen: O (Handle to) Pen (pincel). Que permite el dibujado de líneas o bordes de otros elementos gráficos.
La forma de trabajar es heredada de C. Hay que crear y destruir explícitamente los elementos de dibujo, por lo que es muy propenso a errores de tipo memory leak.
Microsoft está en vias de reemplazar dicho sistema de dibujado por otro completamente distinto denominado GDI+.

