Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSurfaceColorimetry Namespace Reference

Classes

struct  ColorSpace
 
struct  Luminance
 
struct  MasteringInfo
 
struct  MasteringLuminance
 
struct  SurfaceDescription
 
struct  WaylandPrimaries
 
struct  WaylandSurfaceDescription
 

Enumerations

enum class  NamedPrimaries {
  primaries_unknown = 0 , primaries_srgb = 1 , primaries_bt2020 = 6 , primaries_dci_p3 = 8 ,
  primaries_display_p3 = 9 , primaries_adobe_rgb = 10
}
 
enum class  NamedTransferFunction {
  transfer_function_unknown = 0 , transfer_function_bt1886 = 1 , transfer_function_gamma22 = 2 , transfer_function_gamma28 = 3 ,
  transfer_function_ext_linear = 5 , transfer_function_srgb = 9 , transfer_function_ext_srgb = 10 , transfer_function_st2084_pq = 11 ,
  transfer_function_st428 = 12
}
 
enum class  RenderIntent {
  render_intent_perceptual = 0 , render_intent_relative = 1 , render_intent_saturation = 2 , render_intent_absolute = 3 ,
  render_intent_relative_bpc = 4
}
 

Functions

KoColorProfileQuery colorSpaceToRequest (ColorSpace cs)
 
ColorPrimaries namedPrimariesToPigmentPrimaries (NamedPrimaries primaries)
 
TransferCharacteristics namedTransferFunctionToPigmentTransferFunction (NamedTransferFunction transfer)
 
QDebug operator<< (QDebug dbg, const WaylandPrimaries &points)
 
QDebug operator<< (QDebug dbg, const WaylandSurfaceDescription &data)
 
QDebug operator<< (QDebug debug, const ColorSpace &value)
 
QDebug operator<< (QDebug debug, const KisSurfaceColorimetry::RenderIntent &value)
 
QDebug operator<< (QDebug debug, const Luminance &value)
 
QDebug operator<< (QDebug debug, const MasteringInfo &value)
 
QDebug operator<< (QDebug debug, const MasteringLuminance &value)
 
QDebug operator<< (QDebug debug, const NamedPrimaries &value)
 
QDebug operator<< (QDebug debug, const NamedTransferFunction &value)
 
QDebug operator<< (QDebug debug, const SurfaceDescription &value)
 
QtWayland::wp_color_manager_v1::primaries primariesKritaToWayland (KisSurfaceColorimetry::NamedPrimaries primaries)
 
QtWayland::wp_color_manager_v1::render_intent renderIntentKritaToWayland (KisSurfaceColorimetry::RenderIntent intent)
 
QtWayland::wp_color_manager_v1::transfer_function transferFunctionKritaToWayland (KisSurfaceColorimetry::NamedTransferFunction transferFunction)
 
std::pair< int32_t, int32_t > waylandXyFromXy (KoColorimetryUtils::xy value)
 
KoColorimetryUtils::xy xyFromWaylandXy (int32_t x, int32_t y)
 

Enumeration Type Documentation

◆ NamedPrimaries

Enumerator
primaries_unknown 
primaries_srgb 
primaries_bt2020 
primaries_dci_p3 
primaries_display_p3 
primaries_adobe_rgb 

Definition at line 18 of file KisSurfaceColorimetry.h.

◆ NamedTransferFunction

Enumerator
transfer_function_unknown 
transfer_function_bt1886 
transfer_function_gamma22 
transfer_function_gamma28 
transfer_function_ext_linear 
transfer_function_srgb 
transfer_function_ext_srgb 
transfer_function_st2084_pq 
transfer_function_st428 

Definition at line 27 of file KisSurfaceColorimetry.h.

◆ RenderIntent

Enumerator
render_intent_perceptual 
render_intent_relative 
render_intent_saturation 
render_intent_absolute 
render_intent_relative_bpc 

Definition at line 39 of file KisSurfaceColorimetry.h.

