SDL_Transf...acteristics(3type)

✨ SDL_TransferCharacteristics ✨

okay bestie, sit down, we're talking colorspace transfer characteristics today πŸ’– This lil page lives in the SDL3 DATATYPES section of the SDL_TransferCharacteristics(3type) manual, and it's literally the cheat sheet for how your pixels get their brightness curve. No cap. 🌈


🌸 NAME 🌸

SDL_TransferCharacteristics β€” colorspace transfer characteristics, periodt. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

First things first, you gotta pull in the header:

#include <SDL3/SDL_pixels.h>

And here's the whole enum, verbatim, don't @ me:

typedef enum SDL_TransferCharacteristics
{
    SDL_TRANSFER_CHARACTERISTICS_UNKNOWN = 0,
    SDL_TRANSFER_CHARACTERISTICS_BT709 = 1,         /**< Rec. ITU-R BT.709-6 / ITU-R BT1361 */
    SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2,
    SDL_TRANSFER_CHARACTERISTICS_GAMMA22 = 4,       /**< ITU-R BT.470-6 System M / ITU-R BT1700 625 PAL & SECAM */
    SDL_TRANSFER_CHARACTERISTICS_GAMMA28 = 5,       /**< ITU-R BT.470-6 System B, G */
    SDL_TRANSFER_CHARACTERISTICS_BT601 = 6,         /**< SMPTE ST 170M / ITU-R BT.601-7 525 or 625 */
    SDL_TRANSFER_CHARACTERISTICS_SMPTE240 = 7,      /**< SMPTE ST 240M */
    SDL_TRANSFER_CHARACTERISTICS_LINEAR = 8,
    SDL_TRANSFER_CHARACTERISTICS_LOG100 = 9,
    SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10 = 10,
    SDL_TRANSFER_CHARACTERISTICS_IEC61966 = 11,     /**< IEC 61966-2-4 */
    SDL_TRANSFER_CHARACTERISTICS_BT1361 = 12,       /**< ITU-R BT1361 Extended Colour Gamut */
    SDL_TRANSFER_CHARACTERISTICS_SRGB = 13,         /**< IEC 61966-2-1 (sRGB or sYCC) */
    SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT = 14, /**< ITU-R BT2020 for 10-bit system */
    SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT = 15, /**< ITU-R BT2020 for 12-bit system */
    SDL_TRANSFER_CHARACTERISTICS_PQ = 16,           /**< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems */
    SDL_TRANSFER_CHARACTERISTICS_SMPTE428 = 17,     /**< SMPTE ST 428-1 */
    SDL_TRANSFER_CHARACTERISTICS_HLG = 18,          /**< ARIB STD-B67, known as "hybrid log-gamma" (HLG) */
    SDL_TRANSFER_CHARACTERISTICS_CUSTOM = 31
} SDL_TransferCharacteristics;

πŸ¦‹ DESCRIPTION πŸ¦‹

These are as described by https://www.itu.int/rec/T-REC-H.273-201612-S/en β€” that's the whole description, bestie. It's giving "short and sweet, go read the spec." πŸ“–βœ¨


πŸ‘‘ AVAILABILITY πŸ‘‘

This enum is available since SDL 3.2.0. So if you're on something older, that's a you problem πŸ’€ (affectionate).


Quick vibe check on the members so you know what you're picking: 🧚

  • SDL_TRANSFER_CHARACTERISTICS_UNKNOWN = 0 β€” the "idk her" option πŸ™ˆ
  • SDL_TRANSFER_CHARACTERISTICS_BT709 = 1 β€” Rec. ITU-R BT.709-6 / ITU-R BT1361 ✨
  • SDL_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2 β€” not specifying, staying mysterious πŸ’…
  • SDL_TRANSFER_CHARACTERISTICS_GAMMA22 = 4 β€” ITU-R BT.470-6 System M / ITU-R BT1700 625 PAL & SECAM
  • SDL_TRANSFER_CHARACTERISTICS_GAMMA28 = 5 β€” ITU-R BT.470-6 System B, G
  • SDL_TRANSFER_CHARACTERISTICS_BT601 = 6 β€” SMPTE ST 170M / ITU-R BT.601-7 525 or 625
  • SDL_TRANSFER_CHARACTERISTICS_SMPTE240 = 7 β€” SMPTE ST 240M
  • SDL_TRANSFER_CHARACTERISTICS_LINEAR = 8 β€” straight up, no curve, just linear πŸ”₯
  • SDL_TRANSFER_CHARACTERISTICS_LOG100 = 9
  • SDL_TRANSFER_CHARACTERISTICS_LOG100_SQRT10 = 10
  • SDL_TRANSFER_CHARACTERISTICS_IEC61966 = 11 β€” IEC 61966-2-4
  • SDL_TRANSFER_CHARACTERISTICS_BT1361 = 12 β€” ITU-R BT1361 Extended Colour Gamut
  • SDL_TRANSFER_CHARACTERISTICS_SRGB = 13 β€” IEC 61966-2-1 (sRGB or sYCC) 🌸
  • SDL_TRANSFER_CHARACTERISTICS_BT2020_10BIT = 14 β€” ITU-R BT2020 for 10-bit system
  • SDL_TRANSFER_CHARACTERISTICS_BT2020_12BIT = 15 β€” ITU-R BT2020 for 12-bit system
  • SDL_TRANSFER_CHARACTERISTICS_PQ = 16 β€” SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems
  • SDL_TRANSFER_CHARACTERISTICS_SMPTE428 = 17 β€” SMPTE ST 428-1
  • SDL_TRANSFER_CHARACTERISTICS_HLG = 18 β€” ARIB STD-B67, known as "hybrid log-gamma" (HLG)
  • SDL_TRANSFER_CHARACTERISTICS_CUSTOM = 31 β€” you're doing your own thing, main character energy πŸ‘‘
Heads up: notice there's no 3 in that list, and it jumps from 18 straight to 31. That's just how the enum is, bestie β€” don't go inventing values, iykyk. 🫢

And that's the whole page, you ate it up fr fr πŸ“ This was brought to you by the good folks at Simple Directmedia Layer, version SDL 3.4.18 β€” mwah, love that for us πŸ’–πŸŒˆβ­

πŸ“¦ where this page comes from