6#ifndef KISSURFACECOLORIMETRY_H
7#define KISSURFACECOLORIMETRY_H
9#include <boost/operators.hpp>
46 struct KRITASURFACECOLORMANAGEMENTAPI_EXPORT
Luminance : boost::equality_comparable<Luminance> {
48 Luminance(uint32_t minLuminanceArg, uint32_t maxLuminanceArg, uint32_t referenceLuminanceArg)
49 : minLuminance(minLuminanceArg)
50 , maxLuminance(maxLuminanceArg)
51 , referenceLuminance(referenceLuminanceArg)
55 uint32_t minLuminance = 2000;
56 uint32_t maxLuminance = 80;
57 uint32_t referenceLuminance = 80;
70 return { minLuminance, referenceLuminance, referenceLuminance };
74 struct KRITASURFACECOLORMANAGEMENTAPI_EXPORT
MasteringLuminance : boost::equality_comparable<MasteringLuminance> {
77 : minLuminance(minLuminanceArg)
78 , maxLuminance(maxLuminanceArg)
81 uint32_t minLuminance = 2000;
82 uint32_t maxLuminance = 80;
94 struct KRITASURFACECOLORMANAGEMENTAPI_EXPORT
ColorSpace : boost::equality_comparable<ColorSpace> {
95 std::variant<NamedPrimaries, Colorimetry>
primaries;
107 return luminance && luminance->maxLuminance > luminance->referenceLuminance;
111 struct KRITASURFACECOLORMANAGEMENTAPI_EXPORT
MasteringInfo : boost::equality_comparable<MasteringInfo> {
125 struct KRITASURFACECOLORMANAGEMENTAPI_EXPORT
SurfaceDescription : boost::equality_comparable<SurfaceDescription> {
134 QString makeTextReport()
const;
139 KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug
operator<<(QDebug debug,
const Luminance &
value);
140 KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug
operator<<(QDebug debug,
const MasteringLuminance &
value);
141 KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug
operator<<(QDebug debug,
const ColorSpace &
value);
142 KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug
operator<<(QDebug debug,
const MasteringInfo &
value);
143 KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug
operator<<(QDebug debug,
const SurfaceDescription &
value);
float value(const T *src, size_t ch)
QDebug operator<<(QDebug debug, const xy &value)
@ render_intent_perceptual
@ render_intent_saturation
@ render_intent_relative_bpc
@ transfer_function_st428
@ transfer_function_bt1886
@ transfer_function_unknown
@ transfer_function_st2084_pq
@ transfer_function_gamma22
@ transfer_function_ext_linear
@ transfer_function_gamma28
@ transfer_function_ext_srgb
std::optional< Luminance > luminance
std::variant< NamedPrimaries, Colorimetry > primaries
bool operator==(const ColorSpace &other) const
std::variant< NamedTransferFunction, uint32_t > transferFunction
uint32_t referenceLuminance
bool operator==(const Luminance &other) const
Luminance clipToSdr() const
Luminance(uint32_t minLuminanceArg, uint32_t maxLuminanceArg, uint32_t referenceLuminanceArg)
std::optional< uint32_t > maxCll
std::optional< uint32_t > maxFall
bool operator==(const MasteringInfo &other) const
MasteringLuminance luminance
bool operator==(const MasteringLuminance &other) const
static MasteringLuminance fromLuminance(const Luminance &rhs)
MasteringLuminance(uint32_t minLuminanceArg, uint32_t maxLuminanceArg)
MasteringLuminance()=default
std::optional< MasteringInfo > masteringInfo
bool operator==(const SurfaceDescription &other) const