39 {
40 render_intent_perceptual = 0, // perceptual
41 render_intent_relative = 1, // media-relative colorimetric
42 render_intent_saturation = 2, // saturation
43 render_intent_absolute = 3, // ICC-absolute colorimetric
44 render_intent_relative_bpc = 4, // media-relative colorimetric + black point compensation
45 };

Function Documentation

◆ colorSpaceToRequest()

KRITASURFACECOLORMANAGEMENTAPI_EXPORT KoColorProfileQuery KisSurfaceColorimetry::colorSpaceToRequest ( ColorSpace cs)

Definition at line 55 of file KisSurfaceColorimetryIccUtils.cpp.

56{
57 KoColorProfileQuery request;
58
59 if (std::holds_alternative<NamedPrimaries>(cs.primaries)) {
60 request.primaries =
61 namedPrimariesToPigmentPrimaries(std::get<NamedPrimaries>(cs.primaries));
62 } else if (std::holds_alternative<Colorimetry>(cs.primaries)) {
63 auto colorimetry = std::get<Colorimetry>(cs.primaries);
64 request.whitePoint = colorimetry.white().toxy();
65 request.rgbColorants << colorimetry.red().toxy() << colorimetry.green().toxy() << colorimetry.blue().toxy();
66 }
67
68 if (std::holds_alternative<NamedTransferFunction>(cs.transferFunction)) {
69 request.transfer =
70 namedTransferFunctionToPigmentTransferFunction(std::get<NamedTransferFunction>(cs.transferFunction));
71 } else if (std::holds_alternative<uint32_t>(cs.transferFunction)) {
72 auto gamma = std::get<uint32_t>(cs.transferFunction); // gamma * 10000
73 if (gamma == 10000) {
74 request.transfer = TRC_LINEAR;
75 } else if (gamma == 18000) {
76 request.transfer = TRC_GAMMA_1_8;
77 } else if (gamma == 22000) {
78 request.transfer = TRC_ITU_R_BT_470_6_SYSTEM_M;
79 } else if (gamma == 24000) {
80 request.transfer = TRC_GAMMA_2_4;
81 } else if (gamma == 28000) {
82 request.transfer = TRC_ITU_R_BT_470_6_SYSTEM_B_G;
83 }
84 }
85
86 // any pq-space that is not bt2020pq is considered unsupported
87
88 if (request.transfer == TRC_ITU_R_BT_2100_0_PQ &&
89 request.primaries != PRIMARIES_ITU_R_BT_2020_2_AND_2100_0) {
90
91 request.transfer = TRC_UNSPECIFIED;
92 request.rgbColorants.clear();
93 }
94
95 return request;
96}
@ PRIMARIES_ITU_R_BT_2020_2_AND_2100_0
@ TRC_ITU_R_BT_470_6_SYSTEM_M
@ TRC_ITU_R_BT_470_6_SYSTEM_B_G
@ TRC_ITU_R_BT_2100_0_PQ
ColorPrimaries namedPrimariesToPigmentPrimaries(NamedPrimaries primaries)
TransferCharacteristics namedTransferFunctionToPigmentTransferFunction(NamedTransferFunction transfer)
std::variant< NamedPrimaries, Colorimetry > primaries
std::variant< NamedTransferFunction, uint32_t > transferFunction
The KoColorProfileQuery struct.
ColorPrimaries primaries
Rgb Primaries of the profile. When empty, this is a query for a greyscale profile.

References namedPrimariesToPigmentPrimaries(), namedTransferFunctionToPigmentTransferFunction(), KoColorProfileQuery::primaries, KisSurfaceColorimetry::ColorSpace::primaries, PRIMARIES_ITU_R_BT_2020_2_AND_2100_0, KisSurfaceColorimetry::ColorSpace::transferFunction, TRC_GAMMA_1_8, TRC_GAMMA_2_4, TRC_ITU_R_BT_2100_0_PQ, TRC_ITU_R_BT_470_6_SYSTEM_B_G, TRC_ITU_R_BT_470_6_SYSTEM_M, TRC_LINEAR, and TRC_UNSPECIFIED.

