1#ifndef SDL3PP_PIXELS_H_
2#define SDL3PP_PIXELS_H_
4#include <SDL3/SDL_pixels.h>
5#include "SDL3pp_error.h"
6#include "SDL3pp_spanRef.h"
7#include "SDL3pp_version.h"
121 constexpr explicit operator bool()
const {
return !!
value; }
157 constexpr explicit operator bool()
const {
return !!
value; }
361 SDL_PACKEDLAYOUT_2101010;
364 SDL_PACKEDLAYOUT_1010102;
457 SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes)))
612 constexpr bool IsArray()
const;
623 constexpr bool Is10Bit()
const;
634 constexpr bool IsFloat()
const;
645 constexpr bool IsAlpha()
const;
771 Color
Get(
Uint32 pixel, PaletteConstParam palette = {})
const;
775 SDL_PIXELFORMAT_UNKNOWN;
778 SDL_PIXELFORMAT_INDEX1LSB;
781 SDL_PIXELFORMAT_INDEX1MSB;
784 SDL_PIXELFORMAT_INDEX2LSB;
787 SDL_PIXELFORMAT_INDEX2MSB;
790 SDL_PIXELFORMAT_INDEX4LSB;
793 SDL_PIXELFORMAT_INDEX4MSB;
800 SDL_PIXELFORMAT_XRGB4444;
803 SDL_PIXELFORMAT_XBGR4444;
806 SDL_PIXELFORMAT_XRGB1555;
809 SDL_PIXELFORMAT_XBGR1555;
812 SDL_PIXELFORMAT_ARGB4444;
815 SDL_PIXELFORMAT_RGBA4444;
818 SDL_PIXELFORMAT_ABGR4444;
821 SDL_PIXELFORMAT_BGRA4444;
824 SDL_PIXELFORMAT_ARGB1555;
827 SDL_PIXELFORMAT_RGBA5551;
830 SDL_PIXELFORMAT_ABGR1555;
833 SDL_PIXELFORMAT_BGRA5551;
844 SDL_PIXELFORMAT_XRGB8888;
847 SDL_PIXELFORMAT_RGBX8888;
850 SDL_PIXELFORMAT_XBGR8888;
853 SDL_PIXELFORMAT_BGRX8888;
856 SDL_PIXELFORMAT_ARGB8888;
859 SDL_PIXELFORMAT_RGBA8888;
862 SDL_PIXELFORMAT_ABGR8888;
865 SDL_PIXELFORMAT_BGRA8888;
868 SDL_PIXELFORMAT_XRGB2101010;
871 SDL_PIXELFORMAT_XBGR2101010;
874 SDL_PIXELFORMAT_ARGB2101010;
877 SDL_PIXELFORMAT_ABGR2101010;
892 SDL_PIXELFORMAT_RGB48_FLOAT;
895 SDL_PIXELFORMAT_BGR48_FLOAT;
898 SDL_PIXELFORMAT_RGBA64_FLOAT;
901 SDL_PIXELFORMAT_ARGB64_FLOAT;
904 SDL_PIXELFORMAT_BGRA64_FLOAT;
907 SDL_PIXELFORMAT_ABGR64_FLOAT;
910 SDL_PIXELFORMAT_RGB96_FLOAT;
913 SDL_PIXELFORMAT_BGR96_FLOAT;
916 SDL_PIXELFORMAT_RGBA128_FLOAT;
919 SDL_PIXELFORMAT_ARGB128_FLOAT;
922 SDL_PIXELFORMAT_BGRA128_FLOAT;
925 SDL_PIXELFORMAT_ABGR128_FLOAT;
928 SDL_PIXELFORMAT_YV12;
931 SDL_PIXELFORMAT_IYUV;
934 SDL_PIXELFORMAT_YUY2;
937 SDL_PIXELFORMAT_UYVY;
940 SDL_PIXELFORMAT_YVYU;
943 SDL_PIXELFORMAT_NV12;
946 SDL_PIXELFORMAT_NV21;
949 SDL_PIXELFORMAT_P010;
952 SDL_PIXELFORMAT_EXTERNAL_OES;
954#if SDL_VERSION_ATLEAST(3, 2, 10)
999 return SDL_DEFINE_PIXELFOURCC(A, B, C, D);
1031 return PixelFormat(type, order, layout, bits, bytes);
1049 return SDL_PIXELFLAG(format);
1071 return PixelType(SDL_PIXELTYPE(format));
1094 return SDL_PIXELORDER(format);
1145 return SDL_BITSPERPIXEL(format);
1173 return SDL_BYTESPERPIXEL(format);
1196 return SDL_ISPIXELFORMAT_INDEXED(format);
1219 return SDL_ISPIXELFORMAT_PACKED(format);
1242 return SDL_ISPIXELFORMAT_ARRAY(format);
1265 return SDL_ISPIXELFORMAT_10BIT(format);
1288 return SDL_ISPIXELFORMAT_FLOAT(format);
1316 return SDL_ISPIXELFORMAT_ALPHA(format);
1341 return SDL_ISPIXELFORMAT_FOURCC(format);
1357 SDL_COLOR_TYPE_UNKNOWN;
1362 SDL_COLOR_TYPE_YCBCR;
1380 SDL_COLOR_RANGE_UNKNOWN;
1406 SDL_COLOR_PRIMARIES_UNKNOWN;
1409 SDL_COLOR_PRIMARIES_BT709;
1412 SDL_COLOR_PRIMARIES_UNSPECIFIED;
1415 SDL_COLOR_PRIMARIES_BT470M;
1418 SDL_COLOR_PRIMARIES_BT470BG;
1422 SDL_COLOR_PRIMARIES_BT601;
1426 SDL_COLOR_PRIMARIES_SMPTE240;
1429 SDL_COLOR_PRIMARIES_GENERIC_FILM;
1433 SDL_COLOR_PRIMARIES_BT2020;
1436 SDL_COLOR_PRIMARIES_XYZ;
1439 SDL_COLOR_PRIMARIES_SMPTE431;
1442 SDL_COLOR_PRIMARIES_SMPTE432;
1445 SDL_COLOR_PRIMARIES_EBU3213;
1448 SDL_COLOR_PRIMARIES_CUSTOM;
1467 SDL_TRANSFER_CHARACTERISTICS_UNKNOWN;
1470 SDL_TRANSFER_CHARACTERISTICS_BT709;
1473 SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED;
1477 SDL_TRANSFER_CHARACTERISTICS_GAMMA22;
1480 SDL_TRANSFER_CHARACTERISTICS_GAMMA28;
1483 SDL_TRANSFER_CHARACTERISTICS_BT601;
1487 SDL_TRANSFER_CHARACTERISTICS_SMPTE240;
1490 SDL_TRANSFER_CHARACTERISTICS_LINEAR;
1493 SDL_TRANSFER_CHARACTERISTICS_LOG100;
1496 SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10;
1499 SDL_TRANSFER_CHARACTERISTICS_IEC61966;
1502 SDL_TRANSFER_CHARACTERISTICS_BT1361;
1505 SDL_TRANSFER_CHARACTERISTICS_SRGB;
1508 SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT;
1511 SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT;
1514 SDL_TRANSFER_CHARACTERISTICS_PQ;
1518 SDL_TRANSFER_CHARACTERISTICS_SMPTE428;
1521 SDL_TRANSFER_CHARACTERISTICS_HLG;
1525 SDL_TRANSFER_CHARACTERISTICS_CUSTOM;
1544 SDL_MATRIX_COEFFICIENTS_IDENTITY;
1547 SDL_MATRIX_COEFFICIENTS_BT709;
1550 SDL_MATRIX_COEFFICIENTS_UNSPECIFIED;
1553 SDL_MATRIX_COEFFICIENTS_FCC;
1560 SDL_MATRIX_COEFFICIENTS_BT470BG;
1563 SDL_MATRIX_COEFFICIENTS_BT601;
1566 SDL_MATRIX_COEFFICIENTS_SMPTE240;
1569 SDL_MATRIX_COEFFICIENTS_YCGCO;
1572 SDL_MATRIX_COEFFICIENTS_BT2020_NCL;
1576 SDL_MATRIX_COEFFICIENTS_BT2020_CL;
1579 SDL_MATRIX_COEFFICIENTS_SMPTE2085;
1582 SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL;
1585 SDL_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL;
1588 SDL_MATRIX_COEFFICIENTS_ICTCP;
1591 SDL_MATRIX_COEFFICIENTS_CUSTOM;
1608 SDL_CHROMA_LOCATION_NONE;
1922 return Colorspace(type, range, primaries, transfer, matrix, chroma);
1937 return SDL_COLORSPACETYPE(cspace);
1957 return SDL_COLORSPACERANGE(cspace);
1977 return SDL_COLORSPACECHROMA(cspace);
1997 return SDL_COLORSPACEPRIMARIES(cspace);
2017 return SDL_COLORSPACETRANSFER(cspace);
2037 return SDL_COLORSPACEMATRIX(cspace);
2061 return SDL_ISCOLORSPACE_MATRIX_BT601(cspace);
2081 return SDL_ISCOLORSPACE_MATRIX_BT709(cspace);
2101 return SDL_ISCOLORSPACE_MATRIX_BT2020_NCL(cspace);
2121 return SDL_ISCOLORSPACE_LIMITED_RANGE(cspace);
2141 return SDL_ISCOLORSPACE_FULL_RANGE(cspace);
2152 return lhs.r == rhs.r && lhs.g == rhs.g && lhs.b == rhs.b && lhs.a == rhs.a;
2158 return lhs.r == rhs.r && lhs.g == rhs.g && lhs.b == rhs.b && lhs.a == rhs.a;
2164 if (lhs.r != rhs.r)
return lhs.r <=> rhs.r;
2165 if (lhs.g != rhs.g)
return lhs.g <=> rhs.g;
2166 if (lhs.b != rhs.b)
return lhs.b <=> rhs.b;
2167 return lhs.a <=> rhs.a;
2173 if (lhs.r != rhs.r)
return lhs.r <=> rhs.r;
2174 if (lhs.g != rhs.g)
return lhs.g <=> rhs.g;
2175 if (lhs.b != rhs.b)
return lhs.b <=> rhs.b;
2176 return lhs.a <=> rhs.a;
2384 constexpr FColor(
float r,
float g,
float b,
float a = 1) noexcept
2394 constexpr float GetR() const noexcept {
return r; }
2414 constexpr float GetG() const noexcept {
return g; }
2434 constexpr float GetB() const noexcept {
return b; }
2454 constexpr float GetA() const noexcept {
return a; }
2484 constexpr Palette(std::nullptr_t =
nullptr) noexcept
2497 : m_resource(resource)
2503 : m_resource(other.m_resource)
2505 ++m_resource->refcount;
2532 : m_resource(
CheckError(SDL_CreatePalette(ncolors)))
2546 ++resource.
value->refcount;
2564 std::swap(m_resource, other.m_resource);
2577 auto r = m_resource;
2578 m_resource =
nullptr;
2586 constexpr explicit operator bool() const noexcept {
return !!m_resource; }
2607 constexpr int size()
const {
return m_resource->ncolors; }
2612 return m_resource->colors[index];
2651 :
Palette(std::move(resource))
2669 return SDL_GetPixelFormatName(format);
2702 SDL_GetMasksForPixelFormat(format, bpp, Rmask, Gmask, Bmask, Amask));
2739 return SDL_GetPixelFormatForMasks(bpp, Rmask, Gmask, Bmask, Amask);
2768 return *
CheckError(SDL_GetPixelFormatDetails(format));
2778 return GetDetails();
2818 SDL_SetPaletteColors(palette, colors.
data(), firstcolor, colors.
size()));
2883 return SDL_MapRGB(&format, palette, r, g, b);
2930 return SDL_MapRGBA(&format, palette, r, g, b, a);
2970 return SDL_MapRGBA(&format, palette, c.r, c.g, c.b, c.a);
2976 return MapColor(format, *
this, palette);
3016 SDL_GetRGB(pixelvalue, &format, palette, r, g, b);
3056 SDL_GetRGBA(pixelvalue, &format, palette, r, g, b, a);
3091 GetRGBA(pixel, format, palette, &c.r, &c.g, &c.b, &c.a);
3099 return GetColor(pixel, format, palette);
Colorspace definitions.
Definition: SDL3pp_pixels.h:1657
constexpr Colorspace(ColorType type, ColorRange range, ColorPrimaries primaries, TransferCharacteristics transfer, MatrixCoefficients matrix, ChromaLocation chroma)
Define custom Colorspace formats.
Definition: SDL3pp_pixels.h:1701
constexpr Colorspace(ColorspaceRaw cspace={}) noexcept
Wraps Colorspace.
Definition: SDL3pp_pixels.h:1666
A set of indexed colors representing a palette.
Definition: SDL3pp_pixels.h:2479
constexpr Palette(Palette &&other) noexcept
Move constructor.
Definition: SDL3pp_pixels.h:2509
static constexpr Palette Borrow(PaletteParam resource)
Safely borrows the from PaletteParam.
Definition: SDL3pp_pixels.h:2543
constexpr auto operator<=>(const Palette &other) const noexcept=default
Comparison.
constexpr Palette(std::nullptr_t=nullptr) noexcept
Default ctor.
Definition: SDL3pp_pixels.h:2484
constexpr PaletteRaw get() const noexcept
Retrieves underlying PaletteRaw.
Definition: SDL3pp_pixels.h:2572
constexpr Palette(const Palette &other)
Copy constructor.
Definition: SDL3pp_pixels.h:2502
~Palette()
Destructor.
Definition: SDL3pp_pixels.h:2559
constexpr Palette & operator=(Palette &&other) noexcept
Assignment operator.
Definition: SDL3pp_pixels.h:2562
constexpr Palette & operator=(const Palette &other) noexcept=default
Assignment operator.
constexpr PaletteRaw operator->() noexcept
member access to underlying PaletteRaw.
Definition: SDL3pp_pixels.h:2556
constexpr int size() const
Returns number of colors in the palette.
Definition: SDL3pp_pixels.h:2607
constexpr ColorRaw operator[](int index) const
Access specific pallete index.
Definition: SDL3pp_pixels.h:2610
constexpr PaletteRaw release() noexcept
Retrieves underlying PaletteRaw and clear this.
Definition: SDL3pp_pixels.h:2575
Palette(int ncolors)
Create a palette structure with the specified number of color entries.
Definition: SDL3pp_pixels.h:2531
constexpr Palette(const PaletteRaw resource) noexcept
Constructs from PaletteParam.
Definition: SDL3pp_pixels.h:2496
constexpr const PaletteRaw operator->() const noexcept
member access to underlying PaletteRaw.
Definition: SDL3pp_pixels.h:2553
constexpr const ColorRaw * data() const
Access specific pallete colors.
Definition: SDL3pp_pixels.h:2604
span-like for empty-derived structs
Definition: SDL3pp_spanRef.h:24
constexpr T * data() const
Retrieves contained data.
Definition: SDL3pp_spanRef.h:75
constexpr size_t size() const
Retrieves contained size.
Definition: SDL3pp_spanRef.h:69
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition: SDL3pp_error.h:197
Uint32 MapColor(const PixelFormatDetails &format, ColorRaw c, PaletteConstParam palette={})
Map an RGBA quadruple to a pixel value for a given pixel format.
Definition: SDL3pp_pixels.h:2966
constexpr PixelFormat PIXELFORMAT_ABGR1555
ABGR1555.
Definition: SDL3pp_pixels.h:829
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_FCC
US FCC Title 47.
Definition: SDL3pp_pixels.h:1552
constexpr bool IsMatrixBT709() const
Determine if an Colorspace uses BT709 matrix coefficients.
Definition: SDL3pp_pixels.h:2084
constexpr PixelFormat PIXELFORMAT_IYUV
Planar mode: Y + U + V (3 planes)
Definition: SDL3pp_pixels.h:930
constexpr bool IsPixelFormatArray(PixelFormatRaw format)
A macro to determine if an PixelFormat is an array format.
Definition: SDL3pp_pixels.h:1240
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_SMPTE240
SMPTE 240M.
Definition: SDL3pp_pixels.h:1565
constexpr ColorPrimaries COLOR_PRIMARIES_UNSPECIFIED
COLOR_PRIMARIES_UNSPECIFIED.
Definition: SDL3pp_pixels.h:1411
constexpr ColorPrimaries COLOR_PRIMARIES_BT709
ITU-R BT.709-6.
Definition: SDL3pp_pixels.h:1408
constexpr PixelFormat PIXELFORMAT_BGRA64
BGRA64.
Definition: SDL3pp_pixels.h:887
constexpr PixelType PIXELTYPE_PACKED8
PACKED8.
Definition: SDL3pp_pixels.h:234
void DestroyPalette(PaletteRaw palette)
Free a palette created with Palette.Palette().
Definition: SDL3pp_pixels.h:2838
constexpr PackedLayout PACKEDLAYOUT_1555
1555
Definition: SDL3pp_pixels.h:352
constexpr PixelFormat PIXELFORMAT_RGB96_FLOAT
RGB96_FLOAT.
Definition: SDL3pp_pixels.h:909
constexpr ChromaLocation ColorspaceChroma(ColorspaceRaw cspace)
A macro to retrieve the chroma sample location of an Colorspace.
Definition: SDL3pp_pixels.h:1975
Color Get(Uint32 pixel, PaletteConstParam palette={}) const
Get RGBA values from a pixel in the specified format.
Definition: SDL3pp_pixels.h:3102
constexpr PixelFormat PIXELFORMAT_P010
Planar mode: Y + U/V interleaved (2 planes)
Definition: SDL3pp_pixels.h:948
constexpr int PixelFormatOrder(PixelFormatRaw format)
A macro to retrieve the order of an PixelFormat.
Definition: SDL3pp_pixels.h:1092
const char * GetName() const
Get the human readable name of a pixel format.
Definition: SDL3pp_pixels.h:2672
constexpr PixelFormat PIXELFORMAT_XRGB32
XRGB32.
Definition: SDL3pp_pixels.h:970
constexpr ColorPrimaries ColorspacePrimaries(ColorspaceRaw cspace)
A macro to retrieve the primaries of an Colorspace.
Definition: SDL3pp_pixels.h:1995
constexpr ColorType GetType() const
Retrieve the type of a Colorspace.
Definition: SDL3pp_pixels.h:1940
constexpr PixelType PIXELTYPE_ARRAYF32
ARRAYF32.
Definition: SDL3pp_pixels.h:248
constexpr Uint8 GetFlags() const
Retrieve the flags of an PixelFormat.
Definition: SDL3pp_pixels.h:1052
constexpr bool IsPixelFormat10Bit(PixelFormatRaw format)
A macro to determine if an PixelFormat is a 10-bit format.
Definition: SDL3pp_pixels.h:1263
constexpr PixelFormat PIXELFORMAT_MJPG
Motion JPEG.
Definition: SDL3pp_pixels.h:956
constexpr ColorRange COLOR_RANGE_LIMITED
Narrow range, e.g.
Definition: SDL3pp_pixels.h:1385
constexpr ColorType ColorspaceType(ColorspaceRaw cspace)
A macro to retrieve the type of an Colorspace.
Definition: SDL3pp_pixels.h:1935
constexpr bool IsColorspaceLimitedRange(ColorspaceRaw cspace)
A macro to determine if an Colorspace has a limited range.
Definition: SDL3pp_pixels.h:2119
constexpr PixelFormat PIXELFORMAT_XRGB1555
XRGB1555.
Definition: SDL3pp_pixels.h:805
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_SMPTE240
SMPTE ST 240M.
Definition: SDL3pp_pixels.h:1486
constexpr PackedLayout PACKEDLAYOUT_1010102
1010102
Definition: SDL3pp_pixels.h:363
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT2020_12BIT
ITU-R BT2020 for 12-bit system.
Definition: SDL3pp_pixels.h:1510
constexpr ArrayOrder ARRAYORDER_RGB
RGB.
Definition: SDL3pp_pixels.h:320
SDL_PackedLayout PackedLayout
Packed component layout.
Definition: SDL3pp_pixels.h:344
SDL_ArrayOrder ArrayOrder
Array component order, low byte -> high byte.
Definition: SDL3pp_pixels.h:316
constexpr PixelFormat PIXELFORMAT_EXTERNAL_OES
Android video texture format.
Definition: SDL3pp_pixels.h:951
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_UNSPECIFIED
MATRIX_COEFFICIENTS_UNSPECIFIED.
Definition: SDL3pp_pixels.h:1549
constexpr Uint8 PixelFormatFlags(PixelFormatRaw format)
Retrieve the flags of an PixelFormat.
Definition: SDL3pp_pixels.h:1047
constexpr PixelFormat PIXELFORMAT_INDEX1MSB
INDEX1MSB.
Definition: SDL3pp_pixels.h:780
constexpr PixelType PIXELTYPE_PACKED32
PACKED32.
Definition: SDL3pp_pixels.h:238
constexpr PixelType PIXELTYPE_ARRAYF16
ARRAYF16.
Definition: SDL3pp_pixels.h:246
constexpr PixelFormat PIXELFORMAT_ABGR8888
ABGR8888.
Definition: SDL3pp_pixels.h:861
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:1403
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_SMPTE2085
SMPTE ST 2085.
Definition: SDL3pp_pixels.h:1578
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_ICTCP
ITU-R BT.2100-0 ICTCP.
Definition: SDL3pp_pixels.h:1587
void Destroy()
Free a palette created with Palette.Palette().
Definition: SDL3pp_pixels.h:2840
constexpr PixelFormat PIXELFORMAT_NV21
Planar mode: Y + V/U interleaved (2 planes)
Definition: SDL3pp_pixels.h:945
SDL_ChromaLocation ChromaLocation
Colorspace chroma sample location.
Definition: SDL3pp_pixels.h:1605
constexpr bool IsPixelFormatPacked(PixelFormatRaw format)
A macro to determine if an PixelFormat is a packed format.
Definition: SDL3pp_pixels.h:1217
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_LOG100
TRANSFER_CHARACTERISTICS_LOG100.
Definition: SDL3pp_pixels.h:1492
constexpr ColorType COLOR_TYPE_YCBCR
COLOR_TYPE_YCBCR.
Definition: SDL3pp_pixels.h:1361
Uint32 MapRGBA(const PixelFormatDetails &format, Uint8 r, Uint8 g, Uint8 b, Uint8 a, PaletteConstParam palette={})
Map an RGBA quadruple to a pixel value for a given pixel format.
Definition: SDL3pp_pixels.h:2923
constexpr PixelFormat PIXELFORMAT_ARGB2101010
ARGB2101010.
Definition: SDL3pp_pixels.h:873
constexpr bool IsPixelFormatAlpha(PixelFormatRaw format)
A macro to determine if an PixelFormat has an alpha channel.
Definition: SDL3pp_pixels.h:1314
constexpr PixelFormat PIXELFORMAT_INDEX4MSB
INDEX4MSB.
Definition: SDL3pp_pixels.h:792
constexpr int PixelFormatBytesPerPixel(PixelFormatRaw format)
A macro to determine an PixelFormat's bytes per pixel.
Definition: SDL3pp_pixels.h:1171
constexpr PixelFormat PIXELFORMAT_UNKNOWN
UNKNOWN.
Definition: SDL3pp_pixels.h:774
constexpr ColorPrimaries COLOR_PRIMARIES_UNKNOWN
COLOR_PRIMARIES_UNKNOWN.
Definition: SDL3pp_pixels.h:1405
constexpr PixelFormat PIXELFORMAT_ABGR4444
ABGR4444.
Definition: SDL3pp_pixels.h:817
constexpr PixelFormat PIXELFORMAT_BGRA64_FLOAT
BGRA64_FLOAT.
Definition: SDL3pp_pixels.h:903
constexpr BitmapOrder BITMAPORDER_1234
1234
Definition: SDL3pp_pixels.h:270
constexpr PixelFormat PIXELFORMAT_ABGR32
ABGR32.
Definition: SDL3pp_pixels.h:966
constexpr PixelFormat PIXELFORMAT_BGRA128_FLOAT
BGRA128_FLOAT.
Definition: SDL3pp_pixels.h:921
Uint32 Map(const PixelFormatDetails &format, PaletteConstParam palette) const
Map an RGBA quadruple to a pixel value for a given pixel format.
Definition: SDL3pp_pixels.h:2973
constexpr PixelFormat PIXELFORMAT_XBGR2101010
XBGR2101010.
Definition: SDL3pp_pixels.h:870
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT601
SMPTE ST 170M / ITU-R BT.601-7 525 or 625.
Definition: SDL3pp_pixels.h:1482
constexpr ColorRange ColorspaceRange(ColorspaceRaw cspace)
A macro to retrieve the range of an Colorspace.
Definition: SDL3pp_pixels.h:1955
constexpr bool IsColorspaceFullRange(ColorspaceRaw cspace)
A macro to determine if an Colorspace has a full range.
Definition: SDL3pp_pixels.h:2139
constexpr PackedLayout PACKEDLAYOUT_565
565
Definition: SDL3pp_pixels.h:356
void GetRGB(Uint32 pixelvalue, const PixelFormatDetails &format, PaletteConstParam palette, Uint8 *r, Uint8 *g, Uint8 *b)
Get RGB values from a pixel in the specified format.
Definition: SDL3pp_pixels.h:3009
const char * GetPixelFormatName(PixelFormatRaw format)
Get the human readable name of a pixel format.
Definition: SDL3pp_pixels.h:2667
constexpr PackedOrder PACKEDORDER_BGRA
BGRA.
Definition: SDL3pp_pixels.h:302
constexpr PixelFormat PIXELFORMAT_XRGB8888
XRGB8888.
Definition: SDL3pp_pixels.h:843
constexpr PixelFormat PIXELFORMAT_BGR96_FLOAT
BGR96_FLOAT.
Definition: SDL3pp_pixels.h:912
constexpr bool Is10Bit() const
Determine if this is a 10-bit format.
Definition: SDL3pp_pixels.h:1268
SDL_Colorspace ColorspaceRaw
Alias to raw representation for Colorspace.
Definition: SDL3pp_pixels.h:77
constexpr bool IsIndexed() const
Determine if this is an indexed format.
Definition: SDL3pp_pixels.h:1199
constexpr PixelFormat PIXELFORMAT_INDEX8
INDEX8.
Definition: SDL3pp_pixels.h:795
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL
MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL.
Definition: SDL3pp_pixels.h:1584
constexpr MatrixCoefficients ColorspaceMatrix(ColorspaceRaw cspace)
A macro to retrieve the matrix coefficients of an Colorspace.
Definition: SDL3pp_pixels.h:2035
constexpr PixelFormat PIXELFORMAT_INDEX1LSB
INDEX1LSB.
Definition: SDL3pp_pixels.h:777
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_SMPTE428
SMPTE ST 428-1.
Definition: SDL3pp_pixels.h:1517
constexpr TransferCharacteristics GetTransfer() const
Retrieve the transfer characteristics of an Colorspace.
Definition: SDL3pp_pixels.h:2020
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:1629
constexpr ChromaLocation GetChroma() const
Retrieve the chroma sample location of an Colorspace.
Definition: SDL3pp_pixels.h:1980
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_GAMMA22
ITU-R BT.470-6 System M / ITU-R BT1700 625 PAL & SECAM.
Definition: SDL3pp_pixels.h:1476
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT2020_NCL
ITU-R BT.2020-2 non-constant luminance.
Definition: SDL3pp_pixels.h:1571
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:1559
SDL_TransferCharacteristics TransferCharacteristics
Colorspace transfer characteristics.
Definition: SDL3pp_pixels.h:1464
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_SRGB
IEC 61966-2-1 (sRGB or sYCC)
Definition: SDL3pp_pixels.h:1504
constexpr Colorspace DefineColorspace(ColorType type, ColorRange range, ColorPrimaries primaries, TransferCharacteristics transfer, MatrixCoefficients matrix, ChromaLocation chroma)
A macro for defining custom Colorspace formats.
Definition: SDL3pp_pixels.h:1915
constexpr PixelFormat PIXELFORMAT_BGRA8888
BGRA8888.
Definition: SDL3pp_pixels.h:864
constexpr PixelFormat PIXELFORMAT_RGBX8888
RGBX8888.
Definition: SDL3pp_pixels.h:846
constexpr PixelFormat PIXELFORMAT_YVYU
Packed mode: Y0+V0+Y1+U0 (1 plane)
Definition: SDL3pp_pixels.h:939
constexpr Uint8 ALPHA_TRANSPARENT
A fully transparent 8-bit alpha value.
Definition: SDL3pp_pixels.h:201
constexpr ColorPrimaries COLOR_PRIMARIES_BT470BG
ITU-R BT.470-6 System B, G / ITU-R BT.601-7 625.
Definition: SDL3pp_pixels.h:1417
constexpr ArrayOrder ARRAYORDER_NONE
NONE.
Definition: SDL3pp_pixels.h:318
constexpr PackedOrder PACKEDORDER_ARGB
ARGB.
Definition: SDL3pp_pixels.h:292
constexpr Uint8 ALPHA_OPAQUE
A fully opaque 8-bit alpha value.
Definition: SDL3pp_pixels.h:183
constexpr PackedLayout PixelFormatLayout(PixelFormatRaw format)
A macro to retrieve the layout of an PixelFormat.
Definition: SDL3pp_pixels.h:1115
constexpr PixelFormat PIXELFORMAT_RGB24
RGB24.
Definition: SDL3pp_pixels.h:839
constexpr ColorPrimaries GetPrimaries() const
Retrieve the primaries of an Colorspace.
Definition: SDL3pp_pixels.h:2000
constexpr bool operator==(ColorRaw lhs, ColorRaw rhs) noexcept
Comparison operator for Color.
Definition: SDL3pp_pixels.h:2150
constexpr Colorspace COLORSPACE_UNKNOWN
UNKNOWN.
Definition: SDL3pp_pixels.h:1845
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:1615
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT2020_CL
ITU-R BT.2020-2 constant luminance.
Definition: SDL3pp_pixels.h:1575
constexpr Colorspace COLORSPACE_BT601_FULL
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601.
Definition: SDL3pp_pixels.h:1863
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:2742
constexpr PixelFormat PIXELFORMAT_ARGB8888
ARGB8888.
Definition: SDL3pp_pixels.h:855
constexpr Colorspace COLORSPACE_SRGB_LINEAR
Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709.
Definition: SDL3pp_pixels.h:1851
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_HLG
ARIB STD-B67, known as "hybrid log-gamma" (HLG)
Definition: SDL3pp_pixels.h:1520
constexpr PackedLayout PACKEDLAYOUT_NONE
NONE.
Definition: SDL3pp_pixels.h:346
SDL_Palette * PaletteRaw
Alias to raw representation for Palette.
Definition: SDL3pp_pixels.h:98
constexpr PixelFormat PIXELFORMAT_ARGB128_FLOAT
ARGB128_FLOAT.
Definition: SDL3pp_pixels.h:918
constexpr PixelType PIXELTYPE_ARRAYU16
ARRAYU16.
Definition: SDL3pp_pixels.h:242
constexpr ColorType COLOR_TYPE_UNKNOWN
COLOR_TYPE_UNKNOWN.
Definition: SDL3pp_pixels.h:1356
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT709
ITU-R BT.709-6.
Definition: SDL3pp_pixels.h:1546
constexpr PixelFormat PIXELFORMAT_RGBX32
RGBX32.
Definition: SDL3pp_pixels.h:968
constexpr PackedOrder PACKEDORDER_RGBX
RGBX.
Definition: SDL3pp_pixels.h:290
constexpr Colorspace COLORSPACE_SRGB
Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709.
Definition: SDL3pp_pixels.h:1848
constexpr bool IsMatrixBT2020_NCL() const
Determine if an Colorspace uses BT2020_NCL matrix coefficients.
Definition: SDL3pp_pixels.h:2104
constexpr PackedLayout PACKEDLAYOUT_4444
4444
Definition: SDL3pp_pixels.h:350
constexpr PixelFormat PIXELFORMAT_RGBA5551
RGBA5551.
Definition: SDL3pp_pixels.h:826
constexpr float ALPHA_TRANSPARENT_FLOAT
A fully transparent floating point alpha value.
Definition: SDL3pp_pixels.h:210
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:1377
constexpr PixelFormat DefinePixelFormat(PixelType type, int order, PackedLayout layout, int bits, int bytes)
A macro for defining custom non-FourCC pixel formats.
Definition: SDL3pp_pixels.h:1025
constexpr PixelFormat PIXELFORMAT_XBGR8888
XBGR8888.
Definition: SDL3pp_pixels.h:849
constexpr PixelFormat PIXELFORMAT_BGR48
BGR48.
Definition: SDL3pp_pixels.h:881
constexpr PixelType PIXELTYPE_UNKNOWN
UNKNOWN.
Definition: SDL3pp_pixels.h:226
constexpr bool IsFloat() const
Determine if this is a floating point format.
Definition: SDL3pp_pixels.h:1291
constexpr Colorspace COLORSPACE_BT601_LIMITED
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601.
Definition: SDL3pp_pixels.h:1860
constexpr PixelFormat PIXELFORMAT_ARGB1555
ARGB1555.
Definition: SDL3pp_pixels.h:823
void SetColors(SpanRef< const ColorRaw > colors, int firstcolor=0)
Set a range of colors in a palette.
Definition: SDL3pp_pixels.h:2821
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_BT601
ITU-R BT.601-7 525.
Definition: SDL3pp_pixels.h:1562
constexpr ColorPrimaries COLOR_PRIMARIES_EBU3213
EBU Tech. 3213-E.
Definition: SDL3pp_pixels.h:1444
constexpr PackedOrder PACKEDORDER_ABGR
ABGR.
Definition: SDL3pp_pixels.h:300
constexpr bool IsMatrixBT601() const
Determine if a Colorspace uses BT601 (or BT470BG) matrix coefficients.
Definition: SDL3pp_pixels.h:2064
constexpr ColorPrimaries COLOR_PRIMARIES_SMPTE240
SMPTE 240M, functionally the same as COLOR_PRIMARIES_BT601.
Definition: SDL3pp_pixels.h:1425
constexpr Colorspace COLORSPACE_BT709_LIMITED
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709.
Definition: SDL3pp_pixels.h:1866
constexpr BitmapOrder BITMAPORDER_NONE
NONE.
Definition: SDL3pp_pixels.h:266
constexpr PixelFormat PIXELFORMAT_ARGB64_FLOAT
ARGB64_FLOAT.
Definition: SDL3pp_pixels.h:900
SDL_PixelFormatDetails PixelFormatDetails
Details about the format of a pixel.
Definition: SDL3pp_pixels.h:174
constexpr PixelFormat PIXELFORMAT_XRGB2101010
XRGB2101010.
Definition: SDL3pp_pixels.h:867
constexpr BitmapOrder BITMAPORDER_4321
4321
Definition: SDL3pp_pixels.h:268
constexpr bool IsPacked() const
Determine if this is a packed format.
Definition: SDL3pp_pixels.h:1222
constexpr ColorPrimaries COLOR_PRIMARIES_CUSTOM
COLOR_PRIMARIES_CUSTOM.
Definition: SDL3pp_pixels.h:1447
constexpr ColorPrimaries COLOR_PRIMARIES_BT2020
ITU-R BT.2020-2 / ITU-R BT.2100-0.
Definition: SDL3pp_pixels.h:1432
constexpr ColorType COLOR_TYPE_RGB
COLOR_TYPE_RGB.
Definition: SDL3pp_pixels.h:1359
constexpr PixelType PIXELTYPE_INDEX4
INDEX4.
Definition: SDL3pp_pixels.h:230
constexpr Colorspace COLORSPACE_BT709_FULL
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709.
Definition: SDL3pp_pixels.h:1869
SDL_PixelFormat PixelFormatRaw
Alias to raw representation for PixelFormat.
Definition: SDL3pp_pixels.h:71
constexpr PixelFormat PIXELFORMAT_XBGR4444
XBGR4444.
Definition: SDL3pp_pixels.h:802
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT1361
ITU-R BT1361 Extended Colour Gamut.
Definition: SDL3pp_pixels.h:1501
constexpr PixelType PIXELTYPE_PACKED16
PACKED16.
Definition: SDL3pp_pixels.h:236
const PixelFormatDetails & GetPixelFormatDetails(PixelFormatRaw format)
Create an PixelFormatDetails structure corresponding to a pixel format.
Definition: SDL3pp_pixels.h:2766
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_YCGCO
MATRIX_COEFFICIENTS_YCGCO.
Definition: SDL3pp_pixels.h:1568
constexpr PackedLayout PACKEDLAYOUT_332
332
Definition: SDL3pp_pixels.h:348
constexpr PixelFormat PIXELFORMAT_RGBA8888
RGBA8888.
Definition: SDL3pp_pixels.h:858
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_PQ
SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems.
Definition: SDL3pp_pixels.h:1513
constexpr bool IsColorspaceMatrixBT601(ColorspaceRaw cspace)
A macro to determine if an Colorspace uses BT601 (or BT470BG) matrix coefficients.
Definition: SDL3pp_pixels.h:2059
constexpr PackedLayout GetLayout() const
Retrieve the layout.
Definition: SDL3pp_pixels.h:1120
constexpr PixelFormat PIXELFORMAT_RGBA4444
RGBA4444.
Definition: SDL3pp_pixels.h:814
constexpr auto operator<=>(ColorRaw lhs, ColorRaw rhs) noexcept
Spaceship operator for Color.
Definition: SDL3pp_pixels.h:2162
constexpr PixelType PIXELTYPE_ARRAYU8
ARRAYU8.
Definition: SDL3pp_pixels.h:240
constexpr PixelFormat PIXELFORMAT_ARGB32
ARGB32.
Definition: SDL3pp_pixels.h:962
constexpr PixelFormat PIXELFORMAT_INDEX4LSB
INDEX4LSB.
Definition: SDL3pp_pixels.h:789
constexpr bool IsPixelFormatFloat(PixelFormatRaw format)
A macro to determine if an PixelFormat is a floating point format.
Definition: SDL3pp_pixels.h:1286
constexpr ArrayOrder ARRAYORDER_ABGR
ABGR.
Definition: SDL3pp_pixels.h:330
constexpr bool IsFourCC() const
Determine if this is a "FourCC" format.
Definition: SDL3pp_pixels.h:1344
constexpr PixelFormat PIXELFORMAT_ABGR64_FLOAT
ABGR64_FLOAT.
Definition: SDL3pp_pixels.h:906
constexpr bool IsPixelFormatFourCC(PixelFormatRaw format)
A macro to determine if an PixelFormat is a "FourCC" format.
Definition: SDL3pp_pixels.h:1339
constexpr ColorPrimaries COLOR_PRIMARIES_BT470M
ITU-R BT.470-6 System M.
Definition: SDL3pp_pixels.h:1414
constexpr ColorPrimaries COLOR_PRIMARIES_SMPTE431
SMPTE RP 431-2.
Definition: SDL3pp_pixels.h:1438
constexpr PixelFormat PIXELFORMAT_ABGR128_FLOAT
ABGR128_FLOAT.
Definition: SDL3pp_pixels.h:924
constexpr ColorPrimaries COLOR_PRIMARIES_XYZ
SMPTE ST 428-1.
Definition: SDL3pp_pixels.h:1435
constexpr PixelFormat PIXELFORMAT_ABGR2101010
ABGR2101010.
Definition: SDL3pp_pixels.h:876
SDL_ColorType ColorType
Colorspace color type.
Definition: SDL3pp_pixels.h:1354
constexpr PixelFormat PIXELFORMAT_BGRX8888
BGRX8888.
Definition: SDL3pp_pixels.h:852
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL
MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL.
Definition: SDL3pp_pixels.h:1581
constexpr float ALPHA_OPAQUE_FLOAT
A fully opaque floating point alpha value.
Definition: SDL3pp_pixels.h:192
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_CUSTOM
MATRIX_COEFFICIENTS_CUSTOM.
Definition: SDL3pp_pixels.h:1590
constexpr PixelFormat PIXELFORMAT_YV12
Planar mode: Y + V + U (3 planes)
Definition: SDL3pp_pixels.h:927
constexpr PixelFormat PIXELFORMAT_BGRX32
BGRX32.
Definition: SDL3pp_pixels.h:972
constexpr PixelFormat PIXELFORMAT_BGRA4444
BGRA4444.
Definition: SDL3pp_pixels.h:820
Color GetColor(Uint32 pixel, const PixelFormatDetails &format, PaletteConstParam palette={})
Get RGBA values from a pixel in the specified format.
Definition: SDL3pp_pixels.h:3086
constexpr PixelFormat PIXELFORMAT_INDEX2MSB
INDEX2MSB.
Definition: SDL3pp_pixels.h:786
void SetPaletteColors(PaletteParam palette, SpanRef< const ColorRaw > colors, int firstcolor=0)
Set a range of colors in a palette.
Definition: SDL3pp_pixels.h:2813
constexpr PixelFormat PIXELFORMAT_BGR565
BGR565.
Definition: SDL3pp_pixels.h:837
constexpr PixelFormat PIXELFORMAT_RGB48_FLOAT
RGB48_FLOAT.
Definition: SDL3pp_pixels.h:891
void GetRGBA(Uint32 pixelvalue, const PixelFormatDetails &format, PaletteConstParam palette, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
Get RGBA values from a pixel in the specified format.
Definition: SDL3pp_pixels.h:3048
constexpr PixelFormat PIXELFORMAT_RGB565
RGB565.
Definition: SDL3pp_pixels.h:835
constexpr PixelFormat PIXELFORMAT_RGBA32
RGBA32.
Definition: SDL3pp_pixels.h:960
constexpr PixelFormat PIXELFORMAT_BGR24
BGR24.
Definition: SDL3pp_pixels.h:841
constexpr PackedLayout PACKEDLAYOUT_2101010
2101010
Definition: SDL3pp_pixels.h:360
Uint32 Map(ColorRaw c, PaletteConstParam palette={}) const
Map an RGBA quadruple to a pixel value for a given pixel format.
Definition: SDL3pp_pixels.h:2979
constexpr bool IsColorspaceMatrixBT709(ColorspaceRaw cspace)
A macro to determine if an Colorspace uses BT709 matrix coefficients.
Definition: SDL3pp_pixels.h:2079
constexpr int GetOrder() const
Retrieve the order.
Definition: SDL3pp_pixels.h:1097
constexpr PixelFormat PIXELFORMAT_NV12
Planar mode: Y + U/V interleaved (2 planes)
Definition: SDL3pp_pixels.h:942
SDL_MatrixCoefficients MatrixCoefficients
Colorspace matrix coefficients.
Definition: SDL3pp_pixels.h:1541
constexpr ColorPrimaries COLOR_PRIMARIES_SMPTE432
SMPTE EG 432-1 / DCI P3.
Definition: SDL3pp_pixels.h:1441
constexpr Colorspace COLORSPACE_JPEG
Equivalent to DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601.
Definition: SDL3pp_pixels.h:1857
constexpr PixelFormat PIXELFORMAT_INDEX2LSB
INDEX2LSB.
Definition: SDL3pp_pixels.h:783
SDL_PackedOrder PackedOrder
Packed component order, high bit -> low bit.
Definition: SDL3pp_pixels.h:284
constexpr PackedLayout PACKEDLAYOUT_5551
5551
Definition: SDL3pp_pixels.h:354
Uint32 MapRGB(const PixelFormatDetails &format, PaletteConstParam 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:2877
constexpr ColorRange COLOR_RANGE_FULL
Full range, e.g. 0-255 for 8-bit RGB and luma, and 1-255 for 8-bit chroma.
Definition: SDL3pp_pixels.h:1388
constexpr bool IsArray() const
Determine if this is an array format.
Definition: SDL3pp_pixels.h:1245
constexpr PixelFormat PIXELFORMAT_ABGR64
ABGR64.
Definition: SDL3pp_pixels.h:889
constexpr PackedOrder PACKEDORDER_RGBA
RGBA.
Definition: SDL3pp_pixels.h:294
void GetMasksForPixelFormat(PixelFormatRaw format, int *bpp, Uint32 *Rmask, Uint32 *Gmask, Uint32 *Bmask, Uint32 *Amask)
Convert one of the enumerated pixel formats to a bpp value and RGBA masks.
Definition: SDL3pp_pixels.h:2694
constexpr Uint32 DefinePixelFourCC(Uint8 A, Uint8 B, Uint8 C, Uint8 D)
A function for defining custom FourCC pixel formats.
Definition: SDL3pp_pixels.h:997
constexpr PixelFormat PIXELFORMAT_RGBA128_FLOAT
RGBA128_FLOAT.
Definition: SDL3pp_pixels.h:915
constexpr Colorspace COLORSPACE_BT2020_LIMITED
Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020.
Definition: SDL3pp_pixels.h:1872
PixelFormat GetPixelFormatForMasks(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:2733
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_UNSPECIFIED
TRANSFER_CHARACTERISTICS_UNSPECIFIED.
Definition: SDL3pp_pixels.h:1472
constexpr int PixelFormatBitsPerPixel(PixelFormatRaw format)
A macro to determine an PixelFormat's bits per pixel.
Definition: SDL3pp_pixels.h:1143
constexpr int GetBytesPerPixel() const
Determine this's bytes per pixel.
Definition: SDL3pp_pixels.h:1176
constexpr PixelFormat PIXELFORMAT_RGB332
RGB332.
Definition: SDL3pp_pixels.h:797
constexpr PixelFormat PIXELFORMAT_BGRA5551
BGRA5551.
Definition: SDL3pp_pixels.h:832
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_CUSTOM
TRANSFER_CHARACTERISTICS_CUSTOM.
Definition: SDL3pp_pixels.h:1524
constexpr ArrayOrder ARRAYORDER_BGRA
BGRA.
Definition: SDL3pp_pixels.h:328
constexpr ColorPrimaries COLOR_PRIMARIES_GENERIC_FILM
Generic film (color filters using Illuminant C)
Definition: SDL3pp_pixels.h:1428
constexpr PixelType PIXELTYPE_INDEX2
INDEX2.
Definition: SDL3pp_pixels.h:250
constexpr ColorRange COLOR_RANGE_UNKNOWN
COLOR_RANGE_UNKNOWN.
Definition: SDL3pp_pixels.h:1379
constexpr ColorPrimaries COLOR_PRIMARIES_BT601
ITU-R BT.601-7 525, SMPTE 170M.
Definition: SDL3pp_pixels.h:1421
constexpr bool IsAlpha() const
Determine if this has an alpha channel.
Definition: SDL3pp_pixels.h:1319
constexpr MatrixCoefficients GetMatrix() const
Retrieve the matrix coefficients of an Colorspace.
Definition: SDL3pp_pixels.h:2040
constexpr PixelFormat PIXELFORMAT_YUY2
Packed mode: Y0+U0+Y1+V0 (1 plane)
Definition: SDL3pp_pixels.h:933
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_LINEAR
TRANSFER_CHARACTERISTICS_LINEAR.
Definition: SDL3pp_pixels.h:1489
constexpr PixelType PIXELTYPE_ARRAYU32
ARRAYU32.
Definition: SDL3pp_pixels.h:244
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_UNKNOWN
TRANSFER_CHARACTERISTICS_UNKNOWN.
Definition: SDL3pp_pixels.h:1466
constexpr PixelType GetType() const
Retrieve the type.
Definition: SDL3pp_pixels.h:1074
constexpr ArrayOrder ARRAYORDER_RGBA
RGBA.
Definition: SDL3pp_pixels.h:322
constexpr PixelFormat PIXELFORMAT_RGBA64_FLOAT
RGBA64_FLOAT.
Definition: SDL3pp_pixels.h:897
constexpr bool IsColorspaceMatrixBT2020_NCL(ColorspaceRaw cspace)
Determine if an Colorspace uses BT2020_NCL matrix coefficients.
Definition: SDL3pp_pixels.h:2099
constexpr PixelFormat PIXELFORMAT_XRGB4444
XRGB4444.
Definition: SDL3pp_pixels.h:799
constexpr Colorspace COLORSPACE_BT2020_FULL
Equivalent to DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020.
Definition: SDL3pp_pixels.h:1875
constexpr TransferCharacteristics ColorspaceTransfer(ColorspaceRaw cspace)
A macro to retrieve the transfer characteristics of an Colorspace.
Definition: SDL3pp_pixels.h:2015
constexpr ChromaLocation CHROMA_LOCATION_NONE
RGB, no chroma sampling.
Definition: SDL3pp_pixels.h:1607
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT2020_10BIT
ITU-R BT2020 for 10-bit system.
Definition: SDL3pp_pixels.h:1507
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:1622
constexpr PixelFormat PIXELFORMAT_RGBA64
RGBA64.
Definition: SDL3pp_pixels.h:883
SDL_FColor FColorRaw
Alias to raw representation for FColor.
Definition: SDL3pp_pixels.h:89
constexpr PixelFormat PIXELFORMAT_UYVY
Packed mode: U0+Y0+V0+Y1 (1 plane)
Definition: SDL3pp_pixels.h:936
constexpr Colorspace COLORSPACE_RGB_DEFAULT
The default colorspace for RGB surfaces if no colorspace is specified.
Definition: SDL3pp_pixels.h:1878
constexpr PackedOrder PACKEDORDER_NONE
NONE.
Definition: SDL3pp_pixels.h:286
constexpr PixelType PixelFormatType(PixelFormatRaw format)
A macro to retrieve the type of an PixelFormat.
Definition: SDL3pp_pixels.h:1069
SDL_Color ColorRaw
Alias to raw representation for Color.
Definition: SDL3pp_pixels.h:83
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_GAMMA28
ITU-R BT.470-6 System B, G.
Definition: SDL3pp_pixels.h:1479
constexpr PixelFormat PIXELFORMAT_ARGB4444
ARGB4444.
Definition: SDL3pp_pixels.h:811
SDL_BitmapOrder BitmapOrder
Bitmap pixel order, high bit -> low bit.
Definition: SDL3pp_pixels.h:264
constexpr ArrayOrder ARRAYORDER_BGR
BGR.
Definition: SDL3pp_pixels.h:326
constexpr PixelFormat PIXELFORMAT_BGRA32
BGRA32.
Definition: SDL3pp_pixels.h:964
constexpr bool IsFullRange() const
A function to determine if an Colorspace has a full range.
Definition: SDL3pp_pixels.h:2144
constexpr int GetBitsPerPixel() const
Determine this's bits per pixel.
Definition: SDL3pp_pixels.h:1148
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_BT709
Rec. ITU-R BT.709-6 / ITU-R BT1361.
Definition: SDL3pp_pixels.h:1469
constexpr PixelType PIXELTYPE_INDEX1
INDEX1.
Definition: SDL3pp_pixels.h:228
constexpr PixelFormat PIXELFORMAT_XBGR32
XBGR32.
Definition: SDL3pp_pixels.h:974
constexpr bool IsPixelFormatIndexed(PixelFormatRaw format)
A macro to determine if an PixelFormat is an indexed format.
Definition: SDL3pp_pixels.h:1194
SDL_PixelType PixelType
Pixel type.
Definition: SDL3pp_pixels.h:224
constexpr ArrayOrder ARRAYORDER_ARGB
ARGB.
Definition: SDL3pp_pixels.h:324
constexpr PixelFormat PIXELFORMAT_ARGB64
ARGB64.
Definition: SDL3pp_pixels.h:885
constexpr Colorspace COLORSPACE_HDR10
Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020.
Definition: SDL3pp_pixels.h:1854
constexpr PackedOrder PACKEDORDER_XRGB
XRGB.
Definition: SDL3pp_pixels.h:288
constexpr PackedLayout PACKEDLAYOUT_8888
8888
Definition: SDL3pp_pixels.h:358
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:2705
const PixelFormatDetails & GetDetails() const
Create an PixelFormatDetails structure corresponding to a pixel format.
Definition: SDL3pp_pixels.h:2771
constexpr PixelFormat PIXELFORMAT_RGB48
RGB48.
Definition: SDL3pp_pixels.h:879
static Color Get(Uint32 pixel, const PixelFormatDetails &format, PaletteConstParam palette)
Get RGBA values from a pixel in the specified format.
Definition: SDL3pp_pixels.h:3095
constexpr bool IsLimitedRange() const
A function to determine if an Colorspace has a limited range.
Definition: SDL3pp_pixels.h:2124
constexpr PixelFormat PIXELFORMAT_XBGR1555
XBGR1555.
Definition: SDL3pp_pixels.h:808
constexpr ColorRange GetRange() const
Retrieve the range of a Colorspace.
Definition: SDL3pp_pixels.h:1960
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_LOG100_SQRT10
TRANSFER_CHARACTERISTICS_LOG100_SQRT10.
Definition: SDL3pp_pixels.h:1495
Palette CreatePalette(int ncolors)
Create a palette structure with the specified number of color entries.
Definition: SDL3pp_pixels.h:2798
constexpr TransferCharacteristics TRANSFER_CHARACTERISTICS_IEC61966
IEC 61966-2-4.
Definition: SDL3pp_pixels.h:1498
constexpr PackedOrder PACKEDORDER_BGRX
BGRX.
Definition: SDL3pp_pixels.h:298
constexpr Colorspace COLORSPACE_YUV_DEFAULT
The default colorspace for YUV surfaces if no colorspace is specified.
Definition: SDL3pp_pixels.h:1881
constexpr PackedOrder PACKEDORDER_XBGR
XBGR.
Definition: SDL3pp_pixels.h:296
constexpr MatrixCoefficients MATRIX_COEFFICIENTS_IDENTITY
MATRIX_COEFFICIENTS_IDENTITY.
Definition: SDL3pp_pixels.h:1543
constexpr PixelFormat PIXELFORMAT_BGR48_FLOAT
BGR48_FLOAT.
Definition: SDL3pp_pixels.h:894
constexpr PixelType PIXELTYPE_INDEX8
INDEX8.
Definition: SDL3pp_pixels.h:232
::Uint32 Uint32
An unsigned 32-bit integer type.
Definition: SDL3pp_stdinc.h:341
::Uint8 Uint8
An unsigned 8-bit integer type.
Definition: SDL3pp_stdinc.h:289
Main include header for the SDL3pp library.
A structure that represents a color as RGBA components.
Definition: SDL3pp_pixels.h:2192
constexpr Uint8 GetG() const noexcept
Get the green component from the color.
Definition: SDL3pp_pixels.h:2241
constexpr Uint8 GetA() const noexcept
Get the alpha component from the color.
Definition: SDL3pp_pixels.h:2281
constexpr Color & SetB(Uint8 newB) noexcept
Set the blue component from the color.
Definition: SDL3pp_pixels.h:2269
constexpr Uint8 GetB() const noexcept
Get the blue component from the color.
Definition: SDL3pp_pixels.h:2261
constexpr Color & SetR(Uint8 newR) noexcept
Set the red component from the color.
Definition: SDL3pp_pixels.h:2229
constexpr Color(Uint8 r, Uint8 g, Uint8 b, Uint8 a=255) noexcept
Constructs from its fields.
Definition: SDL3pp_pixels.h:2211
constexpr Uint8 GetR() const noexcept
Get the red component from the color.
Definition: SDL3pp_pixels.h:2221
constexpr Color & SetA(Uint8 newA) noexcept
Set the alpha component from the color.
Definition: SDL3pp_pixels.h:2289
constexpr Color & SetG(Uint8 newG) noexcept
Set the green component from the color.
Definition: SDL3pp_pixels.h:2249
constexpr Color(ColorRaw color={}) noexcept
Wraps Color.
Definition: SDL3pp_pixels.h:2198
The bits of this structure can be directly reinterpreted as a float-packed color which uses the PIXEL...
Definition: SDL3pp_pixels.h:2365
constexpr FColor & SetB(float newB) noexcept
Set the blue component from the color.
Definition: SDL3pp_pixels.h:2442
constexpr float GetG() const noexcept
Get the green component from the color.
Definition: SDL3pp_pixels.h:2414
constexpr FColor(float r, float g, float b, float a=1) noexcept
Constructs from its fields.
Definition: SDL3pp_pixels.h:2384
constexpr FColor(const FColorRaw &color={}) noexcept
Wraps FColor.
Definition: SDL3pp_pixels.h:2371
constexpr FColor & SetR(float newR) noexcept
Set the red component from the color.
Definition: SDL3pp_pixels.h:2402
constexpr float GetB() const noexcept
Get the blue component from the color.
Definition: SDL3pp_pixels.h:2434
constexpr FColor & SetG(float newG) noexcept
Set the green component from the color.
Definition: SDL3pp_pixels.h:2422
constexpr FColor & SetA(float newA) noexcept
Set the alpha component from the color.
Definition: SDL3pp_pixels.h:2462
constexpr float GetR() const noexcept
Get the red component from the color.
Definition: SDL3pp_pixels.h:2394
constexpr float GetA() const noexcept
Get the alpha component from the color.
Definition: SDL3pp_pixels.h:2454
Safely wrap Palette for non owning const parameters.
Definition: SDL3pp_pixels.h:135
constexpr auto operator->()
member access to underlying PaletteRaw.
Definition: SDL3pp_pixels.h:166
constexpr PaletteConstParam(PaletteParam value)
Constructs from PaletteParam.
Definition: SDL3pp_pixels.h:145
constexpr PaletteConstParam(std::nullptr_t=nullptr)
Constructs null/invalid.
Definition: SDL3pp_pixels.h:151
const PaletteRaw value
parameter's const PaletteRaw
Definition: SDL3pp_pixels.h:136
constexpr PaletteConstParam(const PaletteRaw value)
Constructs from const PaletteRaw.
Definition: SDL3pp_pixels.h:139
constexpr auto operator<=>(const PaletteConstParam &other) const =default
Comparison.
Safely wrap Palette for non owning parameters.
Definition: SDL3pp_pixels.h:105
constexpr PaletteParam(std::nullptr_t=nullptr)
Constructs null/invalid.
Definition: SDL3pp_pixels.h:115
constexpr auto operator<=>(const PaletteParam &other) const =default
Comparison.
constexpr auto operator->()
member access to underlying PaletteRaw.
Definition: SDL3pp_pixels.h:130
PaletteRaw value
parameter's PaletteRaw
Definition: SDL3pp_pixels.h:106
constexpr PaletteParam(PaletteRaw value)
Constructs from PaletteRaw.
Definition: SDL3pp_pixels.h:109
Safe reference for Palette.
Definition: SDL3pp_pixels.h:2634
PaletteRef(Palette resource) noexcept
Constructs from Palette.
Definition: SDL3pp_pixels.h:2650
PaletteRef(PaletteRaw resource) noexcept
Constructs from PaletteRaw.
Definition: SDL3pp_pixels.h:2644