16 El GDI
Ahora ya dominamos los controles básicos, así que pasaremos a un capítulo muy amplio, pero mucho más interesante.
El GDI (Graphics Device Interface), es el interfaz de dispositivo gráfico, que contiene todas las funciones y estructuras necesarias que nos permiten comunicar nuestras aplicaciones con cualquier dispositivo gráfico de salida conectado a nuestro ordenador: pantalla, impresora, plotter, etc.
Veremos que podremos trazar líneas, curvas, figuras cerradas, polígonos y mapas de bits. Además, podremos controlar características como colores, aspectos de líneas y tramas de superficies rellenas, mediante objetos como plumas, pinceles y fuentes de caracteres.
Las aplicaciones Windows dirigen las salidas gráficas a lo que se conoce como un Contexto de Dispositivo, abreviado como DC. Cada DC se crea para un dispositivo concreto.
Un DC es una de las estructuras del GDI, que contiene información sobre el dispositivo, como las opciones seleccionadas, o modos de funcionamiento.
La aplicación crea un DC mediante una función del GDI, y éste devuelve un manipulador de DC (hDC), que se usará en las siguientes llamadas para identificar el dispositivo que recibirá la salida. Mediante el DC, la aplicación también puede obtener ciertas capacidades del dispositivo, como las dimensiones del área de impresión, la resolución, etc.
La salida puede enviarse directamente al DC del dispositivo físico, o bien a un dispositivo lógico, que se crea en memoria o en un metafile. La ventaja de usar un dispositivo lógico es que se almacena la salida completa y posteriormente puede enviarse al cualquier dispositivo físico.
También existen funciones para seleccionar diferentes modos y opciones del dispositivo. Eso incluye colores del texto y fondo, plumas y pinceles de diferentes colores y texturas para trazar líneas o rellenar superficies, y lo que se conoce como operaciones binarias de patrones (Binary Raster Operations), que indican cómo se combinan las nuevas salidas gráficas con las existentes previamente. También existen varios sistemas de mapeo de coordenadas, para traducir las coordenadas usadas en la aplicación con las el sistema de coordenadas del dispositivo.
Objetos del GDI
Windows usa objetos y manipuladores para acceder a los recursos del sistema, en lo que se refiere al GDI existen los siguientes objetos:
Mapas de bits, pinceles, fuentes, plumas, plumas extendidas, regiones, contextos de dispositivos, contextos de dispositivo de memoria, metafiles, contextos de dispositivo de metafiles, metafiles mejorados y contextos de dispositivo de metafiles mejorados.
Veremos cada uno de estos objetos, algunos en los próximos capítulos, los que denominaremos básicos: mapas de bits, pinceles, fuentes, plumas y dispositivos de contexto. El resto en capítulos más avanzados.
El API proporciona funciones para crear objetos y manipuladores de objetos, cerrar un manipulador de objeto y destruir un objeto.
Los objetos y los manipuladores consumen memoria, es muy importante cerrar los manipuladores y destruir los objetos cuando no se necesiten más, no hacerlo puede ralentizar el sistema e incluso volverlo inestable.