DOKK / manpages / debian 10 / allegro4-doc / create_light_table.3alleg4.en
create_light_table(3alleg4) Allegro manual create_light_table(3alleg4)

create_light_table - Fills a color mapping table for lighting effects. Allegro game programming library.

#include <allegro.h>

void create_light_table(COLOR_MAP *table, const PALETTE pal, int r, g, b, void (*callback)(int pos));

Fills the specified color mapping table with lookup data for doing lighting effects with the specified palette. When combining the colors c1 and c2 with this table, c1 is treated as a light level from 0-255. At light level 255 the table will output color c2 unchanged, at light level 0 it will output the r, g, b value you specify to this function, and at intermediate light levels it will output a color somewhere between the two extremes. The r, g, and b values are in the range 0-63.

This function will take advantage of the global rgb_ap variable to speed up color conversions. If the callback function is not NULL, it will be called 256 times during the calculation, allowing you to display a progress indicator. Example:


COLOR_MAP light_table;
...
/* Build a color lookup table for lighting effects. */
create_light_table(&light_table, pal, 0, 0, 0, NULL);

color_map(3alleg4), create_trans_table(3alleg4), create_color_table(3alleg4), create_blender_table(3alleg4), draw_trans_sprite(3alleg4), draw_lit_sprite(3alleg4), draw_gouraud_sprite(3alleg4), rgb_map(3alleg4), ex3d(3alleg4), exshade(3alleg4), extrans(3alleg4)

version 4.4.2 Allegro