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

Classes

struct  ColorSpace
 
struct  Luminance
 
struct  MasteringInfo
 
struct  MasteringLuminance
 
struct  PigmentProfileRequest
 
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

PigmentProfileRequest 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 (KisColorimetryUtils::xy value)
 
KisColorimetryUtils::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 17 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 26 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 38 of file KisSurfaceColorimetry.h.

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

Function Documentation

◆ colorSpaceToRequest()

KRITASURFACECOLORMANAGEMENTAPI_EXPORT PigmentProfileRequest KisSurfaceColorimetry::colorSpaceToRequest ( ColorSpace cs)

Definition at line 55 of file KisSurfaceColorimetryIccUtils.cpp.

56{
58
59 if (std::holds_alternative<NamedPrimaries>(cs.primaries)) {
60 request.colorPrimariesType =
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.colorants = {
65 colorimetry.white().toxy().x, colorimetry.white().toxy().y,
66 colorimetry.red().toxy().x, colorimetry.red().toxy().y,
67 colorimetry.green().toxy().x, colorimetry.green().toxy().y,
68 colorimetry.blue().toxy().x, colorimetry.blue().toxy().y,
69 };
70 }
71
72 if (std::holds_alternative<NamedTransferFunction>(cs.transferFunction)) {
73 request.transferFunction =
74 namedTransferFunctionToPigmentTransferFunction(std::get<NamedTransferFunction>(cs.transferFunction));
75 } else if (std::holds_alternative<uint32_t>(cs.transferFunction)) {
76 auto gamma = std::get<uint32_t>(cs.transferFunction); // gamma * 10000
77 if (gamma == 10000) {
78 request.transferFunction = TRC_LINEAR;
79 } else if (gamma == 18000) {
80 request.transferFunction = TRC_GAMMA_1_8;
81 } else if (gamma == 22000) {
82 request.transferFunction = TRC_ITU_R_BT_470_6_SYSTEM_M;
83 } else if (gamma == 24000) {
84 request.transferFunction = TRC_GAMMA_2_4;
85 } else if (gamma == 28000) {
86 request.transferFunction = TRC_ITU_R_BT_470_6_SYSTEM_B_G;
87 }
88 }
89
90 // any pq-space that is not bt2020pq is considered unsupported
91
92 if (request.transferFunction == TRC_ITU_R_BT_2100_0_PQ &&
93 request.colorPrimariesType != PRIMARIES_ITU_R_BT_2020_2_AND_2100_0) {
94
95 request.transferFunction = TRC_UNSPECIFIED;
96 request.colorants.clear();
97 }
98
99 return request;
100}
@ 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

References KisSurfaceColorimetry::PigmentProfileRequest::colorPrimariesType, namedPrimariesToPigmentPrimaries(), namedTransferFunctionToPigmentTransferFunction(), 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 ( KisColorimetryUtils::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()

KisColorimetryUtils::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}