SDL3pp
A slim C++ wrapper for SDL3
Loading...
Searching...
No Matches
SDL3pp_pixels.h
1#ifndef SDL3PP_PIXELS_H_
2#define SDL3PP_PIXELS_H_
3
4#include <span>
5#include <SDL3/SDL_assert.h>
6#include <SDL3/SDL_pixels.h>
7#include <SDL3/SDL_version.h>
8#include "SDL3pp_spanRef.h"
9#include "SDL3pp_stdinc.h"
10
11namespace SDL {
12
73// Forward decl
74struct Color;
75
76// Forward decl
77struct PaletteBase;
78
79// Forward decl
80struct PaletteRef;
81
82// Forward decl
83struct Palette;
84
85#ifdef SDL3PP_DOC
86
94#define SDL_ALPHA_OPAQUE 255
95
103#define SDL_ALPHA_OPAQUE_FLOAT 1.0f
104
112#define SDL_ALPHA_TRANSPARENT 0
113
121#define SDL_ALPHA_TRANSPARENT_FLOAT 0.0f
122
123#endif // SDL3PP_DOC
124
135using PixelType = SDL_PixelType;
136
137constexpr PixelType PIXELTYPE_UNKNOWN = SDL_PIXELTYPE_UNKNOWN;
138
139constexpr PixelType PIXELTYPE_INDEX1 = SDL_PIXELTYPE_INDEX1;
140
141constexpr PixelType PIXELTYPE_INDEX4 = SDL_PIXELTYPE_INDEX4;
142
143constexpr PixelType PIXELTYPE_INDEX8 = SDL_PIXELTYPE_INDEX8;
144
145constexpr PixelType PIXELTYPE_PACKED8 = SDL_PIXELTYPE_PACKED8;
146
147constexpr PixelType PIXELTYPE_PACKED16 = SDL_PIXELTYPE_PACKED16;
148
149constexpr PixelType PIXELTYPE_PACKED32 = SDL_PIXELTYPE_PACKED32;
150
151constexpr PixelType PIXELTYPE_ARRAYU8 = SDL_PIXELTYPE_ARRAYU8;
152
153constexpr PixelType PIXELTYPE_ARRAYU16 = SDL_PIXELTYPE_ARRAYU16;
154
155constexpr PixelType PIXELTYPE_ARRAYU32 = SDL_PIXELTYPE_ARRAYU32;
156
157constexpr PixelType PIXELTYPE_ARRAYF16 = SDL_PIXELTYPE_ARRAYF16;
158
159constexpr PixelType PIXELTYPE_ARRAYF32 = SDL_PIXELTYPE_ARRAYF32;
160
161constexpr PixelType PIXELTYPE_INDEX2 = SDL_PIXELTYPE_INDEX2;
162
164
175using BitmapOrder = SDL_BitmapOrder;
176
177constexpr BitmapOrder BITMAPORDER_NONE = SDL_BITMAPORDER_NONE;
178
179constexpr BitmapOrder BITMAPORDER_4321 = SDL_BITMAPORDER_4321;
180
181constexpr BitmapOrder BITMAPORDER_1234 = SDL_BITMAPORDER_1234;
182
184
195using PackedOrder = SDL_PackedOrder;
196
197constexpr PackedOrder PACKEDORDER_NONE = SDL_PACKEDORDER_NONE;
198
199constexpr PackedOrder PACKEDORDER_XRGB = SDL_PACKEDORDER_XRGB;
200
201constexpr PackedOrder PACKEDORDER_RGBX = SDL_PACKEDORDER_RGBX;
202
203constexpr PackedOrder PACKEDORDER_ARGB = SDL_PACKEDORDER_ARGB;
204
205constexpr PackedOrder PACKEDORDER_RGBA = SDL_PACKEDORDER_RGBA;
206
207constexpr PackedOrder PACKEDORDER_XBGR = SDL_PACKEDORDER_XBGR;
208
209constexpr PackedOrder PACKEDORDER_BGRX = SDL_PACKEDORDER_BGRX;
210
211constexpr PackedOrder PACKEDORDER_ABGR = SDL_PACKEDORDER_ABGR;
212
213constexpr PackedOrder PACKEDORDER_BGRA = SDL_PACKEDORDER_BGRA;
214
216
227using ArrayOrder = SDL_ArrayOrder;
228
229constexpr ArrayOrder ARRAYORDER_NONE = SDL_ARRAYORDER_NONE;
230
231constexpr ArrayOrder ARRAYORDER_RGB = SDL_ARRAYORDER_RGB;
232
233constexpr ArrayOrder ARRAYORDER_RGBA = SDL_ARRAYORDER_RGBA;
234
235constexpr ArrayOrder ARRAYORDER_ARGB = SDL_ARRAYORDER_ARGB;
236
237constexpr ArrayOrder ARRAYORDER_BGR = SDL_ARRAYORDER_BGR;
238
239constexpr ArrayOrder ARRAYORDER_BGRA = SDL_ARRAYORDER_BGRA;
240
241constexpr ArrayOrder ARRAYORDER_ABGR = SDL_ARRAYORDER_ABGR;
242
244
255using PackedLayout = SDL_PackedLayout;
256
257constexpr PackedLayout PACKEDLAYOUT_NONE = SDL_PACKEDLAYOUT_NONE;
258
259constexpr PackedLayout PACKEDLAYOUT_332 = SDL_PACKEDLAYOUT_332;
260
261constexpr PackedLayout PACKEDLAYOUT_4444 = SDL_PACKEDLAYOUT_4444;
262
263constexpr PackedLayout PACKEDLAYOUT_1555 = SDL_PACKEDLAYOUT_1555;
264
265constexpr PackedLayout PACKEDLAYOUT_5551 = SDL_PACKEDLAYOUT_5551;
266
267constexpr PackedLayout PACKEDLAYOUT_565 = SDL_PACKEDLAYOUT_565;
268
269constexpr PackedLayout PACKEDLAYOUT_8888 = SDL_PACKEDLAYOUT_8888;
270
272 SDL_PACKEDLAYOUT_2101010;
273
275 SDL_PACKEDLAYOUT_1010102;
276
278
284using PixelFormatDetails = SDL_PixelFormatDetails;
285
286#ifdef SDL3PP_DOC
287
307#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)
308
322#define SDL_PIXELFLAG(format) (((format) >> 28) & 0x0F)
323
324#endif // SDL3PP_DOC
325
374{
375 SDL_PixelFormat m_format;
376
377public:
383 constexpr PixelFormat(SDL_PixelFormat format = {})
384 : m_format(format)
385 {
386 }
387
411 constexpr PixelFormat(SDL_PixelType type,
412 int order,
413 SDL_PackedLayout layout,
414 int bits,
415 int bytes)
416 : m_format(SDL_PixelFormat(
417 SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes)))
418 {
419 }
420
424 constexpr bool operator==(const PixelFormat& other) const = default;
425
429 constexpr bool operator==(SDL_PixelFormat format) const
430 {
431 return operator==(PixelFormat(format));
432 }
433
439 constexpr operator SDL_PixelFormat() const { return m_format; }
440
446 constexpr explicit operator bool() const { return m_format != 0; }
447
457 constexpr PixelType GetType() const
458 {
459 return PixelType(SDL_PIXELTYPE(m_format));
460 }
461
474 constexpr int GetOrder() const { return SDL_PIXELORDER(m_format); }
475
488 constexpr PackedLayout GetLayout() const
489 {
490 return PackedLayout(SDL_PIXELLAYOUT(m_format));
491 }
492
507 constexpr int GetBitsPerPixel() const { return SDL_BITSPERPIXEL(m_format); }
508
526 constexpr int GetBytesPerPixel() const { return SDL_BYTESPERPIXEL(m_format); }
527
537 constexpr bool IsIndexed() const
538 {
539 return SDL_ISPIXELFORMAT_INDEXED(m_format);
540 }
541
551 constexpr bool IsPacked() const { return SDL_ISPIXELFORMAT_PACKED(m_format); }
552
562 constexpr bool IsArray() const { return SDL_ISPIXELFORMAT_ARRAY(m_format); }
563
573 constexpr bool Is10Bit() const { return SDL_ISPIXELFORMAT_10BIT(m_format); }
574
584 constexpr bool IsFloat() const { return SDL_ISPIXELFORMAT_FLOAT(m_format); }
585
595 constexpr bool IsAlpha() const { return SDL_ISPIXELFORMAT_ALPHA(m_format); }
596
608 constexpr bool IsFourCC() const { return SDL_ISPIXELFORMAT_FOURCC(m_format); }
609
620 const char* GetName() const { return SDL_GetPixelFormatName(m_format); }
621
638 void GetMasks(int* bpp,
639 Uint32* Rmask,
640 Uint32* Gmask,
641 Uint32* Bmask,
642 Uint32* Amask) const
643 {
645 SDL_GetMasksForPixelFormat(m_format, bpp, Rmask, Gmask, Bmask, Amask));
646 }
647
668 static PixelFormat ForMasks(int bpp,
669 Uint32 Rmask,
670 Uint32 Gmask,
671 Uint32 Bmask,
672 Uint32 Amask)
673 {
674 return SDL_GetPixelFormatForMasks(bpp, Rmask, Gmask, Bmask, Amask);
675 }
676
692 {
693 return SDL_GetPixelFormatDetails(m_format);
694 }
695
728 inline Uint32 Map(Color color, PaletteRef palette) const;
729
754 inline Color Get(Uint32 pixel, PaletteRef palette) const;
755};
756
757constexpr SDL_PixelFormat PIXELFORMAT_UNKNOWN =
758 SDL_PIXELFORMAT_UNKNOWN;
759
760constexpr SDL_PixelFormat PIXELFORMAT_INDEX1LSB =
761 SDL_PIXELFORMAT_INDEX1LSB;
762
763constexpr SDL_PixelFormat PIXELFORMAT_INDEX1MSB =
764 SDL_PIXELFORMAT_INDEX1MSB;
765
766constexpr SDL_PixelFormat PIXELFORMAT_INDEX2LSB =
767 SDL_PIXELFORMAT_INDEX2LSB;
768
769constexpr SDL_PixelFormat PIXELFORMAT_INDEX2MSB =
770 SDL_PIXELFORMAT_INDEX2MSB;
771
772constexpr SDL_PixelFormat PIXELFORMAT_INDEX4LSB =
773 SDL_PIXELFORMAT_INDEX4LSB;
774
775constexpr SDL_PixelFormat PIXELFORMAT_INDEX4MSB =
776 SDL_PIXELFORMAT_INDEX4MSB;
777
778constexpr SDL_PixelFormat PIXELFORMAT_INDEX8 =
779 SDL_PIXELFORMAT_INDEX8;
780
781constexpr SDL_PixelFormat PIXELFORMAT_RGB332 =
782 SDL_PIXELFORMAT_RGB332;
783
784constexpr SDL_PixelFormat PIXELFORMAT_XRGB4444 =
785 SDL_PIXELFORMAT_XRGB4444;
786
787constexpr SDL_PixelFormat PIXELFORMAT_XBGR4444 =
788 SDL_PIXELFORMAT_XBGR4444;
789
790constexpr SDL_PixelFormat PIXELFORMAT_XRGB1555 =
791 SDL_PIXELFORMAT_XRGB1555;
792
793constexpr SDL_PixelFormat PIXELFORMAT_XBGR1555 =
794 SDL_PIXELFORMAT_XBGR1555;
795
796constexpr SDL_PixelFormat PIXELFORMAT_ARGB4444 =
797 SDL_PIXELFORMAT_ARGB4444;
798
799constexpr SDL_PixelFormat PIXELFORMAT_RGBA4444 =
800 SDL_PIXELFORMAT_RGBA4444;
801
802constexpr SDL_PixelFormat PIXELFORMAT_ABGR4444 =
803 SDL_PIXELFORMAT_ABGR4444;
804
805constexpr SDL_PixelFormat PIXELFORMAT_BGRA4444 =
806 SDL_PIXELFORMAT_BGRA4444;
807
808constexpr SDL_PixelFormat PIXELFORMAT_ARGB1555 =
809 SDL_PIXELFORMAT_ARGB1555;
810
811constexpr SDL_PixelFormat PIXELFORMAT_RGBA5551 =
812 SDL_PIXELFORMAT_RGBA5551;
813
814constexpr SDL_PixelFormat PIXELFORMAT_ABGR1555 =
815 SDL_PIXELFORMAT_ABGR1555;
816
817constexpr SDL_PixelFormat PIXELFORMAT_BGRA5551 =
818 SDL_PIXELFORMAT_BGRA5551;
819
820constexpr SDL_PixelFormat PIXELFORMAT_RGB565 =
821 SDL_PIXELFORMAT_RGB565;
822
823constexpr SDL_PixelFormat PIXELFORMAT_BGR565 =
824 SDL_PIXELFORMAT_BGR565;
825
826constexpr SDL_PixelFormat PIXELFORMAT_RGB24 = SDL_PIXELFORMAT_RGB24;
827
828constexpr SDL_PixelFormat PIXELFORMAT_BGR24 = SDL_PIXELFORMAT_BGR24;
829
830constexpr SDL_PixelFormat PIXELFORMAT_XRGB8888 =
831 SDL_PIXELFORMAT_XRGB8888;
832
833constexpr SDL_PixelFormat PIXELFORMAT_RGBX8888 =
834 SDL_PIXELFORMAT_RGBX8888;
835
836constexpr SDL_PixelFormat PIXELFORMAT_XBGR8888 =
837 SDL_PIXELFORMAT_XBGR8888;
838
839constexpr SDL_PixelFormat PIXELFORMAT_BGRX8888 =
840 SDL_PIXELFORMAT_BGRX8888;
841
842constexpr SDL_PixelFormat PIXELFORMAT_ARGB8888 =
843 SDL_PIXELFORMAT_ARGB8888;
844
845constexpr SDL_PixelFormat PIXELFORMAT_RGBA8888 =
846 SDL_PIXELFORMAT_RGBA8888;
847
848constexpr SDL_PixelFormat PIXELFORMAT_ABGR8888 =
849 SDL_PIXELFORMAT_ABGR8888;
850
851constexpr SDL_PixelFormat PIXELFORMAT_BGRA8888 =
852 SDL_PIXELFORMAT_BGRA8888;
853
854constexpr SDL_PixelFormat PIXELFORMAT_XRGB2101010 =
855 SDL_PIXELFORMAT_XRGB2101010;
856
857constexpr SDL_PixelFormat PIXELFORMAT_XBGR2101010 =
858 SDL_PIXELFORMAT_XBGR2101010;
859
860constexpr SDL_PixelFormat PIXELFORMAT_ARGB2101010 =
861 SDL_PIXELFORMAT_ARGB2101010;
862
863constexpr SDL_PixelFormat PIXELFORMAT_ABGR2101010 =
864 SDL_PIXELFORMAT_ABGR2101010;
865
866constexpr SDL_PixelFormat PIXELFORMAT_RGB48 = SDL_PIXELFORMAT_RGB48;
867
868constexpr SDL_PixelFormat PIXELFORMAT_BGR48 = SDL_PIXELFORMAT_BGR48;
869
870constexpr SDL_PixelFormat PIXELFORMAT_RGBA64 =
871 SDL_PIXELFORMAT_RGBA64;
872
873constexpr SDL_PixelFormat PIXELFORMAT_ARGB64 =
874 SDL_PIXELFORMAT_ARGB64;
875
876constexpr SDL_PixelFormat PIXELFORMAT_BGRA64 =
877 SDL_PIXELFORMAT_BGRA64;
878
879constexpr SDL_PixelFormat PIXELFORMAT_ABGR64 =
880 SDL_PIXELFORMAT_ABGR64;
881
882constexpr SDL_PixelFormat PIXELFORMAT_RGB48_FLOAT =
883 SDL_PIXELFORMAT_RGB48_FLOAT;
884
885constexpr SDL_PixelFormat PIXELFORMAT_BGR48_FLOAT =
886 SDL_PIXELFORMAT_BGR48_FLOAT;
887
888constexpr SDL_PixelFormat PIXELFORMAT_RGBA64_FLOAT =
889 SDL_PIXELFORMAT_RGBA64_FLOAT;
890
891constexpr SDL_PixelFormat PIXELFORMAT_ARGB64_FLOAT =
892 SDL_PIXELFORMAT_ARGB64_FLOAT;
893
894constexpr SDL_PixelFormat PIXELFORMAT_BGRA64_FLOAT =
895 SDL_PIXELFORMAT_BGRA64_FLOAT;
896
897constexpr SDL_PixelFormat PIXELFORMAT_ABGR64_FLOAT =
898 SDL_PIXELFORMAT_ABGR64_FLOAT;
899
900constexpr SDL_PixelFormat PIXELFORMAT_RGB96_FLOAT =
901 SDL_PIXELFORMAT_RGB96_FLOAT;
902
903constexpr SDL_PixelFormat PIXELFORMAT_BGR96_FLOAT =
904 SDL_PIXELFORMAT_BGR96_FLOAT;
905
906constexpr SDL_PixelFormat PIXELFORMAT_RGBA128_FLOAT =
907 SDL_PIXELFORMAT_RGBA128_FLOAT;
908
909constexpr SDL_PixelFormat PIXELFORMAT_ARGB128_FLOAT =
910 SDL_PIXELFORMAT_ARGB128_FLOAT;
911
912constexpr SDL_PixelFormat PIXELFORMAT_BGRA128_FLOAT =
913 SDL_PIXELFORMAT_BGRA128_FLOAT;
914
915constexpr SDL_PixelFormat PIXELFORMAT_ABGR128_FLOAT =
916 SDL_PIXELFORMAT_ABGR128_FLOAT;
917
918constexpr SDL_PixelFormat PIXELFORMAT_YV12 =
919 SDL_PIXELFORMAT_YV12;
920
921constexpr SDL_PixelFormat PIXELFORMAT_IYUV =
922 SDL_PIXELFORMAT_IYUV;
923
924constexpr SDL_PixelFormat PIXELFORMAT_YUY2 =
925 SDL_PIXELFORMAT_YUY2;
926
927constexpr SDL_PixelFormat PIXELFORMAT_UYVY =
928 SDL_PIXELFORMAT_UYVY;
929
930constexpr SDL_PixelFormat PIXELFORMAT_YVYU =
931 SDL_PIXELFORMAT_YVYU;
932
933constexpr SDL_PixelFormat PIXELFORMAT_NV12 =
934 SDL_PIXELFORMAT_NV12;
935
936constexpr SDL_PixelFormat PIXELFORMAT_NV21 =
937 SDL_PIXELFORMAT_NV21;
938
939constexpr SDL_PixelFormat PIXELFORMAT_P010 =
940 SDL_PIXELFORMAT_P010;
941
942constexpr SDL_PixelFormat PIXELFORMAT_EXTERNAL_OES =
943 SDL_PIXELFORMAT_EXTERNAL_OES;
944
945#if SDL_VERSION_ATLEAST(3, 2, 10)
946
947constexpr SDL_PixelFormat PIXELFORMAT_MJPG =
948 SDL_PIXELFORMAT_MJPG;
949
950#endif // SDL_VERSION_ATLEAST(3, 2, 10)
951
952constexpr SDL_PixelFormat PIXELFORMAT_RGBA32 =
953 SDL_PIXELFORMAT_RGBA32;
954
955constexpr SDL_PixelFormat PIXELFORMAT_ARGB32 =
956 SDL_PIXELFORMAT_ARGB32;
957
958constexpr SDL_PixelFormat PIXELFORMAT_BGRA32 =
959 SDL_PIXELFORMAT_BGRA32;
960
961constexpr SDL_PixelFormat PIXELFORMAT_ABGR32 =
962 SDL_PIXELFORMAT_ABGR32;
963
964constexpr SDL_PixelFormat PIXELFORMAT_RGBX32 =
965 SDL_PIXELFORMAT_RGBX32;
966
967constexpr SDL_PixelFormat PIXELFORMAT_XRGB32 =
968 SDL_PIXELFORMAT_XRGB32;
969
970constexpr SDL_PixelFormat PIXELFORMAT_BGRX32 =
971 SDL_PIXELFORMAT_BGRX32;
972
973constexpr SDL_PixelFormat PIXELFORMAT_XBGR32 =
974 SDL_PIXELFORMAT_XBGR32;
975
977
988using ColorType = SDL_ColorType;
989
991 SDL_COLOR_TYPE_UNKNOWN;
992
993constexpr ColorType COLOR_TYPE_RGB = SDL_COLOR_TYPE_RGB;
994
996 SDL_COLOR_TYPE_YCBCR;
997
999
1011using ColorRange = SDL_ColorRange;
1012
1014 SDL_COLOR_RANGE_UNKNOWN;
1015
1019constexpr ColorRange COLOR_RANGE_LIMITED = SDL_COLOR_RANGE_LIMITED;
1020
1024constexpr ColorRange COLOR_RANGE_FULL = SDL_COLOR_RANGE_FULL;
1025
1027
1039using ColorPrimaries = SDL_ColorPrimaries;
1040
1042 SDL_COLOR_PRIMARIES_UNKNOWN;
1043
1045 SDL_COLOR_PRIMARIES_BT709;
1046
1048 SDL_COLOR_PRIMARIES_UNSPECIFIED;
1049
1051 SDL_COLOR_PRIMARIES_BT470M;
1052
1054 SDL_COLOR_PRIMARIES_BT470BG;
1056
1058 SDL_COLOR_PRIMARIES_BT601;
1059
1064 SDL_COLOR_PRIMARIES_SMPTE240;
1065
1067 SDL_COLOR_PRIMARIES_GENERIC_FILM;
1069
1071 SDL_COLOR_PRIMARIES_BT2020;
1072
1074 SDL_COLOR_PRIMARIES_XYZ;
1075
1077 SDL_COLOR_PRIMARIES_SMPTE431;
1078
1080 SDL_COLOR_PRIMARIES_SMPTE432;
1081
1083 SDL_COLOR_PRIMARIES_EBU3213;
1084
1086 SDL_COLOR_PRIMARIES_CUSTOM;
1087
1089
1102using TransferCharacteristics = SDL_TransferCharacteristics;
1103
1105 SDL_TRANSFER_CHARACTERISTICS_UNKNOWN;
1106
1108 SDL_TRANSFER_CHARACTERISTICS_BT709;
1109
1111 SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED;
1112
1117 SDL_TRANSFER_CHARACTERISTICS_GAMMA22;
1118
1120 SDL_TRANSFER_CHARACTERISTICS_GAMMA28;
1121
1123 SDL_TRANSFER_CHARACTERISTICS_BT601;
1125
1127 SDL_TRANSFER_CHARACTERISTICS_SMPTE240;
1128
1130 SDL_TRANSFER_CHARACTERISTICS_LINEAR;
1131
1133 SDL_TRANSFER_CHARACTERISTICS_LOG100;
1134
1136 SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10;
1137
1139 SDL_TRANSFER_CHARACTERISTICS_IEC61966;
1140
1142 SDL_TRANSFER_CHARACTERISTICS_BT1361;
1143
1145 SDL_TRANSFER_CHARACTERISTICS_SRGB;
1146
1148 SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT;
1150
1152 SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT;
1154
1159 SDL_TRANSFER_CHARACTERISTICS_PQ;
1160
1162 SDL_TRANSFER_CHARACTERISTICS_SMPTE428;
1163
1165 SDL_TRANSFER_CHARACTERISTICS_HLG;
1167
1169 SDL_TRANSFER_CHARACTERISTICS_CUSTOM;
1170
1172
1185using MatrixCoefficients = SDL_MatrixCoefficients;
1186
1188 SDL_MATRIX_COEFFICIENTS_IDENTITY;
1189
1191 SDL_MATRIX_COEFFICIENTS_BT709;
1192
1194 SDL_MATRIX_COEFFICIENTS_UNSPECIFIED;
1195
1197 SDL_MATRIX_COEFFICIENTS_FCC;
1198
1204 SDL_MATRIX_COEFFICIENTS_BT470BG;
1205
1207 SDL_MATRIX_COEFFICIENTS_BT601;
1208
1210 SDL_MATRIX_COEFFICIENTS_SMPTE240;
1211
1213 SDL_MATRIX_COEFFICIENTS_YCGCO;
1214
1216 SDL_MATRIX_COEFFICIENTS_BT2020_NCL;
1218
1220 SDL_MATRIX_COEFFICIENTS_BT2020_CL;
1221
1223 SDL_MATRIX_COEFFICIENTS_SMPTE2085;
1224
1226 SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL;
1227
1229 SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL;
1230
1232 SDL_MATRIX_COEFFICIENTS_ICTCP;
1233
1235 SDL_MATRIX_COEFFICIENTS_CUSTOM;
1236
1238
1249using ChromaLocation = SDL_ChromaLocation;
1250
1252 SDL_CHROMA_LOCATION_NONE;
1253
1259constexpr ChromaLocation CHROMA_LOCATION_LEFT = SDL_CHROMA_LOCATION_LEFT;
1260
1266constexpr ChromaLocation CHROMA_LOCATION_CENTER = SDL_CHROMA_LOCATION_CENTER;
1267
1273constexpr ChromaLocation CHROMA_LOCATION_TOPLEFT = SDL_CHROMA_LOCATION_TOPLEFT;
1274
1276
1301{
1302 SDL_Colorspace m_colorspace;
1303
1304public:
1310 constexpr Colorspace(SDL_Colorspace colorspace = {})
1311 : m_colorspace(colorspace)
1312 {
1313 }
1314
1345 constexpr Colorspace(ColorType type,
1346 ColorRange range,
1347 ColorPrimaries primaries,
1348 TransferCharacteristics transfer,
1349 MatrixCoefficients matrix,
1350 ChromaLocation chroma)
1351 : m_colorspace(SDL_Colorspace(SDL_DEFINE_COLORSPACE(type,
1352 range,
1353 primaries,
1354 transfer,
1355 matrix,
1356 chroma)))
1357 {
1358 }
1359
1363 constexpr bool operator==(const Colorspace& other) const = default;
1364
1368 constexpr bool operator==(SDL_Colorspace colorspace) const
1369 {
1370 return operator==(Colorspace(colorspace));
1371 }
1372
1374
1379 constexpr operator SDL_Colorspace() const { return m_colorspace; }
1380
1386 constexpr explicit operator bool() const { return m_colorspace != 0; }
1387
1397 constexpr ColorType GetType() const
1398 {
1399 return SDL_COLORSPACETYPE(m_colorspace);
1400 }
1401
1411 constexpr ColorRange GetRange() const
1412 {
1413 return SDL_COLORSPACERANGE(m_colorspace);
1414 }
1415
1425 constexpr ChromaLocation GetChroma() const
1426 {
1427 return SDL_COLORSPACECHROMA(m_colorspace);
1428 }
1429
1440 {
1441 return SDL_COLORSPACEPRIMARIES(m_colorspace);
1442 }
1443
1454 {
1455 return SDL_COLORSPACETRANSFER(m_colorspace);
1456 }
1457
1468 {
1469 return SDL_COLORSPACEMATRIX(m_colorspace);
1470 }
1471
1481 constexpr bool IsMatrixBT601() const
1482 {
1483 return SDL_ISCOLORSPACE_MATRIX_BT601(m_colorspace);
1484 }
1485
1495 constexpr bool IsMatrixBT709() const
1496 {
1497 return SDL_ISCOLORSPACE_MATRIX_BT709(m_colorspace);
1498 }
1499
1509 constexpr bool IsMatrixBT2020_NCL() const
1510 {
1511 return SDL_ISCOLORSPACE_MATRIX_BT2020_NCL(m_colorspace);
1512 }
1513
1523 constexpr bool IsLimitedRange() const
1524 {
1525 return SDL_ISCOLORSPACE_LIMITED_RANGE(m_colorspace);
1526 }
1527
1537 constexpr bool IsFullRange() const
1538 {
1539 return SDL_ISCOLORSPACE_FULL_RANGE(m_colorspace);
1540 }
1541};
1542
1543constexpr SDL_Colorspace COLORSPACE_UNKNOWN =
1544 SDL_COLORSPACE_UNKNOWN;
1545
1549constexpr SDL_Colorspace COLORSPACE_SRGB = SDL_COLORSPACE_SRGB;
1550
1551constexpr SDL_Colorspace COLORSPACE_SRGB_LINEAR =
1552 SDL_COLORSPACE_SRGB_LINEAR;
1553
1554constexpr SDL_Colorspace COLORSPACE_HDR10 =
1555 SDL_COLORSPACE_HDR10;
1556
1560constexpr SDL_Colorspace COLORSPACE_JPEG = SDL_COLORSPACE_JPEG;
1561
1565constexpr SDL_Colorspace COLORSPACE_BT601_LIMITED =
1566 SDL_COLORSPACE_BT601_LIMITED;
1567
1571constexpr SDL_Colorspace COLORSPACE_BT601_FULL = SDL_COLORSPACE_BT601_FULL;
1572
1576constexpr SDL_Colorspace COLORSPACE_BT709_LIMITED =
1577 SDL_COLORSPACE_BT709_LIMITED;
1578
1582constexpr SDL_Colorspace COLORSPACE_BT709_FULL = SDL_COLORSPACE_BT709_FULL;
1583
1587constexpr SDL_Colorspace COLORSPACE_BT2020_LIMITED =
1588 SDL_COLORSPACE_BT2020_LIMITED;
1589
1593constexpr SDL_Colorspace COLORSPACE_BT2020_FULL = SDL_COLORSPACE_BT2020_FULL;
1594
1598constexpr SDL_Colorspace COLORSPACE_RGB_DEFAULT = SDL_COLORSPACE_RGB_DEFAULT;
1599
1603constexpr SDL_Colorspace COLORSPACE_YUV_DEFAULT = SDL_COLORSPACE_YUV_DEFAULT;
1604
1606
1620struct Color : SDL_Color
1621{
1627 constexpr Color(const SDL_Color& color = {})
1628 : SDL_Color(color)
1629 {
1630 }
1631
1640 constexpr Color(Uint8 r, Uint8 g, Uint8 b, Uint8 a = 255)
1641 : SDL_Color{r, g, b, a}
1642 {
1643 }
1644
1648 constexpr auto operator<=>(const Color& other) const
1649 {
1650 auto c = r <=> other.r;
1651 if (c != std::strong_ordering::equal) return c;
1652 c = g <=> other.g;
1653 if (c != std::strong_ordering::equal) return c;
1654 c = b <=> other.b;
1655 if (c != std::strong_ordering::equal) return c;
1656 return a <=> other.a;
1657 }
1658
1662 constexpr auto operator<=>(const SDL_Color& color) const
1663 {
1664 return operator<=>(Color(color));
1665 }
1672 constexpr Uint8 GetR() const { return r; }
1673
1680 constexpr Color& SetR(Uint8 newR)
1681 {
1682 r = newR;
1683 return *this;
1684 }
1685
1692 constexpr Uint8 GetG() const { return g; }
1693
1700 constexpr Color& SetG(Uint8 newG)
1701 {
1702 g = newG;
1703 return *this;
1704 }
1705
1712 constexpr Uint8 GetB() const { return b; }
1713
1720 constexpr Color& SetB(Uint8 newB)
1721 {
1722 b = newB;
1723 return *this;
1724 }
1725
1732 constexpr Uint8 GetA() const { return a; }
1733
1740 constexpr Color& SetA(Uint8 newA)
1741 {
1742 a = newA;
1743 return *this;
1744 }
1745
1772 Uint32 Map(const PixelFormatDetails& format, PaletteRef palette) const;
1773
1800 static Color Get(Uint32 pixel,
1801 const PixelFormatDetails& format,
1802 PaletteRef palette);
1803};
1804
1815struct FColor : SDL_FColor
1816{
1822 constexpr FColor(const SDL_FColor& color = {})
1823 : SDL_FColor(color)
1824 {
1825 }
1826
1835 constexpr FColor(float r, float g, float b, float a = 1)
1836 : SDL_FColor{r, g, b, a}
1837 {
1838 }
1839
1843 constexpr auto operator<=>(const FColor& other) const
1844 {
1845 auto c = r <=> other.r;
1846 if (c != std::partial_ordering::equivalent) return c;
1847 c = g <=> other.g;
1848 if (c != std::partial_ordering::equivalent) return c;
1849 c = b <=> other.b;
1850 if (c != std::partial_ordering::equivalent) return c;
1851 return a <=> other.a;
1852 }
1853
1857 constexpr auto operator<=>(const SDL_FColor& color) const
1858 {
1859 return operator<=>(FColor(color));
1860 }
1867 constexpr float GetR() const { return r; }
1868
1875 constexpr FColor& SetR(float newR)
1876 {
1877 r = newR;
1878 return *this;
1879 }
1880
1887 constexpr float GetG() const { return g; }
1888
1895 constexpr FColor& SetG(float newG)
1896 {
1897 g = newG;
1898 return *this;
1899 }
1900
1907 constexpr float GetB() const { return b; }
1908
1915 constexpr FColor& SetB(float newB)
1916 {
1917 b = newB;
1918 return *this;
1919 }
1920
1927 constexpr float GetA() const { return a; }
1928
1935 constexpr FColor& SetA(float newA)
1936 {
1937 a = newA;
1938 return *this;
1939 }
1940};
1941
1953struct PaletteBase : Resource<SDL_Palette*>
1954{
1955 using Resource::Resource;
1956
1973 PaletteBase(int ncolors)
1974 : Resource(CheckError(SDL_CreatePalette(ncolors)))
1975 {
1976 }
1977
1979 constexpr int GetSize() const { return get()->ncolors; }
1980
1982 constexpr Color operator[](int index) const { return get()->colors[index]; }
1983
1996 void SetColors(std::span<const SDL_Color> colors, int firstcolor = 0)
1997 {
1998 CheckError(
1999 SDL_SetPaletteColors(get(), colors.data(), firstcolor, colors.size()));
2000 }
2001
2013 bool SetColors(SpanRef<const SDL_Color> colors, int firstcolor = 0)
2014 {
2015 SDL_assert_paranoid(colors.size() < SDL_MAX_SINT32);
2016 return SDL_SetPaletteColors(
2017 get(), colors.data(), firstcolor, colors.size());
2018 }
2019};
2020
2030{
2032
2036 constexpr PaletteRef(const PaletteRef& other)
2037 : PaletteBase(other.get())
2038 {
2039 }
2040
2044 constexpr PaletteRef(PaletteRef&& other)
2045 : PaletteBase(other.release())
2046 {
2047 }
2048
2052 constexpr ~PaletteRef() = default;
2053
2058 {
2059 release(other.release());
2060 return *this;
2061 }
2062
2075 void reset(SDL_Palette* newResource = {})
2076 {
2077 SDL_DestroyPalette(release(newResource));
2078 }
2079};
2080
2090{
2092
2096 constexpr explicit Palette(SDL_Palette* resource = {})
2097 : PaletteRef(resource)
2098 {
2099 }
2100
2101 constexpr Palette(const Palette& other) = delete;
2102
2106 constexpr Palette(Palette&& other) = default;
2107
2112
2117 {
2118 reset(other.release());
2119 return *this;
2120 }
2121};
2122
2159inline Uint32 MapRGB(const PixelFormatDetails& format,
2160 const PaletteBase& palette,
2161 Uint8 r,
2162 Uint8 g,
2163 Uint8 b)
2164{
2165 return SDL_MapRGB(&format, palette.get(), r, g, b);
2166}
2167
2205inline Uint32 MapRGBA(const PixelFormatDetails& format,
2206 const PaletteBase& palette,
2207 Uint8 r,
2208 Uint8 g,
2209 Uint8 b,
2210 Uint8 a)
2211{
2212 return SDL_MapRGBA(&format, palette.get(), r, g, b, a);
2213}
2214
2241inline void GetRGB(Uint32 pixel,
2242 const PixelFormatDetails& format,
2243 const PaletteBase& palette,
2244 Uint8* r,
2245 Uint8* g,
2246 Uint8* b)
2247{
2248 SDL_GetRGB(pixel, &format, palette.get(), r, g, b);
2249}
2250
2281inline void GetRGBA(Uint32 pixel,
2282 const PixelFormatDetails& format,
2283 const PaletteBase& palette,
2284 Uint8* r,
2285 Uint8* g,
2286 Uint8* b,
2287 Uint8* a)
2288{
2289 SDL_GetRGBA(pixel, &format, palette.get(), r, g, b, a);
2290}
2291
2294#pragma region impl
2295
2296inline Uint32 Color::Map(const PixelFormatDetails& format,
2297 PaletteRef palette = nullptr) const
2298{
2299 return MapRGBA(format, palette.get(), r, g, b, a);
2300}
2301
2302inline Color Color::Get(Uint32 pixel,
2303 const PixelFormatDetails& format,
2304 PaletteRef palette = nullptr)
2305{
2306 Color c;
2307 GetRGBA(pixel, format, palette, &c.r, &c.g, &c.b, &c.a);
2308 return c;
2309}
2310
2311inline Uint32 PixelFormat::Map(Color color, PaletteRef palette = nullptr) const
2312{
2313 return color.Map(*GetDetails(), palette);
2314}
2315
2316inline Color PixelFormat::Get(Uint32 pixel, PaletteRef palette = nullptr) const
2317{
2318 return Color::Get(pixel, *GetDetails(), palette);
2319}
2320
2321#pragma endregion impl
2322
2323} // namespace SDL
2324
2325#endif /* SDL3PP_PIXELS_H_ */
Colorspace definitions.
Definition SDL3pp_pixels.h:1301
constexpr bool IsMatrixBT709() const
Determine if an Colorspace uses BT709 matrix coefficients.
Definition SDL3pp_pixels.h:1495
constexpr ColorType GetType() const
Retrieve the type of a Colorspace.
Definition SDL3pp_pixels.h:1397
constexpr Colorspace(ColorType type, ColorRange range, ColorPrimaries primaries, TransferCharacteristics transfer, MatrixCoefficients matrix, ChromaLocation chroma)
Define custom Colorspace formats.
Definition SDL3pp_pixels.h:1345
constexpr TransferCharacteristics GetTransfer() const
Retrieve the transfer characteristics of an Colorspace.
Definition SDL3pp_pixels.h:1453
constexpr ChromaLocation GetChroma() const
Retrieve the chroma sample location of an Colorspace.
Definition SDL3pp_pixels.h:1425
constexpr ColorPrimaries GetPrimaries() const
Retrieve the primaries of an Colorspace.
Definition SDL3pp_pixels.h:1439
constexpr bool IsMatrixBT2020_NCL() const
Determine if an Colorspace uses BT2020_NCL matrix coefficients.
Definition SDL3pp_pixels.h:1509
constexpr bool IsMatrixBT601() const
Determine if a Colorspace uses BT601 (or BT470BG) matrix coefficients.
Definition SDL3pp_pixels.h:1481
constexpr bool operator==(const Colorspace &other) const =default
Default comparison operator.
constexpr MatrixCoefficients GetMatrix() const
Retrieve the matrix coefficients of an Colorspace.
Definition SDL3pp_pixels.h:1467
constexpr Colorspace(SDL_Colorspace colorspace={})
Wraps Colorspace.
Definition SDL3pp_pixels.h:1310
constexpr bool IsFullRange() const
A function to determine if an Colorspace has a full range.
Definition SDL3pp_pixels.h:1537
constexpr bool operator==(SDL_Colorspace colorspace) const
Compares with the underlying type.
Definition SDL3pp_pixels.h:1368
constexpr bool IsLimitedRange() const
A function to determine if an Colorspace has a limited range.
Definition SDL3pp_pixels.h:1523
constexpr ColorRange GetRange() const
Retrieve the range of a Colorspace.
Definition SDL3pp_pixels.h:1411
Pixel format.
Definition SDL3pp_pixels.h:374
constexpr PixelFormat(SDL_PixelType type, int order, SDL_PackedLayout layout, int bits, int bytes)
Defining custom non-FourCC pixel formats.
Definition SDL3pp_pixels.h:411
const char * GetName() const
Get the human readable name of a pixel format.
Definition SDL3pp_pixels.h:620
const PixelFormatDetails * GetDetails() const
Create an PixelFormatDetails structure corresponding to a pixel format.
Definition SDL3pp_pixels.h:691
constexpr bool operator==(SDL_PixelFormat format) const
Compares with the underlying type.
Definition SDL3pp_pixels.h:429
Uint32 Map(Color color, PaletteRef palette) const
Map an RGBA quadruple to a pixel value for a given pixel format.
Definition SDL3pp_pixels.h:2311
constexpr bool Is10Bit() const
Determine if this is a 10-bit format.
Definition SDL3pp_pixels.h:573
constexpr bool IsIndexed() const
Determine if this is an indexed format.
Definition SDL3pp_pixels.h:537
constexpr bool IsFloat() const
Determine if this is a floating point format.
Definition SDL3pp_pixels.h:584
constexpr bool IsPacked() const
Determine if this is a packed format.
Definition SDL3pp_pixels.h:551
constexpr PackedLayout GetLayout() const
Retrieve the layout.
Definition SDL3pp_pixels.h:488
constexpr bool IsFourCC() const
Determine if this is a "FourCC" format.
Definition SDL3pp_pixels.h:608
constexpr int GetOrder() const
Retrieve the order.
Definition SDL3pp_pixels.h:474
Color Get(Uint32 pixel, PaletteRef palette) const
Get RGBA values from a pixel in the specified format.
Definition SDL3pp_pixels.h:2316
constexpr bool IsArray() const
Determine if this is an array format.
Definition SDL3pp_pixels.h:562
constexpr bool operator==(const PixelFormat &other) const =default
Default comparison operator.
constexpr int GetBytesPerPixel() const
Determine this's bytes per pixel.
Definition SDL3pp_pixels.h:526
constexpr bool IsAlpha() const
Determine if this has an alpha channel.
Definition SDL3pp_pixels.h:595
constexpr PixelType GetType() const
Retrieve the type.
Definition SDL3pp_pixels.h:457
static PixelFormat ForMasks(int bpp, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
Convert a bpp value and RGBA masks to an enumerated pixel format.
Definition SDL3pp_pixels.h:668
constexpr int GetBitsPerPixel() const
Determine this's bits per pixel.
Definition SDL3pp_pixels.h:507
constexpr PixelFormat(SDL_PixelFormat format={})
Wraps PixelFormat.
Definition SDL3pp_pixels.h:383
void GetMasks(int *bpp, Uint32 *Rmask, Uint32 *Gmask, Uint32 *Bmask, Uint32 *Amask) const
Convert one of the enumerated pixel formats to a bpp value and RGBA masks.
Definition SDL3pp_pixels.h:638
A SDL managed resource.
Definition SDL3pp_resource.h:17
constexpr SDL_Palette * release(SDL_Palette * newResource={})
Return contained resource and empties or replace value.
Definition SDL3pp_resource.h:60
constexpr Resource(T resource={})
Constructs the underlying resource.
Definition SDL3pp_resource.h:22
constexpr SDL_Palette * get() const
Return contained resource;.
Definition SDL3pp_resource.h:57
span-like for empty-derived structs
Definition SDL3pp_spanRef.h:24
#define SDL_assert_paranoid(condition)
An assertion test that is performed only when built with paranoid settings.
Definition SDL3pp_assert.h:374
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition SDL3pp_error.h:206
Uint32 MapRGB(const PixelFormatDetails &format, const PaletteBase &palette, Uint8 r, Uint8 g, Uint8 b)
Map an RGB triple to an opaque pixel value for a given pixel format.
Definition SDL3pp_pixels.h:2159
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_FCC
US FCC Title 47.
Definition SDL3pp_pixels.h:1196
constexpr SDL_PixelFormat PIXELFORMAT_RGBA4444
RGBA4444.
Definition SDL3pp_pixels.h:799
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_SMPTE240
SMPTE 240M.
Definition SDL3pp_pixels.h:1209
constexpr ColorPrimaries COLOR_PRIMARIES_UNSPECIFIED
COLOR_PRIMARIES_UNSPECIFIED.
Definition SDL3pp_pixels.h:1047
constexpr ColorPrimaries COLOR_PRIMARIES_BT709
ITU-R BT.709-6.
Definition SDL3pp_pixels.h:1044
constexpr PixelType PIXELTYPE_PACKED8
PACKED8.
Definition SDL3pp_pixels.h:145
constexpr PackedLayout PACKEDLAYOUT_1555
1555
Definition SDL3pp_pixels.h:263
constexpr SDL_PixelFormat PIXELFORMAT_ABGR64
ABGR64.
Definition SDL3pp_pixels.h:879
constexpr SDL_PixelFormat PIXELFORMAT_XBGR4444
XBGR4444.
Definition SDL3pp_pixels.h:787
constexpr SDL_Colorspace COLORSPACE_RGB_DEFAULT
The default colorspace for RGB surfaces if no colorspace is specified.
Definition SDL3pp_pixels.h:1598
constexpr SDL_PixelFormat PIXELFORMAT_RGB332
RGB332.
Definition SDL3pp_pixels.h:781
constexpr SDL_Colorspace COLORSPACE_BT709_FULL
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709.
Definition SDL3pp_pixels.h:1582
constexpr PixelType PIXELTYPE_ARRAYF32
ARRAYF32.
Definition SDL3pp_pixels.h:159
constexpr SDL_PixelFormat PIXELFORMAT_BGRX8888
BGRX8888.
Definition SDL3pp_pixels.h:839
constexpr ColorRange COLOR_RANGE_LIMITED
Narrow range, e.g.
Definition SDL3pp_pixels.h:1019
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_SMPTE240
SMPTE ST 240M.
Definition SDL3pp_pixels.h:1126
constexpr PackedLayout PACKEDLAYOUT_1010102
1010102
Definition SDL3pp_pixels.h:274
constexpr SDL_PixelFormat PIXELFORMAT_RGB48_FLOAT
RGB48_FLOAT.
Definition SDL3pp_pixels.h:882
constexpr SDL_PixelFormat PIXELFORMAT_ARGB8888
ARGB8888.
Definition SDL3pp_pixels.h:842
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT2020_12BIT
ITU-R BT2020 for 12-bit system.
Definition SDL3pp_pixels.h:1151
constexpr ArrayOrder ARRAYORDER_RGB
RGB.
Definition SDL3pp_pixels.h:231
SDL_PackedLayout PackedLayout
Packed component layout.
Definition SDL3pp_pixels.h:255
SDL_ArrayOrder ArrayOrder
Array component order, low byte -> high byte.
Definition SDL3pp_pixels.h:227
constexpr SDL_PixelFormat PIXELFORMAT_BGRA64
BGRA64.
Definition SDL3pp_pixels.h:876
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_UNSPECIFIED
MATRIX_COEFFICIENTS_UNSPECIFIED.
Definition SDL3pp_pixels.h:1193
constexpr SDL_PixelFormat PIXELFORMAT_XBGR1555
XBGR1555.
Definition SDL3pp_pixels.h:793
constexpr SDL_PixelFormat PIXELFORMAT_RGBA5551
RGBA5551.
Definition SDL3pp_pixels.h:811
constexpr SDL_PixelFormat PIXELFORMAT_IYUV
Planar mode: Y + U + V (3 planes)
Definition SDL3pp_pixels.h:921
constexpr SDL_PixelFormat PIXELFORMAT_RGBA128_FLOAT
RGBA128_FLOAT.
Definition SDL3pp_pixels.h:906
constexpr PixelType PIXELTYPE_PACKED32
PACKED32.
Definition SDL3pp_pixels.h:149
constexpr PixelType PIXELTYPE_ARRAYF16
ARRAYF16.
Definition SDL3pp_pixels.h:157
SDL_ColorPrimaries ColorPrimaries
Colorspace color primaries, as described by https://www.itu.int/rec/T-REC-H.273-201612-S/en.
Definition SDL3pp_pixels.h:1039
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_SMPTE2085
SMPTE ST 2085.
Definition SDL3pp_pixels.h:1222
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_ICTCP
ITU-R BT.2100-0 ICTCP.
Definition SDL3pp_pixels.h:1231
constexpr SDL_PixelFormat PIXELFORMAT_BGRA64_FLOAT
BGRA64_FLOAT.
Definition SDL3pp_pixels.h:894
constexpr SDL_PixelFormat PIXELFORMAT_P010
Planar mode: Y + U/V interleaved (2 planes)
Definition SDL3pp_pixels.h:939
SDL_ChromaLocation ChromaLocation
Colorspace chroma sample location.
Definition SDL3pp_pixels.h:1249
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_LOG100
TRANSFER_CHARACTERISTICS_LOG100.
Definition SDL3pp_pixels.h:1132
constexpr ColorType COLOR_TYPE_YCBCR
COLOR_TYPE_YCBCR.
Definition SDL3pp_pixels.h:995
constexpr SDL_PixelFormat PIXELFORMAT_UYVY
Packed mode: U0+Y0+V0+Y1 (1 plane)
Definition SDL3pp_pixels.h:927
constexpr SDL_PixelFormat PIXELFORMAT_YUY2
Packed mode: Y0+U0+Y1+V0 (1 plane)
Definition SDL3pp_pixels.h:924
constexpr SDL_PixelFormat PIXELFORMAT_XRGB1555
XRGB1555.
Definition SDL3pp_pixels.h:790
Uint32 MapRGBA(const PixelFormatDetails &format, const PaletteBase &palette, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Map an RGBA quadruple to a pixel value for a given pixel format.
Definition SDL3pp_pixels.h:2205
constexpr SDL_PixelFormat PIXELFORMAT_XRGB32
XRGB32.
Definition SDL3pp_pixels.h:967
constexpr SDL_PixelFormat PIXELFORMAT_ABGR32
ABGR32.
Definition SDL3pp_pixels.h:961
constexpr ColorPrimaries COLOR_PRIMARIES_UNKNOWN
COLOR_PRIMARIES_UNKNOWN.
Definition SDL3pp_pixels.h:1041
constexpr SDL_Colorspace COLORSPACE_HDR10
[object Object]
Definition SDL3pp_pixels.h:1554
constexpr BitmapOrder BITMAPORDER_1234
1234
Definition SDL3pp_pixels.h:181
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT601
SMPTE ST 170M / ITU-R BT.601-7 525 or.
Definition SDL3pp_pixels.h:1122
constexpr SDL_PixelFormat PIXELFORMAT_RGB48
RGB48.
Definition SDL3pp_pixels.h:866
constexpr PackedLayout PACKEDLAYOUT_565
565
Definition SDL3pp_pixels.h:267
constexpr SDL_PixelFormat PIXELFORMAT_ARGB32
ARGB32.
Definition SDL3pp_pixels.h:955
constexpr SDL_PixelFormat PIXELFORMAT_RGBA64
RGBA64.
Definition SDL3pp_pixels.h:870
constexpr SDL_PixelFormat PIXELFORMAT_BGR48_FLOAT
BGR48_FLOAT.
Definition SDL3pp_pixels.h:885
constexpr PackedOrder PACKEDORDER_BGRA
BGRA.
Definition SDL3pp_pixels.h:213
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL
MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL.
Definition SDL3pp_pixels.h:1228
constexpr SDL_Colorspace COLORSPACE_SRGB
Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709.
Definition SDL3pp_pixels.h:1549
constexpr SDL_PixelFormat PIXELFORMAT_INDEX4LSB
INDEX4LSB.
Definition SDL3pp_pixels.h:772
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_SMPTE428
SMPTE ST 428-1.
Definition SDL3pp_pixels.h:1161
constexpr SDL_PixelFormat PIXELFORMAT_XRGB2101010
XRGB2101010.
Definition SDL3pp_pixels.h:854
constexpr SDL_Colorspace COLORSPACE_BT601_LIMITED
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601.
Definition SDL3pp_pixels.h:1565
constexpr ChromaLocation CHROMA_LOCATION_TOPLEFT
In HEVC for BT.2020 and BT.2100 content (in particular on Blu-rays), Cb and Cr are sampled at the sam...
Definition SDL3pp_pixels.h:1273
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_GAMMA22
ITU-R BT.470-6 System M / ITU-R BT1700 625 PAL & SECAM.
Definition SDL3pp_pixels.h:1116
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT2020_NCL
ITU-R BT.2020-2 non-constant luminance.
Definition SDL3pp_pixels.h:1215
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT470BG
ITU-R BT.470-6 System B, G / ITU-R BT.601-7 625, functionally the same as MATRIX_COEFFICIENTS_BT601.
Definition SDL3pp_pixels.h:1203
SDL_TransferCharacteristics TransferCharacteristics
Colorspace transfer characteristics.
Definition SDL3pp_pixels.h:1102
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_SRGB
IEC 61966-2-1 (sRGB or sYCC)
Definition SDL3pp_pixels.h:1144
constexpr ColorPrimaries COLOR_PRIMARIES_BT470BG
ITU-R BT.470-6 System B, G / ITU-R BT.601-7.
Definition SDL3pp_pixels.h:1053
constexpr ArrayOrder ARRAYORDER_NONE
NONE.
Definition SDL3pp_pixels.h:229
constexpr PackedOrder PACKEDORDER_ARGB
ARGB.
Definition SDL3pp_pixels.h:203
constexpr SDL_PixelFormat PIXELFORMAT_ABGR64_FLOAT
ABGR64_FLOAT.
Definition SDL3pp_pixels.h:897
constexpr SDL_PixelFormat PIXELFORMAT_INDEX2LSB
INDEX2LSB.
Definition SDL3pp_pixels.h:766
constexpr SDL_PixelFormat PIXELFORMAT_ARGB64
ARGB64.
Definition SDL3pp_pixels.h:873
constexpr ChromaLocation CHROMA_LOCATION_LEFT
In MPEG-2, MPEG-4, and AVC, Cb and Cr are taken on midpoint of the left-edge of the 2x2 square.
Definition SDL3pp_pixels.h:1259
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT2020_CL
ITU-R BT.2020-2 constant luminance.
Definition SDL3pp_pixels.h:1219
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_HLG
ARIB STD-B67, known as "hybrid log-gamma" (HLG)
Definition SDL3pp_pixels.h:1164
constexpr PackedLayout PACKEDLAYOUT_NONE
NONE.
Definition SDL3pp_pixels.h:257
constexpr SDL_PixelFormat PIXELFORMAT_INDEX2MSB
INDEX2MSB.
Definition SDL3pp_pixels.h:769
constexpr PixelType PIXELTYPE_ARRAYU16
ARRAYU16.
Definition SDL3pp_pixels.h:153
constexpr SDL_PixelFormat PIXELFORMAT_BGRA8888
BGRA8888.
Definition SDL3pp_pixels.h:851
constexpr ColorType COLOR_TYPE_UNKNOWN
COLOR_TYPE_UNKNOWN.
Definition SDL3pp_pixels.h:990
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT709
ITU-R BT.709-6.
Definition SDL3pp_pixels.h:1190
constexpr SDL_PixelFormat PIXELFORMAT_XBGR8888
XBGR8888.
Definition SDL3pp_pixels.h:836
constexpr PackedOrder PACKEDORDER_RGBX
RGBX.
Definition SDL3pp_pixels.h:201
constexpr SDL_PixelFormat PIXELFORMAT_NV12
Planar mode: Y + U/V interleaved (2 planes)
Definition SDL3pp_pixels.h:933
constexpr SDL_PixelFormat PIXELFORMAT_MJPG
Motion JPEG.
Definition SDL3pp_pixels.h:947
constexpr PackedLayout PACKEDLAYOUT_4444
4444
Definition SDL3pp_pixels.h:261
constexpr SDL_PixelFormat PIXELFORMAT_XBGR32
XBGR32.
Definition SDL3pp_pixels.h:973
SDL_ColorRange ColorRange
Colorspace color range, as described by https://www.itu.int/rec/R-REC-BT.2100-2-201807-I/en.
Definition SDL3pp_pixels.h:1011
constexpr SDL_Colorspace COLORSPACE_BT601_FULL
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601.
Definition SDL3pp_pixels.h:1571
constexpr PixelType PIXELTYPE_UNKNOWN
UNKNOWN.
Definition SDL3pp_pixels.h:137
constexpr SDL_PixelFormat PIXELFORMAT_ABGR128_FLOAT
ABGR128_FLOAT.
Definition SDL3pp_pixels.h:915
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT601
ITU-R BT.601-7 525.
Definition SDL3pp_pixels.h:1206
constexpr SDL_PixelFormat PIXELFORMAT_RGBA64_FLOAT
RGBA64_FLOAT.
Definition SDL3pp_pixels.h:888
constexpr SDL_PixelFormat PIXELFORMAT_UNKNOWN
UNKNOWN.
Definition SDL3pp_pixels.h:757
constexpr ColorPrimaries COLOR_PRIMARIES_EBU3213
EBU Tech. 3213-E.
Definition SDL3pp_pixels.h:1082
constexpr SDL_PixelFormat PIXELFORMAT_RGB96_FLOAT
RGB96_FLOAT.
Definition SDL3pp_pixels.h:900
constexpr PackedOrder PACKEDORDER_ABGR
ABGR.
Definition SDL3pp_pixels.h:211
constexpr SDL_PixelFormat PIXELFORMAT_RGB24
RGB24.
Definition SDL3pp_pixels.h:826
constexpr ColorPrimaries COLOR_PRIMARIES_SMPTE240
SMPTE 240M, functionally the same as COLOR_PRIMARIES_BT601.
Definition SDL3pp_pixels.h:1063
constexpr BitmapOrder BITMAPORDER_NONE
NONE.
Definition SDL3pp_pixels.h:177
constexpr SDL_PixelFormat PIXELFORMAT_RGBA8888
RGBA8888.
Definition SDL3pp_pixels.h:845
SDL_PixelFormatDetails PixelFormatDetails
Details about the format of a pixel.
Definition SDL3pp_pixels.h:284
constexpr BitmapOrder BITMAPORDER_4321
4321
Definition SDL3pp_pixels.h:179
constexpr ColorPrimaries COLOR_PRIMARIES_CUSTOM
COLOR_PRIMARIES_CUSTOM.
Definition SDL3pp_pixels.h:1085
constexpr ColorPrimaries COLOR_PRIMARIES_BT2020
ITU-R BT.2020-2 / ITU-R BT.2100-0.
Definition SDL3pp_pixels.h:1070
constexpr ColorType COLOR_TYPE_RGB
COLOR_TYPE_RGB.
Definition SDL3pp_pixels.h:993
constexpr PixelType PIXELTYPE_INDEX4
INDEX4.
Definition SDL3pp_pixels.h:141
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT1361
ITU-R BT1361 Extended Colour Gamut.
Definition SDL3pp_pixels.h:1141
constexpr SDL_PixelFormat PIXELFORMAT_EXTERNAL_OES
Android video texture format.
Definition SDL3pp_pixels.h:942
constexpr PixelType PIXELTYPE_PACKED16
PACKED16.
Definition SDL3pp_pixels.h:147
constexpr SDL_PixelFormat PIXELFORMAT_ABGR1555
ABGR1555.
Definition SDL3pp_pixels.h:814
constexpr SDL_PixelFormat PIXELFORMAT_INDEX4MSB
INDEX4MSB.
Definition SDL3pp_pixels.h:775
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_YCGCO
MATRIX_COEFFICIENTS_YCGCO.
Definition SDL3pp_pixels.h:1212
constexpr SDL_PixelFormat PIXELFORMAT_NV21
Planar mode: Y + V/U interleaved (2 planes)
Definition SDL3pp_pixels.h:936
constexpr SDL_PixelFormat PIXELFORMAT_ABGR4444
ABGR4444.
Definition SDL3pp_pixels.h:802
constexpr PackedLayout PACKEDLAYOUT_332
332
Definition SDL3pp_pixels.h:259
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_PQ
SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems.
Definition SDL3pp_pixels.h:1158
constexpr SDL_PixelFormat PIXELFORMAT_ARGB4444
ARGB4444.
Definition SDL3pp_pixels.h:796
constexpr PixelType PIXELTYPE_ARRAYU8
ARRAYU8.
Definition SDL3pp_pixels.h:151
constexpr SDL_PixelFormat PIXELFORMAT_INDEX8
INDEX8.
Definition SDL3pp_pixels.h:778
constexpr ArrayOrder ARRAYORDER_ABGR
ABGR.
Definition SDL3pp_pixels.h:241
constexpr SDL_Colorspace COLORSPACE_JPEG
Equivalent to DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601.
Definition SDL3pp_pixels.h:1560
constexpr ColorPrimaries COLOR_PRIMARIES_BT470M
ITU-R BT.470-6 System M.
Definition SDL3pp_pixels.h:1050
constexpr SDL_PixelFormat PIXELFORMAT_YVYU
Packed mode: Y0+V0+Y1+U0 (1 plane)
Definition SDL3pp_pixels.h:930
constexpr ColorPrimaries COLOR_PRIMARIES_SMPTE431
SMPTE RP 431-2.
Definition SDL3pp_pixels.h:1076
constexpr ColorPrimaries COLOR_PRIMARIES_XYZ
SMPTE ST 428-1.
Definition SDL3pp_pixels.h:1073
SDL_ColorType ColorType
Colorspace color type.
Definition SDL3pp_pixels.h:988
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL
MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL.
Definition SDL3pp_pixels.h:1225
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_CUSTOM
MATRIX_COEFFICIENTS_CUSTOM.
Definition SDL3pp_pixels.h:1234
constexpr SDL_PixelFormat PIXELFORMAT_RGBX32
RGBX32.
Definition SDL3pp_pixels.h:964
constexpr PackedLayout PACKEDLAYOUT_2101010
2101010
Definition SDL3pp_pixels.h:271
constexpr SDL_PixelFormat PIXELFORMAT_RGB565
RGB565.
Definition SDL3pp_pixels.h:820
constexpr SDL_PixelFormat PIXELFORMAT_ARGB64_FLOAT
ARGB64_FLOAT.
Definition SDL3pp_pixels.h:891
constexpr SDL_PixelFormat PIXELFORMAT_BGRA128_FLOAT
BGRA128_FLOAT.
Definition SDL3pp_pixels.h:912
SDL_MatrixCoefficients MatrixCoefficients
Colorspace matrix coefficients.
Definition SDL3pp_pixels.h:1185
constexpr ColorPrimaries COLOR_PRIMARIES_SMPTE432
SMPTE EG 432-1 / DCI P3.
Definition SDL3pp_pixels.h:1079
SDL_PackedOrder PackedOrder
Packed component order, high bit -> low bit.
Definition SDL3pp_pixels.h:195
constexpr PackedLayout PACKEDLAYOUT_5551
5551
Definition SDL3pp_pixels.h:265
constexpr ColorRange COLOR_RANGE_FULL
Full range, e.g.
Definition SDL3pp_pixels.h:1024
constexpr SDL_PixelFormat PIXELFORMAT_BGRX32
BGRX32.
Definition SDL3pp_pixels.h:970
constexpr SDL_PixelFormat PIXELFORMAT_ARGB1555
ARGB1555.
Definition SDL3pp_pixels.h:808
constexpr SDL_PixelFormat PIXELFORMAT_ABGR8888
ABGR8888.
Definition SDL3pp_pixels.h:848
constexpr SDL_Colorspace COLORSPACE_BT2020_LIMITED
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020.
Definition SDL3pp_pixels.h:1587
constexpr PackedOrder PACKEDORDER_RGBA
RGBA.
Definition SDL3pp_pixels.h:205
constexpr SDL_Colorspace COLORSPACE_UNKNOWN
UNKNOWN.
Definition SDL3pp_pixels.h:1543
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_UNSPECIFIED
TRANSFER_CHARACTERISTICS_UNSPECIFIED.
Definition SDL3pp_pixels.h:1110
constexpr SDL_Colorspace COLORSPACE_YUV_DEFAULT
The default colorspace for YUV surfaces if no colorspace is specified.
Definition SDL3pp_pixels.h:1603
constexpr SDL_PixelFormat PIXELFORMAT_XBGR2101010
XBGR2101010.
Definition SDL3pp_pixels.h:857
constexpr SDL_PixelFormat PIXELFORMAT_INDEX1LSB
INDEX1LSB.
Definition SDL3pp_pixels.h:760
constexpr SDL_Colorspace COLORSPACE_BT2020_FULL
Equivalent to DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020.
Definition SDL3pp_pixels.h:1593
constexpr SDL_PixelFormat PIXELFORMAT_ARGB128_FLOAT
ARGB128_FLOAT.
Definition SDL3pp_pixels.h:909
constexpr SDL_PixelFormat PIXELFORMAT_BGRA5551
BGRA5551.
Definition SDL3pp_pixels.h:817
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_CUSTOM
TRANSFER_CHARACTERISTICS_CUSTOM.
Definition SDL3pp_pixels.h:1168
constexpr ArrayOrder ARRAYORDER_BGRA
BGRA.
Definition SDL3pp_pixels.h:239
constexpr ColorPrimaries COLOR_PRIMARIES_GENERIC_FILM
Generic film (color filters using Illuminant C)
Definition SDL3pp_pixels.h:1066
constexpr SDL_PixelFormat PIXELFORMAT_YV12
Planar mode: Y + V + U (3 planes)
Definition SDL3pp_pixels.h:918
constexpr PixelType PIXELTYPE_INDEX2
INDEX2.
Definition SDL3pp_pixels.h:161
constexpr ColorRange COLOR_RANGE_UNKNOWN
COLOR_RANGE_UNKNOWN.
Definition SDL3pp_pixels.h:1013
constexpr SDL_PixelFormat PIXELFORMAT_BGR24
BGR24.
Definition SDL3pp_pixels.h:828
constexpr ColorPrimaries COLOR_PRIMARIES_BT601
ITU-R BT.601-7 525, SMPTE 170M.
Definition SDL3pp_pixels.h:1057
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_LINEAR
TRANSFER_CHARACTERISTICS_LINEAR.
Definition SDL3pp_pixels.h:1129
constexpr PixelType PIXELTYPE_ARRAYU32
ARRAYU32.
Definition SDL3pp_pixels.h:155
constexpr SDL_PixelFormat PIXELFORMAT_BGRA32
BGRA32.
Definition SDL3pp_pixels.h:958
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_UNKNOWN
TRANSFER_CHARACTERISTICS_UNKNOWN.
Definition SDL3pp_pixels.h:1104
constexpr ArrayOrder ARRAYORDER_RGBA
RGBA.
Definition SDL3pp_pixels.h:233
constexpr SDL_PixelFormat PIXELFORMAT_BGR48
BGR48.
Definition SDL3pp_pixels.h:868
constexpr SDL_Colorspace COLORSPACE_SRGB_LINEAR
[object Object]
Definition SDL3pp_pixels.h:1551
constexpr ChromaLocation CHROMA_LOCATION_NONE
RGB, no chroma sampling.
Definition SDL3pp_pixels.h:1251
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT2020_10BIT
ITU-R BT2020 for 10-bit system.
Definition SDL3pp_pixels.h:1147
constexpr ChromaLocation CHROMA_LOCATION_CENTER
In JPEG/JFIF, H.261, and MPEG-1, Cb and Cr are taken at the center of the 2x2 square.
Definition SDL3pp_pixels.h:1266
constexpr SDL_Colorspace COLORSPACE_BT709_LIMITED
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709.
Definition SDL3pp_pixels.h:1576
constexpr SDL_PixelFormat PIXELFORMAT_BGR565
BGR565.
Definition SDL3pp_pixels.h:823
constexpr SDL_PixelFormat PIXELFORMAT_XRGB4444
XRGB4444.
Definition SDL3pp_pixels.h:784
constexpr SDL_PixelFormat PIXELFORMAT_BGRA4444
BGRA4444.
Definition SDL3pp_pixels.h:805
constexpr PackedOrder PACKEDORDER_NONE
NONE.
Definition SDL3pp_pixels.h:197
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_GAMMA28
ITU-R BT.470-6 System B, G.
Definition SDL3pp_pixels.h:1119
SDL_BitmapOrder BitmapOrder
Bitmap pixel order, high bit -> low bit.
Definition SDL3pp_pixels.h:175
constexpr ArrayOrder ARRAYORDER_BGR
BGR.
Definition SDL3pp_pixels.h:237
void GetRGBA(Uint32 pixel, const PixelFormatDetails &format, const PaletteBase &palette, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
Get RGBA values from a pixel in the specified format.
Definition SDL3pp_pixels.h:2281
void GetRGB(Uint32 pixel, const PixelFormatDetails &format, const PaletteBase &palette, Uint8 *r, Uint8 *g, Uint8 *b)
Get RGB values from a pixel in the specified format.
Definition SDL3pp_pixels.h:2241
constexpr SDL_PixelFormat PIXELFORMAT_BGR96_FLOAT
BGR96_FLOAT.
Definition SDL3pp_pixels.h:903
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT709
Rec. ITU-R BT.709-6 / ITU-R BT1361.
Definition SDL3pp_pixels.h:1107
constexpr PixelType PIXELTYPE_INDEX1
INDEX1.
Definition SDL3pp_pixels.h:139
SDL_PixelType PixelType
Pixel type.
Definition SDL3pp_pixels.h:135
constexpr ArrayOrder ARRAYORDER_ARGB
ARGB.
Definition SDL3pp_pixels.h:235
constexpr PackedOrder PACKEDORDER_XRGB
XRGB.
Definition SDL3pp_pixels.h:199
constexpr PackedLayout PACKEDLAYOUT_8888
8888
Definition SDL3pp_pixels.h:269
constexpr SDL_PixelFormat PIXELFORMAT_INDEX1MSB
INDEX1MSB.
Definition SDL3pp_pixels.h:763
constexpr SDL_PixelFormat PIXELFORMAT_RGBX8888
RGBX8888.
Definition SDL3pp_pixels.h:833
constexpr SDL_PixelFormat PIXELFORMAT_ARGB2101010
ARGB2101010.
Definition SDL3pp_pixels.h:860
constexpr SDL_PixelFormat PIXELFORMAT_ABGR2101010
ABGR2101010.
Definition SDL3pp_pixels.h:863
constexpr SDL_PixelFormat PIXELFORMAT_XRGB8888
XRGB8888.
Definition SDL3pp_pixels.h:830
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_LOG100_SQRT10
TRANSFER_CHARACTERISTICS_LOG100_SQRT10.
Definition SDL3pp_pixels.h:1135
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_IEC61966
IEC 61966-2-4.
Definition SDL3pp_pixels.h:1138
constexpr PackedOrder PACKEDORDER_BGRX
BGRX.
Definition SDL3pp_pixels.h:209
constexpr SDL_PixelFormat PIXELFORMAT_RGBA32
RGBA32.
Definition SDL3pp_pixels.h:952
constexpr PackedOrder PACKEDORDER_XBGR
XBGR.
Definition SDL3pp_pixels.h:207
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_IDENTITY
MATRIX_COEFFICIENTS_IDENTITY.
Definition SDL3pp_pixels.h:1187
constexpr PixelType PIXELTYPE_INDEX8
INDEX8.
Definition SDL3pp_pixels.h:143
the main namespace where all SDL3pp public functions and types live
Definition SDL3pp_assert.h:7
A structure that represents a color as RGBA components.
Definition SDL3pp_pixels.h:1621
constexpr Uint8 GetR() const
Get the red component from the color.
Definition SDL3pp_pixels.h:1672
constexpr Uint8 GetB() const
Get the blue component from the color.
Definition SDL3pp_pixels.h:1712
constexpr Color & SetG(Uint8 newG)
Set the green component from the color.
Definition SDL3pp_pixels.h:1700
Uint32 Map(const PixelFormatDetails &format, PaletteRef palette) const
Map an RGBA quadruple to a pixel value for a given pixel format.
Definition SDL3pp_pixels.h:2296
constexpr auto operator<=>(const SDL_Color &color) const
Compares with the underlying type.
Definition SDL3pp_pixels.h:1662
constexpr Color(Uint8 r, Uint8 g, Uint8 b, Uint8 a=255)
Constructs from its fields.
Definition SDL3pp_pixels.h:1640
constexpr Color & SetR(Uint8 newR)
Set the red component from the color.
Definition SDL3pp_pixels.h:1680
constexpr Uint8 GetG() const
Get the green component from the color.
Definition SDL3pp_pixels.h:1692
constexpr auto operator<=>(const Color &other) const
Default comparison operator.
Definition SDL3pp_pixels.h:1648
static Color Get(Uint32 pixel, const PixelFormatDetails &format, PaletteRef palette)
Get RGBA values from a pixel in the specified format.
Definition SDL3pp_pixels.h:2302
constexpr Color(const SDL_Color &color={})
Wraps Color.
Definition SDL3pp_pixels.h:1627
constexpr Color & SetA(Uint8 newA)
Set the alpha component from the color.
Definition SDL3pp_pixels.h:1740
constexpr Color & SetB(Uint8 newB)
Set the blue component from the color.
Definition SDL3pp_pixels.h:1720
constexpr Uint8 GetA() const
Get the alpha component from the color.
Definition SDL3pp_pixels.h:1732
The bits of this structure can be directly reinterpreted as a float-packed color which uses the PIXEL...
Definition SDL3pp_pixels.h:1816
constexpr FColor & SetG(float newG)
Set the green component from the color.
Definition SDL3pp_pixels.h:1895
constexpr float GetA() const
Get the alpha component from the color.
Definition SDL3pp_pixels.h:1927
constexpr FColor(float r, float g, float b, float a=1)
Constructs from its fields.
Definition SDL3pp_pixels.h:1835
constexpr float GetR() const
Get the red component from the color.
Definition SDL3pp_pixels.h:1867
constexpr float GetG() const
Get the green component from the color.
Definition SDL3pp_pixels.h:1887
constexpr auto operator<=>(const FColor &other) const
Default comparison operator.
Definition SDL3pp_pixels.h:1843
constexpr FColor & SetR(float newR)
Set the red component from the color.
Definition SDL3pp_pixels.h:1875
constexpr auto operator<=>(const SDL_FColor &color) const
Compares with the underlying type.
Definition SDL3pp_pixels.h:1857
constexpr FColor & SetA(float newA)
Set the alpha component from the color.
Definition SDL3pp_pixels.h:1935
constexpr FColor & SetB(float newB)
Set the blue component from the color.
Definition SDL3pp_pixels.h:1915
constexpr FColor(const SDL_FColor &color={})
Wraps FColor.
Definition SDL3pp_pixels.h:1822
constexpr float GetB() const
Get the blue component from the color.
Definition SDL3pp_pixels.h:1907
A set of indexed colors representing a palette.
Definition SDL3pp_pixels.h:1954
bool SetColors(SpanRef< const SDL_Color > colors, int firstcolor=0)
Set a range of colors in a palette.
Definition SDL3pp_pixels.h:2013
constexpr int GetSize() const
Return the number of colors.
Definition SDL3pp_pixels.h:1979
PaletteBase(int ncolors)
Create a palette structure with the specified number of color entries.
Definition SDL3pp_pixels.h:1973
constexpr Color operator[](int index) const
Get the index color.
Definition SDL3pp_pixels.h:1982
void SetColors(std::span< const SDL_Color > colors, int firstcolor=0)
Set a range of colors in a palette.
Definition SDL3pp_pixels.h:1996
Handle to a non owned palette.
Definition SDL3pp_pixels.h:2030
void reset(SDL_Palette *newResource={})
Free a palette created with PaletteBase.PaletteBase().
Definition SDL3pp_pixels.h:2075
constexpr PaletteRef(PaletteRef &&other)
Move constructor.
Definition SDL3pp_pixels.h:2044
constexpr ~PaletteRef()=default
Default constructor.
PaletteRef & operator=(PaletteRef other)
Assignment operator.
Definition SDL3pp_pixels.h:2057
constexpr PaletteRef(const PaletteRef &other)
Copy constructor.
Definition SDL3pp_pixels.h:2036
Handle to an owned palette.
Definition SDL3pp_pixels.h:2090
constexpr Palette(SDL_Palette *resource={})
Constructs from the underlying resource.
Definition SDL3pp_pixels.h:2096
Palette & operator=(Palette other)
Assignment operator.
Definition SDL3pp_pixels.h:2116
constexpr Palette(Palette &&other)=default
Move constructor.
~Palette()
Frees up resource when object goes out of scope.
Definition SDL3pp_pixels.h:2111