ef85a674eada429127383e15c7e4448a860c5771
1 #pragma once
3 #include <cstdint>
5 namespace kms
6 {
7 struct YUV;
9 struct RGB
10 {
11 RGB();
12 RGB(uint8_t r, uint8_t g, uint8_t b);
13 RGB(uint8_t a, uint8_t r, uint8_t g, uint8_t b);
14 RGB(uint32_t argb);
16 uint32_t rgb888() const;
17 uint32_t argb8888() const;
18 uint32_t abgr8888() const;
19 uint16_t rgb565() const;
20 YUV yuv() const;
22 uint8_t b;
23 uint8_t g;
24 uint8_t r;
25 uint8_t a;
26 };
28 struct YUV
29 {
30 YUV();
31 YUV(uint8_t y, uint8_t u, uint8_t v);
32 YUV(const RGB& rgb);
34 uint8_t v;
35 uint8_t u;
36 uint8_t y;
37 uint8_t a;
38 };
39 }