picofuse

color.h
Go to the documentation of this file.
1 
6 #pragma once
7 #include <stdint.h>
8 
17 typedef uint32_t pix_color_t;
18 
28 #define PIX_COLOR_RED 0xFF0000FFu
29 #define PIX_COLOR_GREEN 0x00FF00FFu
30 #define PIX_COLOR_BLUE 0x0000FFFFu
31 #define PIX_COLOR_WHITE 0xFFFFFFFFu
32 #define PIX_COLOR_BLACK 0x000000FFu
33 
38 #define PIX_COLOR_RGBA(r, g, b, a) \
39  ((pix_color_t)(((uint32_t)(uint8_t)(r) << 24) | \
40  ((uint32_t)(uint8_t)(g) << 16) | \
41  ((uint32_t)(uint8_t)(b) << 8) | \
42  (uint32_t)(uint8_t)(a)))
43 
48 #define PIX_COLOR_RGB(r, g, b) PIX_COLOR_RGBA(r, g, b, 0xFFu)
49 
54 static inline uint8_t pix_color_r(pix_color_t color) {
55  return (uint8_t)(color >> 24);
56 }
57 
62 static inline uint8_t pix_color_g(pix_color_t color) {
63  return (uint8_t)(color >> 16);
64 }
65 
70 static inline uint8_t pix_color_b(pix_color_t color) {
71  return (uint8_t)(color >> 8);
72 }
73 
78 static inline uint8_t pix_color_a(pix_color_t color) {
79  return (uint8_t)color;
80 }
static uint8_t pix_color_b(pix_color_t color)
Extract the blue channel.
Definition: color.h:70
static uint8_t pix_color_a(pix_color_t color)
Extract the alpha channel.
Definition: color.h:78
uint32_t pix_color_t
Color value type for pixel operations.
Definition: color.h:17
static uint8_t pix_color_r(pix_color_t color)
Extract the red channel.
Definition: color.h:54
static uint8_t pix_color_g(pix_color_t color)
Extract the green channel.
Definition: color.h:62