Graphics Device Interface

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Graphics Device Interface (cuyo acrónimo es GDI), es uno de los tres componentes o subsistemas de la interfaz de usuario de Microsoft Windows. Trabaja junto con el núcleo y la API de Windows.

Esta Interfaz de programación de aplicaciones se encarga del control gráfico de los dispositivos de salida como los monitores o las impresoras.

Las tareas más comunes de GDI son el dibujo 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.

GDI no se encarga del dibujo de los menús, ventanas, etc. este es un trabajo es especial para el user32.dll (una biblioteca de la API de Windows exclusiva para estas funciones).

Tal vez la más 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 los videojuegos simples se pueden crear usando GDI. Sin embargo, no es lo suficientemente poderosa para la creación de videojuegos 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. Los videojuegos modernos utilizan DirectX u OpenGL que resuelven estos problemas.

Los objetos más importantes son:

  • HDC: (handle to device context; "contexto de dispositivo"). Que viene a ser el lienzo donde se pinta.
  • HBRUSH: (handle to brush; "brocha"). Permite rellenar zonas con colores.
  • HPEN: (handle to pen; "pluma"). Que permite el dibujado de líneas o bordes de otros elementos gráficos.

La forma de trabajar es heredada del lenguaje de programación C. Hay que crear y destruir explícitamente los elementos de dibujo, por lo que es muy propenso a fugas de memoria.

Microsoft está en vías de reemplazar dicho sistema de dibujo por otro completamente distinto y basado en C++ denominado GDI+.