◆ namedPrimariesToPigmentPrimaries()

KRITASURFACECOLORMANAGEMENTAPI_EXPORT ColorPrimaries KisSurfaceColorimetry::namedPrimariesToPigmentPrimaries ( NamedPrimaries primaries)

Definition at line 13 of file KisSurfaceColorimetryIccUtils.cpp.

14{
15 switch (primaries) {
16 case NamedPrimaries::primaries_srgb:
18 case NamedPrimaries::primaries_bt2020:
20 case NamedPrimaries::primaries_dci_p3:
22 case NamedPrimaries::primaries_display_p3:
24 case NamedPrimaries::primaries_adobe_rgb:
26 default:
28 }
29}
@ PRIMARIES_UNSPECIFIED
@ PRIMARIES_SMPTE_RP_431_2
@ PRIMARIES_ADOBE_RGB_1998
@ PRIMARIES_SMPTE_EG_432_1
@ PRIMARIES_ITU_R_BT_709_5

References primaries_adobe_rgb, PRIMARIES_ADOBE_RGB_1998, primaries_bt2020, primaries_dci_p3, primaries_display_p3, PRIMARIES_ITU_R_BT_2020_2_AND_2100_0, PRIMARIES_ITU_R_BT_709_5, PRIMARIES_SMPTE_EG_432_1, PRIMARIES_SMPTE_RP_431_2, primaries_srgb, and PRIMARIES_UNSPECIFIED.

◆ namedTransferFunctionToPigmentTransferFunction()

KRITASURFACECOLORMANAGEMENTAPI_EXPORT TransferCharacteristics KisSurfaceColorimetry::namedTransferFunctionToPigmentTransferFunction ( NamedTransferFunction transfer)

Definition at line 31 of file KisSurfaceColorimetryIccUtils.cpp.

32{
33 switch (transfer) {
34 case NamedTransferFunction::transfer_function_bt1886:
35 return TRC_ITU_R_BT_709_5;
36 case NamedTransferFunction::transfer_function_gamma22:
38 case NamedTransferFunction::transfer_function_gamma28:
40 case NamedTransferFunction::transfer_function_ext_linear:
41 return TRC_LINEAR;
42 case NamedTransferFunction::transfer_function_srgb:
43 return TRC_IEC_61966_2_1;
44 case NamedTransferFunction::transfer_function_ext_srgb:
45 return TRC_UNSPECIFIED; // unsupported!
46 case NamedTransferFunction::transfer_function_st2084_pq:
48 case NamedTransferFunction::transfer_function_st428:
49 return TRC_SMPTE_ST_428_1;
50 default:
51 return TRC_UNSPECIFIED;
52 }
53}
@ TRC_IEC_61966_2_1
@ TRC_ITU_R_BT_709_5
@ TRC_SMPTE_ST_428_1

References transfer_function_bt1886, transfer_function_ext_linear, transfer_function_ext_srgb, transfer_function_gamma22, transfer_function_gamma28, transfer_function_srgb, transfer_function_st2084_pq, transfer_function_st428, TRC_IEC_61966_2_1, TRC_ITU_R_BT_2100_0_PQ, TRC_ITU_R_BT_470_6_SYSTEM_B_G, TRC_ITU_R_BT_470_6_SYSTEM_M, TRC_ITU_R_BT_709_5, TRC_LINEAR, TRC_SMPTE_ST_428_1, and TRC_UNSPECIFIED.

◆ operator<<() [1/10]

QDebug KisSurfaceColorimetry::operator<< ( QDebug dbg,
const WaylandPrimaries & points )

Definition at line 213 of file KisWaylandSurfaceColorimetry.cpp.

