Todas las funciones de dibujo de Allegro usan par�metros en enteros para
representar colores. En las resoluciones truecolor estos n�meros codifican
el color directamente como una colecci�n de bits rojos, verdes y azules,
pero en el modo normal de 256 colores, los valores son tratados como �ndices
de la paleta actual, que es una tabla que contiene las intensidades de rojo,
verde y azul de cada uno de los 256 colores posibles.
La paleta se almacena con estructuras RGB, que contienen intensidades de
rojo, verde y azul en el formato hardware de la VGA, que van de 0 a 63, y
son definidas as�:
typedef struct RGB
{
unsigned char r, g, b;
} RGB;
Por ejemplo:
RGB negro = { 0, 0, 0 };
RGB blanco = { 63, 63, 63 };
RGB verde = { 0, 63, 0 };
RGB gris = { 32, 32, 32 };
El tipo PALETTE es definido como un array de 256 estructuras RGB.
Puede notar que gran parte del c�digo de Allegro escribe 'palette' como
'pallete'. Esto es porque los ficheros de cabecera de mi viejo compilador
Mark Williams del Atari lo escrib�an con dos l's, y estoy acostumbrado a
eso. Allegro aceptar� sin problemas ambas escrituras, debido a algunos
#defines en allegro/alcompat.h.
void vsync();
Espera a que empiece un retrazo vertical. El retrazo ocurre cuando el
rayo de electrones de su monitor ha llegado a la parte inferior de la
pantalla y est� volviendo arriba para hacer otro barrido. Durante este
corto periodo de tiempo la tarjeta de v�deo no manda datos al monitor,
por lo que puede hacer cosas que de otra forma no podr�a, como alterar
la paleta sin causar parpadeo (nieve). Sin embargo Allegro esperar�
autom�ticamente el retrazo vertical antes de alterar la paleta o hacer
scroll por hardware, por lo que normalmente no debe preocuparse por esta
funci�n.
Relacionado con:
set_palette,
scroll_screen,
timer_simulate_retrace.
void set_color(int index, const RGB *p);
Cambia la entrada de la paleta especificada al triplete RGB dado. A
diferencia de otras funciones de paleta, esto no hace sincronizaci�n con
el retrazo, por lo que deber�a llamar vsync() antes para evitar
problemas de nieve.
Relacionado con:
set_palette,
get_color,
_set_color.
void _set_color(int index, const RGB *p);
Esta es una versi�n inline de set_color(), que puede usar en la funci�n
callback del simulador de retrazo vertical. S�lo deber�a ser usada en
VGA modo 13h y modo-X, porque algunos de las recientes SVGAs no son
compatibles con la VGA (set_color() y set_palette() usar�n llamadas VESA
en estas tarjetas, pero _set_color() no sabr� nada de eso).
Relacionado con:
set_color,
set_gfx_mode,
timer_simulate_retrace.
void set_palette(const PALETTE p);
Ajusta la paleta entera de 256 colores. Debe pasar un array de 256
estructuras RGB. A diferencia de set_color(), no hace falta llamar
vsync() antes de esta funci�n.
Relacionado con:
select_palette,
palette_color,
set_gfx_mode,
set_palette_range,
set_color,
get_palette.
void set_palette_range(const PALETTE p, int from, int to, int vsync);
Ajusta las entradas de la paleta desde from hasta to (inclusivos: pase 0
y 255 para ajustar la paleta entera). Si vsync est� activado, espera un
retrazo vertical, de otro modo cambia los colores inmediatamente.
Relacionado con:
set_palette,
get_palette_range.
void get_color(int index, RGB *p);
Recupera la entrada de la paleta especificada.
Relacionado con:
get_palette,
set_color.
void get_palette(PALETTE p);
Recupera la paleta entera de 256 colores. Debe proveer un array de 256
estructuras RGB para almacenar ah� los colores.
Relacionado con:
get_palette_range,
get_color,
set_palette.
void get_palette_range(PALETTE p, int from, int to);
Recupera las entradas de la paleta desde from hasta to (inclusivos: pase
0 y 255 para recuperar la paleta entera).
Relacionado con:
get_palette,
set_palette_range.
void fade_interpolate(const PALETTE source, const PALETTE dest,
PALETTE output, int pos, int from, to);
Calcula una paleta temporal en un sitio entre source y dest,
devolvi�ndola en el par�metro output. La posici�n entre los dos extremos
es especificada por el valor pos: 0 devuelve una copia exacta de source,
64 devuelve dest, 32 devuelve una paleta a medio camino entre las dos,
etc. Esta rutina s�lo afecta a los colores desde from hasta to
(inclusivos: pase 0 y 255 para interpolar la paleta entera).
Relacionado con:
fade_in,
fade_out,
fade_from.
void fade_from_range(const PALETTE source, const PALETTE dest,
int speed, int from, to);
Funde gradualmente una parte de la paleta desde la paleta source hasta la
paleta dest. La velocidad va de 1 (lento) a 64 (instant�neo). Esta rutina
s�lo afecta los colores desde from hasta to (inclusivos: pase 0 y 255
para fundir la paleta entera).
Relacionado con:
fade_from.
void fade_in_range(const PALETTE p, int speed, int from, to);
Funde gradualmente una parte de la paleta desde una pantalla negra hasta
la paleta especificada. La velocidad va de 1 (lento) a 64 (instant�neo).
Esta rutina s�lo afecta los colores desde from hasta to (inclusivos: pase
0 y 255 para fundir la paleta entera).
Relacionado con:
fade_in.
void fade_out_range(int speed, int from, to);
Funde gradualmente una parte de la paleta desde la paleta actual hasta
una pantalla negra. La velocidad va de 1 (lento) a 64 (instant�neo). Esta
rutina s�lo afecta los colores desde from hasta to (inclusivos: pase 0 y
255 para fundir la paleta entera).
Relacionado con:
fade_out.
void fade_from(const PALETTE source, const PALETTE dest, int speed);
Funde gradualmente desde la paleta source hasta la paleta dest. La
velocidad va de 1 (lento) a 64 (instant�neo).
Relacionado con:
fade_in,
fade_out,
fade_interpolate,
fade_from_range.
void fade_in(const PALETTE p, int speed);
Funde gradualmente desde una pantalla negra a la paleta especificada. La
velocidad va de 1 (lento) a 64 (instant�neo).
Relacionado con:
fade_out,
fade_from,
fade_interpolate,
fade_in_range.
void fade_out(int speed);
Funde gradualmente la paleta actual hasta una pantalla negra. La
velocidad va de 1 (lento) a 64 (instant�neo).
Relacionado con:
fade_in,
fade_from,
fade_interpolate,
fade_in_range.
void select_palette(const PALLETE p);
Rutina fea que puede usar en algunas situaciones peculiares cuando
necesita convertir entre formatos de imagen con paleta a truecolor.
Ajusta la tabla de la paleta interna de la misma forma que la funci�n
set_palette(), para que la conversi�n use la paleta especificada, pero
sin afectar de ning�n modo al hardware de visualizaci�n. La paleta
antigua es almacenada en un buffer interno, y puede ser recuperada
llamando unselect_palette().
Relacionado con:
set_palette,
unselect_palette.
void unselect_palette();
Recupera la tabla de la paleta que estaba en uso antes de la �ltima
llamada a select_palette().
Relacionado con:
select_palette.
void generate_332_palette(PALETTE pal);
Construye una paleta truecolor falsa, usando tres bits para el rojo y el
verde y dos para el azul. La funci�n load_bitmap() devuelve esto si el
fichero no contiene ninguna paleta (ej. cuando lee un bitmap truecolor).
Relacionado con:
generate_optimized_palette,
set_color_depth.
int generate_optimized_palette(BITMAP *bmp, PALETTE pal,
const char rsvd[256]);
Genera una paleta de 256 colores �ptima para hacer una versi�n reducida,
en cuanto a color, de la imagen truecolor especificada. El par�metro rsvd
apunta a una tabla que indica qu� colores se le permite modificar a la
funci�n: cero para colores libres que pueden ser asignados como el
optimizador quiera, valores negativos para colores reservados que no
pueden usarse, y valores positivos para entradas fijas de la paleta que
no deben cambiarse, pero que se pueden usar en la optimizaci�n.
Relacionado con:
generate_332_palette,
set_color_depth.
extern PALETTE default_palette;
La paleta por defecto de la BIOS IBM. Se seleccionar� autom�ticamente
cuando active un nuevo modo gr�fico.
Relacionado con:
black_palette,
desktop_palette.
extern PALETTE black_palette;
Una paleta que contiene colores negros s�lidos, usada por las rutinas de
fundidos.
Relacionado con:
desktop_palette.
extern PALETTE desktop_palette;
La paleta usada por el escritorio de baja resoluci�n del Atari ST. No
estoy seguro por qu� esto sigue aqu�, excepto porque los programas
grabber y test la usan. Es probablemente el �nico c�digo heredado del
Atari que queda en Allegro, y ser�a una pena quitarlo :-)
Relacionado con:
black_palette.
Volver al Indice