Conceptos y definiciones: Gráfico

# Grafico

Un grafico es un recurso similar a un mapa de bits, textura o sprite que contiene la información de una imagen y sus propiedades en memoria.

Los gráficos son recursos que se pueden utilizar para representar objetos en pantalla mediante las funciones de dibujo a los que se le pueden aplicar efectos de transparencias, coloración, rotación, escalado con o sin perdida, espejado en cualquiera de sus ejes y perspectivas tanto isométrica como en caballera. Las funciones para dibujar imágenes en pantalla son: DRAW_Map, DRAW_MapEx y DRAW_AdvMap. Otro uso que tienen los graficos es el de crear un buffer secundario de dibujo al que accedemos mediante Render Targets.

Los gráficos se almacenan en memoria con un tamaño de potencia de 2. Esto quiere decir que si una imagen tiene unas dimensiones de 224x125 en memoria se almacena con una dimensión de 256x128. Al cargar una imagen en memoria como un grafico este almacena los valores de su dimensión original. Dichos valores se usaran por defecto para trabajar con el grafico a la hora de definir tamaños y escalas pero también se pueden tomar los valores reales de las dimensiones en memoria para realizar operaciones de precisión evitando perdida a la hora de representar de la imagen en pantalla.

Según la tarjeta grafica instalada en el equipo las dimensiones máximas para un grafico pueden variar. Esto es debido a que los graficos se almacenan y se tratan como texturas en la memoria de la tarjeta grafica. Actualmente, el máximo de los valores de altura y anchura que definen un grafico, y que garantiza la compatibilidad entre diferentes tarjetas graficas es de 1024x1024. Si se trata de cargar una imagen como un grafico con una dimensión que sobrepase el máximo esta se reescalara en memoria a los valores máximos establecidos para las dimensiones de un grafico. Para averiguar cuales son los valores máximos para las dimensiones de un mapa en memoria utilice la función DEVICE_GetInfo.

Para leer o escribir los píxeles de una imagen deberá cargar la imagen como una superficie. También puede pasar un grafico a superficie mediante funciones como MAP_CopyRectsToSurf.