213 {
214 dbg.nospace() << Qt::fixed << qSetRealNumberPrecision(5) << "KisColorPrimaries("
215 << "red: " << points.red << ", "
216 << "green: " << points.green << ", "
217 << "blue: " << points.blue << ", "
218 << "white: " << points.white
219 << ")";
220 dbg.resetFormat();
221 return dbg.space();
222}

References KisSurfaceColorimetry::WaylandPrimaries::blue, KisSurfaceColorimetry::WaylandPrimaries::green, KisSurfaceColorimetry::WaylandPrimaries::red, and KisSurfaceColorimetry::WaylandPrimaries::white.

◆ operator<<() [2/10]

QDebug KisSurfaceColorimetry::operator<< ( QDebug dbg,
const WaylandSurfaceDescription & data )

Definition at line 224 of file KisWaylandSurfaceColorimetry.cpp.

224 {
225
226 dbg.nospace() << "WaylandSurfaceDescription(";
227
228 auto printOptionalTag = [&dbg](const char *tag, const auto &value) {
229 dbg.nospace() << tag << ": ";
230 if (value) {
231 dbg << *value << ", ";
232 } else {
233 dbg << "none" << ", ";
234 }
235 };
236
237 printOptionalTag("tfGamma", data.tfGamma);
238 printOptionalTag("tfNamed", data.tfNamed);
239 printOptionalTag("container", data.container);
240 printOptionalTag("namedContainer", data.namedContainer);
241 printOptionalTag("target", data.target);
242 printOptionalTag("luminances", data.luminances);
243 printOptionalTag("masteringLuminance", data.masteringLuminance);
244 printOptionalTag("targetMaxCLL", data.targetMaxCLL);
245 printOptionalTag("targetMaxFALL", data.targetMaxFALL);
246
247 dbg.nospace() << "iccFileIsPresent: " << data.iccFileIsPresent;
248
249 dbg.nospace() << ")";
250
251 return dbg.space();
252}
float value(const T *src, size_t ch)
std::optional< KisSurfaceColorimetry::Luminance > luminances
std::optional< KisSurfaceColorimetry::MasteringLuminance > masteringLuminance

References KisSurfaceColorimetry::WaylandSurfaceDescription::container, KisSurfaceColorimetry::WaylandSurfaceDescription::iccFileIsPresent, KisSurfaceColorimetry::WaylandSurfaceDescription::luminances, KisSurfaceColorimetry::WaylandSurfaceDescription::masteringLuminance, KisSurfaceColorimetry::WaylandSurfaceDescription::namedContainer, KisSurfaceColorimetry::WaylandSurfaceDescription::target, KisSurfaceColorimetry::WaylandSurfaceDescription::targetMaxCLL, KisSurfaceColorimetry::WaylandSurfaceDescription::targetMaxFALL, KisSurfaceColorimetry::WaylandSurfaceDescription::tfGamma, KisSurfaceColorimetry::WaylandSurfaceDescription::tfNamed, and value().

◆ operator<<() [3/10]

KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug KisSurfaceColorimetry::operator<< ( QDebug debug,
const ColorSpace & value )

Definition at line 91 of file KisSurfaceColorimetry.cpp.

91 {
92 QDebugStateSaver saver(debug);
93
94 debug.nospace() << "ColorSpace(";
95 std::visit([&] (auto &&v) {debug.nospace() << "primaries: " << v; }, value.primaries);
96 std::visit([&] (auto &&v) {debug.nospace() << ", transferFunction: " << v; }, value.transferFunction);
97 if (value.luminance) {
98 debug.nospace() << ", luminance: " << value.luminance;
99 } else {
100 debug.nospace() << ", luminance: " << "<none>";
101 }
102 debug.nospace() << ")";
103 return debug;
104}
qreal v
PyObject * debug(PyObject *, PyObject *args)

References v, and value().

◆ operator<<() [4/10]

KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug KisSurfaceColorimetry::operator<< ( QDebug debug,
const KisSurfaceColorimetry::RenderIntent & value )

