---
name: "al_premul_rgba"
section: "3alleg5"
platform: "linux"
package: "allegro5-doc"
version: "2:5.2.10.1+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/al_premul_rgba/3alleg5"
---

# al\_premul\_rgba(3alleg5)

Allegro 5 API

## NAME

al\_premul\_rgba - Allegro 5 API

## SYNOPSIS

-

  ```
  #include <allegro5/allegro.h>
  ALLEGRO_COLOR al_premul_rgba(
     unsigned char r, unsigned char g, unsigned char b, unsigned char a)
  ```

## DESCRIPTION

This is a shortcut for al\_map\_rgba(3alleg5)(r \* a / 255, g \* a / 255, b \* a / 255, 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:

-

  ```
  int r = 255;
  int g = 0;
  int b = 0;
  int a = 127;
  ALLEGRO_COLOR c = al_premul_rgba(r, g, b, a);
  /* Draw the bitmap tinted red and half-transparent. */
  al_draw_tinted_bitmap(bmp, c, 0, 0, 0);
  ```

This function can be called before Allegro is initialized.

## SINCE

5\.1.12

## SEE ALSO

al\_map\_rgba(3alleg5), al\_premul\_rgba\_f(3alleg5)
