draw_lit_sprite(3)

πŸ“¦ version 4.4.3.1, in fedora 43, fedora 44

✨ draw_lit_sprite ✨

okay bestie, gather round, because this one is from the Allegro game programming library (manual section 3, if you're keeping track πŸ’…) and it is literally the glow-up function for your sprites.


🌸 NAME 🌸

draw_lit_sprite β€” draws a sprite tinted with a specific color. Allegro game programming library, no cap. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <allegro.h>

void draw_lit_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, int color);

πŸ’– DESCRIPTION πŸ’–

Okay so here's the tea, and it's different depending on your color depth, so pay attention. πŸ‘‘

In 256-color modes, it uses the global color_map table to tint the sprite image to the specified color, or to light it to the level specified by (create_trans_table or create_light_table) β€” and then it draws the resulting image to the destination bitmap.

In truecolor modes, it uses the blender functions to light the sprite image using the alpha level specified by color. and this is the part that gets people: the alpha level which was passed to the blender functions is ignored. yep, ignored. then it draws the resulting image to the destination bitmap.

The color parameter must be in the range [0-255] whatever its actual meaning is. periodt. 🫢

⚠️ This must only be used after you have set up the color mapping table (for 256-color modes) or the blender functions (for truecolor modes). like, do the setup first, bestie, don't skip it. 😭

Example, because a vibe check needs receipts:

/* Some one time initialisation code. */
COLOR_MAP global_light_table;
create_light_table(&global_trans_table, my_palette,
                   10, 10, 60, NULL);
...
if (get_color_depth() == 8)
   color_map = &global_light_table;
else
   set_trans_blender(40, 40, 255, 255);

/* Lit the cape with a blueish light. */
draw_lit_sprite(buffer, colored_cape, x, y, 64);

πŸ”₯ SEE ALSO πŸ”₯

the whole friend group, fr fr:


mwah πŸ’œ that's the whole page, you ate it, go tint something gorgeous. this came to you from Allegro version 4.4.3 β€” draw_lit_sprite(3), iconic, no notes. βœ¨πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from