Definition at line 130 of file KisSurfaceColorimetry.cpp.

130 {
131 QDebugStateSaver saver(debug);
132 debug.nospace() << "RenderIntent(";
133 switch (value) {
135 debug.nospace() << "render_intent_perceptual";
136 break;
138 debug.nospace() << "render_intent_relative";
139 break;
141 debug.nospace() << "render_intent_saturation";
142 break;
144 debug.nospace() << "render_intent_absolute";
145 break;
147 debug.nospace() << "render_intent_relative_bpc";
148 break;
149 }
150 debug.nospace() << ")";
151 return debug;
152}

References render_intent_absolute, render_intent_perceptual, render_intent_relative, render_intent_relative_bpc, render_intent_saturation, and value().

◆ operator<<() [5/10]

KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug KisSurfaceColorimetry::operator<< ( QDebug debug,
const Luminance & value )

Definition at line 76 of file KisSurfaceColorimetry.cpp.

76 {
77 QDebugStateSaver saver(debug);
78 debug.nospace() << "Luminance(minLuminance: " << value.minLuminance
79 << ", maxLuminance: " << value.maxLuminance
80 << ", referenceLuminance: " << value.referenceLuminance << ")";
81 return debug;
82}

References value().

◆ operator<<() [6/10]

KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug KisSurfaceColorimetry::operator<< ( QDebug debug,
const MasteringInfo & value )

Definition at line 106 of file KisSurfaceColorimetry.cpp.

106 {
107 QDebugStateSaver saver(debug);
108 debug.nospace() << "MasteringInfo(primaries: " << value.primaries
109 << ", luminance: " << value.luminance;
110 if (value.maxCll) {
111 debug.nospace() << ", maxCll: " << *value.maxCll;
112 }
113 if (value.maxFall) {
114 debug.nospace() << ", maxFall: " << *value.maxFall;
115 }
116 debug.nospace() << ")";
117 return debug;
118}

References value().

◆ operator<<() [7/10]

KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug KisSurfaceColorimetry::operator<< ( QDebug debug,
const MasteringLuminance & value )

Definition at line 84 of file KisSurfaceColorimetry.cpp.

84 {
85 QDebugStateSaver saver(debug);
86 debug.nospace() << "MasteringLuminance(minLuminance: " << value.minLuminance
87 << ", maxLuminance: " << value.maxLuminance << ")";
88 return debug;
89}

References value().

◆ operator<<() [8/10]

KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug KisSurfaceColorimetry::operator<< ( QDebug debug,
const NamedPrimaries & value )

Definition at line 13 of file KisSurfaceColorimetry.cpp.

13 {
14 QDebugStateSaver saver(debug);
15 debug.nospace() << "NamedPrimaries(";
16 switch (value) {
17 case NamedPrimaries::primaries_unknown:
18 debug.nospace() << "primaries_unknown";
19 break;
20 case NamedPrimaries::primaries_srgb:
21 debug.nospace() << "primaries_srgb";
22 break;
23 case NamedPrimaries::primaries_bt2020:
24 debug.nospace() << "primaries_bt2020";
25 break;
26 case NamedPrimaries::primaries_dci_p3:
27 debug.nospace() << "primaries_dci_p3";
28 break;
29 case NamedPrimaries::primaries_display_p3:
30 debug.nospace() << "primaries_display_p3";
31 break;
32 case NamedPrimaries::primaries_adobe_rgb:
33 debug.nospace() << "primaries_adobe_rgb";
34 break;
35 }
36 debug.nospace() << ")";
37 return debug;
38}

References primaries_adobe_rgb, primaries_bt2020, primaries_dci_p3, primaries_display_p3, primaries_srgb, primaries_unknown, and value().

◆ operator<<() [9/10]

KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug KisSurfaceColorimetry::operator<< ( QDebug debug,
const NamedTransferFunction & value )

