24 enum NamedColorSpace {
34 Q_ENUM(NamedColorSpace)
35 enum class Primaries {
44 enum class TransferFunction {
54 Q_ENUM(TransferFunction)
55 enum class TransformModel : uint8_t {
56 ThreeComponentMatrix = 0,
57 ElementListProcessing,
59 Q_ENUM(TransformModel)
60 enum class ColorModel : uint8_t {
70 Q_GUI_EXPORT
static PrimaryPoints fromPrimaries(Primaries primaries);
71 Q_GUI_EXPORT
bool isValid()
const noexcept;
78 QColorSpace()
noexcept =
default;
79 QColorSpace(NamedColorSpace namedColorSpace);
80 explicit QColorSpace(QPointF whitePoint, TransferFunction transferFunction,
float gamma = 0.0f);
81 explicit QColorSpace(QPointF whitePoint,
const QList<uint16_t> &transferFunctionTable);
82 QColorSpace(Primaries primaries, TransferFunction transferFunction,
float gamma = 0.0f);
83 QColorSpace(Primaries primaries,
float gamma);
84 QColorSpace(Primaries primaries,
const QList<uint16_t> &transferFunctionTable);
85 QColorSpace(
const QPointF &whitePoint,
const QPointF &redPoint,
86 const QPointF &greenPoint,
const QPointF &bluePoint,
87 TransferFunction transferFunction,
float gamma = 0.0f);
88 QColorSpace(
const PrimaryPoints &primaryPoints,
89 TransferFunction transferFunction,
float gamma = 0.0f);
90 QColorSpace(
const QPointF &whitePoint,
const QPointF &redPoint,
91 const QPointF &greenPoint,
const QPointF &bluePoint,
92 const QList<uint16_t> &transferFunctionTable);
93 QColorSpace(
const QPointF &whitePoint,
const QPointF &redPoint,
94 const QPointF &greenPoint,
const QPointF &bluePoint,
95 const QList<uint16_t> &redTransferFunctionTable,
96 const QList<uint16_t> &greenTransferFunctionTable,
97 const QList<uint16_t> &blueTransferFunctionTable);
100 QColorSpace(
const QColorSpace &colorSpace)
noexcept;
101 QColorSpace &operator=(
const QColorSpace &colorSpace)
noexcept
103 QColorSpace copy(colorSpace);
108 QColorSpace(QColorSpace &&colorSpace)
noexcept =
default;
109 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QColorSpace)
111 void swap(QColorSpace &colorSpace)
noexcept
112 { d_ptr.swap(colorSpace.d_ptr); }
114 Primaries primaries()
const noexcept;
115 TransferFunction transferFunction()
const noexcept;
116 float gamma()
const noexcept;
118 QString description()
const noexcept;
119 void setDescription(
const QString &description);
121 void setTransferFunction(TransferFunction transferFunction,
float gamma = 0.0f);
122 void setTransferFunction(
const QList<uint16_t> &transferFunctionTable);
123 void setTransferFunctions(
const QList<uint16_t> &redTransferFunctionTable,
124 const QList<uint16_t> &greenTransferFunctionTable,
125 const QList<uint16_t> &blueTransferFunctionTable);
126 QColorSpace withTransferFunction(TransferFunction transferFunction,
float gamma = 0.0f)
const;
127 QColorSpace withTransferFunction(
const QList<uint16_t> &transferFunctionTable)
const;
128 QColorSpace withTransferFunctions(
const QList<uint16_t> &redTransferFunctionTable,
129 const QList<uint16_t> &greenTransferFunctionTable,
130 const QList<uint16_t> &blueTransferFunctionTable)
const;
132 void setPrimaries(Primaries primariesId);
133 void setPrimaries(
const QPointF &whitePoint,
const QPointF &redPoint,
134 const QPointF &greenPoint,
const QPointF &bluePoint);
135 void setWhitePoint(QPointF whitePoint);
136 QPointF whitePoint()
const;
137 void setPrimaryPoints(
const PrimaryPoints &primaryPoints);
138 PrimaryPoints primaryPoints()
const;
140 TransformModel transformModel()
const noexcept;
141 ColorModel colorModel()
const noexcept;
143 bool isValid()
const noexcept;
144 bool isValidTarget()
const noexcept;
146 friend inline bool operator==(
const QColorSpace &colorSpace1,
const QColorSpace &colorSpace2)
147 {
return colorSpace1.equals(colorSpace2); }
148 friend inline bool operator!=(
const QColorSpace &colorSpace1,
const QColorSpace &colorSpace2)
149 {
return !(colorSpace1 == colorSpace2); }
151 static QColorSpace fromIccProfile(
const QByteArray &iccProfile);
152 QByteArray iccProfile()
const;
154 QColorTransform transformationToColorSpace(
const QColorSpace &colorspace)
const;
156 operator QVariant()
const;
159 friend class QColorSpacePrivate;
160 bool equals(
const QColorSpace &other)
const;
162 QExplicitlySharedDataPointer<QColorSpacePrivate> d_ptr;
164#ifndef QT_NO_DEBUG_STREAM
165 friend Q_GUI_EXPORT QDebug operator<<(QDebug dbg,
const QColorSpace &colorSpace);