DOKK / manpages / debian 10 / allegro5-doc / al_premul_rgba_f.3alleg5.en
al_premul_rgba_f(3alleg5) al_premul_rgba_f(3alleg5)

al_premul_rgba_f - Allegro 5 API

#include <allegro5/allegro.h>
ALLEGRO_COLOR al_premul_rgba_f(float r, float g, float b, float a)
    

This is a shortcut for al_map_rgba_f(3alleg5)(r * a, g * a, b * a, a).

By default Allegro uses pre-multiplied alpha for transparent blending of bitmaps and primitives (see al_load_bitmap_flags(3alleg5) for a discussion of that feature). This means that if you want to tint a bitmap or primitive to be transparent you need to multiply the color components by the alpha components when you pass them to this function. For example:

float r = 1;
float g = 0;
float b = 0;
float a = 0.5;
ALLEGRO_COLOR c = al_premul_rgba_f(r, g, b, a);
/* Draw the bitmap tinted red and half-transparent. */
al_draw_tinted_bitmap(bmp, c, 0, 0, 0);
    

5.1.12

al_map_rgba_f(3alleg5), al_premul_rgba(3alleg5)

Allegro reference manual