Definition at line 40 of file KisSurfaceColorimetry.cpp.

40 {
41 QDebugStateSaver saver(debug);
42 debug.nospace() << "NamedTransferFunction(";
43 switch (value) {
44 case NamedTransferFunction::transfer_function_unknown:
45 debug.nospace() << "transfer_function_unknown";
46 break;
47 case NamedTransferFunction::transfer_function_bt1886:
48 debug.nospace() << "transfer_function_bt1886";
49 break;
50 case NamedTransferFunction::transfer_function_gamma22:
51 debug.nospace() << "transfer_function_gamma22";
52 break;
53 case NamedTransferFunction::transfer_function_gamma28:
54 debug.nospace() << "transfer_function_gamma28";
55 break;
56 case NamedTransferFunction::transfer_function_ext_linear:
57 debug.nospace() << "transfer_function_ext_linear";
58 break;
59 case NamedTransferFunction::transfer_function_srgb:
60 debug.nospace() << "transfer_function_srgb";
61 break;
62 case NamedTransferFunction::transfer_function_ext_srgb:
63 debug.nospace() << "transfer_function_ext_srgb";
64 break;
65 case NamedTransferFunction::transfer_function_st2084_pq:
66 debug.nospace() << "transfer_function_st2084_pq";
67 break;
68 case NamedTransferFunction::transfer_function_st428:
69 debug.nospace() << "transfer_function_st428";
70 break;
71 }
72 debug.nospace() << ")";
73 return debug;
74}

References transfer_function_bt1886, transfer_function_ext_linear, transfer_function_ext_srgb, transfer_function_gamma22, transfer_function_gamma28, transfer_function_srgb, transfer_function_st2084_pq, transfer_function_st428, transfer_function_unknown, and value().

◆ operator<<() [10/10]

KRITASURFACECOLORMANAGEMENTAPI_EXPORT QDebug KisSurfaceColorimetry::operator<< ( QDebug debug,
const SurfaceDescription & value )

Definition at line 120 of file KisSurfaceColorimetry.cpp.

120 {
121 QDebugStateSaver saver(debug);
122 debug.nospace() << "SurfaceDescription(colorSpace: " << value.colorSpace;
123 if (value.masteringInfo) {
124 debug.nospace() << ", masteringInfo: " << *value.masteringInfo;
125 }
126 debug.nospace() << ")";
127 return debug;
128}

References value().

◆ primariesKritaToWayland()

QtWayland::wp_color_manager_v1::primaries KisSurfaceColorimetry::primariesKritaToWayland ( KisSurfaceColorimetry::NamedPrimaries primaries)

Definition at line 254 of file KisWaylandSurfaceColorimetry.cpp.

255{
256 using namespace KisSurfaceColorimetry;
257 using primaries_type = QtWayland::wp_color_manager_v1::primaries;
258
259 switch (primaries) {
260 case NamedPrimaries::primaries_srgb:
261 return primaries_type::primaries_srgb;
262 case NamedPrimaries::primaries_bt2020:
263 return primaries_type::primaries_bt2020;
264 case NamedPrimaries::primaries_dci_p3:
265 return primaries_type::primaries_dci_p3;
266 case NamedPrimaries::primaries_display_p3:
267 return primaries_type::primaries_display_p3;
268 case NamedPrimaries::primaries_adobe_rgb:
269 return primaries_type::primaries_adobe_rgb;
270 case NamedPrimaries::primaries_unknown:
271 Q_ASSERT(0 && "trying to set unknown named primary to the surface");
272 }
273 return primaries_type::primaries_srgb;
274}

References primaries_adobe_rgb, primaries_bt2020, primaries_dci_p3, primaries_display_p3, primaries_srgb, and primaries_unknown.

◆ renderIntentKritaToWayland()

QtWayland::wp_color_manager_v1::render_intent KisSurfaceColorimetry::renderIntentKritaToWayland ( KisSurfaceColorimetry::RenderIntent intent)

