1#ifndef included_AMP_RGBA
2#define included_AMP_RGBA
14constexpr uint32_t
store( uint8_t a, uint8_t b, uint8_t c, uint8_t d )
16 return ( (uint32_t) a ) << 24 | ( (uint32_t) b ) << 16 | ( (uint32_t) c ) << 8 | d;
26 constexpr explicit RGBA32( uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255 )
32 constexpr uint8_t
red()
const {
return (
data & 0xFF000000 ) >> 24; }
33 constexpr uint8_t
green()
const {
return (
data & 0xFF0000 ) >> 16; }
34 constexpr uint8_t
blue()
const {
return (
data & 0xFF00 ) >> 8; }
35 constexpr uint8_t
alpha()
const {
return data & 0xFF; }
36 constexpr operator uint32_t() {
return data; }
37 constexpr operator uint8_t() {
return red() * 0.299 +
green() * 0.587 +
blue() * 0.114; }
38 constexpr operator uint16_t() {
return red() * 76.843 +
green() * 150.859 +
blue() * 29.298; }
39 constexpr operator float() {
return operator double(); }
40 constexpr operator double()
42 return red() * 0.001172549019608 +
green() * 0.002301960784314 +
blue() * 0.000447058823529;
57 constexpr explicit ARGB32( uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255 )
63 constexpr uint8_t
alpha()
const {
return (
data & 0xFF000000 ) >> 24; }
64 constexpr uint8_t
red()
const {
return (
data & 0xFF0000 ) >> 16; }
65 constexpr uint8_t
green()
const {
return (
data & 0xFF00 ) >> 8; }
66 constexpr uint8_t
blue()
const {
return data & 0xFF; }
67 constexpr operator uint32_t() {
return data; }
68 constexpr operator uint8_t() {
return red() * 0.299 +
green() * 0.587 +
blue() * 0.114; }
69 constexpr operator uint16_t() {
return red() * 76.843 +
green() * 150.859 +
blue() * 29.298; }
70 constexpr operator float() {
return operator double(); }
71 constexpr operator double()
73 return red() * 0.001172549019608 +
green() * 0.002301960784314 +
blue() * 0.000447058823529;
Structure to store RGBA data.
constexpr uint8_t red() const
constexpr uint8_t blue() const
constexpr ARGB32(uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
constexpr ARGB32(uint32_t x)
constexpr uint8_t green() const
constexpr uint8_t alpha() const
constexpr ARGB32(uint8_t x)
constexpr bool operator==(const ARGB32 &rhs) const
Structure to store RGBA data.
constexpr uint8_t green() const
constexpr uint8_t alpha() const
constexpr RGBA32(uint32_t x)
constexpr uint8_t blue() const
constexpr uint8_t red() const
constexpr RGBA32(uint8_t x)
constexpr bool operator==(const RGBA32 &rhs) const
constexpr RGBA32(uint8_t r, uint8_t g, uint8_t b, uint8_t a=255)
constexpr uint32_t store(uint8_t a, uint8_t b, uint8_t c, uint8_t d)
Helper function to convert 4 uint8_t to uint32_t.