Definition at line 304 of file KisWaylandSurfaceColorimetry.cpp.

305{
306 using namespace KisSurfaceColorimetry;
307
308 switch (intent) {
309 case RenderIntent::render_intent_perceptual:
310 return QtWayland::wp_color_manager_v1::render_intent::render_intent_perceptual;
311 case RenderIntent::render_intent_relative:
312 return QtWayland::wp_color_manager_v1::render_intent::render_intent_relative;
313 case RenderIntent::render_intent_saturation:
314 return QtWayland::wp_color_manager_v1::render_intent::render_intent_saturation;
315 case RenderIntent::render_intent_absolute:
316 return QtWayland::wp_color_manager_v1::render_intent::render_intent_absolute;
317 case RenderIntent::render_intent_relative_bpc:
318 return QtWayland::wp_color_manager_v1::render_intent::render_intent_relative_bpc;
319 default:
320 Q_ASSERT(false && "Unknown RenderIntent value");
321 return QtWayland::wp_color_manager_v1::render_intent::render_intent_perceptual; // Default fallback
322 }
323}

References render_intent_absolute, render_intent_perceptual, render_intent_relative, render_intent_relative_bpc, and render_intent_saturation.

◆ transferFunctionKritaToWayland()

QtWayland::wp_color_manager_v1::transfer_function KisSurfaceColorimetry::transferFunctionKritaToWayland ( KisSurfaceColorimetry::NamedTransferFunction transferFunction)

Definition at line 276 of file KisWaylandSurfaceColorimetry.cpp.

277{
278 using namespace KisSurfaceColorimetry;
279 using transfer_function_type = QtWayland::wp_color_manager_v1::transfer_function;
280
281 switch (transferFunction) {
282 case NamedTransferFunction::transfer_function_bt1886:
283 return transfer_function_type::transfer_function_bt1886;
284 case NamedTransferFunction::transfer_function_gamma22:
285 return transfer_function_type::transfer_function_gamma22;
286 case NamedTransferFunction::transfer_function_gamma28:
287 return transfer_function_type::transfer_function_gamma28;
288 case NamedTransferFunction::transfer_function_ext_linear:
289 return transfer_function_type::transfer_function_ext_linear;
290 case NamedTransferFunction::transfer_function_srgb:
291 return transfer_function_type::transfer_function_srgb;
292 case NamedTransferFunction::transfer_function_ext_srgb:
293 return transfer_function_type::transfer_function_ext_srgb;
294 case NamedTransferFunction::transfer_function_st2084_pq:
295 return transfer_function_type::transfer_function_st2084_pq;
296 case NamedTransferFunction::transfer_function_st428:
297 return transfer_function_type::transfer_function_st428;
298 case NamedTransferFunction::transfer_function_unknown:
299 Q_ASSERT(0 && "trying to set unknown named transfer function to the surface");
300 }
301 return transfer_function_type::transfer_function_srgb;
302}

References transfer_function_bt1886, transfer_function_ext_linear, transfer_function_ext_srgb, transfer_function_gamma22, transfer_function_gamma28, transfer_function_srgb, transfer_function_st2084_pq, transfer_function_st428, and transfer_function_unknown.

◆ waylandXyFromXy()

std::pair< int32_t, int32_t > KisSurfaceColorimetry::waylandXyFromXy ( KoColorimetryUtils::xy value)
inline

Definition at line 52 of file KisWaylandSurfaceColorimetry.h.

52 {
53 return {std::rint(value.x * 1'000'000.0), std::rint(value.y * 1'000'000.0)};
54}

References value().

◆ xyFromWaylandXy()

KoColorimetryUtils::xy KisSurfaceColorimetry::xyFromWaylandXy ( int32_t x,
int32_t y )
inline

Definition at line 48 of file KisWaylandSurfaceColorimetry.h.

48 {
49 return {x / 1'000'000.0, y / 1'000'000.0};
50}