1 /* 2 * DQt - D bindings for the Qt Toolkit 3 * 4 * GNU Lesser General Public License Usage 5 * This file may be used under the terms of the GNU Lesser 6 * General Public License version 3 as published by the Free Software 7 * Foundation and appearing in the file LICENSE.LGPL3 included in the 8 * packaging of this file. Please review the following information to 9 * ensure the GNU Lesser General Public License version 3 requirements 10 * will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 11 */ 12 module qt.gui.colorspace; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.bytearray; 17 import qt.core.list; 18 import qt.core.metamacros; 19 import qt.core.point; 20 import qt.core.shareddata; 21 import qt.core.string; 22 import qt.core.typeinfo; 23 import qt.core.variant; 24 import qt.gui.colortransform; 25 import qt.helpers; 26 27 28 /+ QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QColorSpacePrivate, Q_GUI_EXPORT) +/ 29 /// Binding for C++ class [QColorSpace](https://doc.qt.io/qt-6/qcolorspace.html). 30 @Q_RELOCATABLE_TYPE extern(C++, class) struct /+ Q_GUI_EXPORT +/ QColorSpace 31 { 32 mixin(Q_GADGET); 33 public: 34 enum NamedColorSpace { 35 SRgb = 1, 36 SRgbLinear, 37 AdobeRgb, 38 DisplayP3, 39 ProPhotoRgb 40 } 41 /+ Q_ENUM(NamedColorSpace) +/ 42 enum /+ class +/ Primaries { 43 Custom = 0, 44 SRgb, 45 AdobeRgb, 46 DciP3D65, 47 ProPhotoRgb 48 } 49 /+ Q_ENUM(Primaries) +/ 50 enum /+ class +/ TransferFunction { 51 Custom = 0, 52 Linear, 53 Gamma, 54 SRgb, 55 ProPhotoRgb 56 } 57 /+ Q_ENUM(TransferFunction) +/ 58 59 /+ QColorSpace() noexcept = default; +/ 60 this(NamedColorSpace namedColorSpace); 61 this(Primaries primaries, TransferFunction transferFunction, float gamma = 0.0f); 62 this(Primaries primaries, float gamma); 63 this(Primaries primaries, ref const(QList!(ushort)) transferFunctionTable); 64 this(ref const(QPointF) whitePoint, ref const(QPointF) redPoint, 65 ref const(QPointF) greenPoint, ref const(QPointF) bluePoint, 66 TransferFunction transferFunction, float gamma = 0.0f); 67 this(ref const(QPointF) whitePoint, ref const(QPointF) redPoint, 68 ref const(QPointF) greenPoint, ref const(QPointF) bluePoint, 69 ref const(QList!(ushort)) transferFunctionTable); 70 this(ref const(QPointF) whitePoint, ref const(QPointF) redPoint, 71 ref const(QPointF) greenPoint, ref const(QPointF) bluePoint, 72 ref const(QList!(ushort)) redTransferFunctionTable, 73 ref const(QList!(ushort)) greenTransferFunctionTable, 74 ref const(QList!(ushort)) blueTransferFunctionTable); 75 ~this(); 76 77 @disable this(this); 78 this(ref const(QColorSpace) colorSpace)/+ noexcept+/; 79 /+ref QColorSpace operator =(ref const(QColorSpace) colorSpace)/+ noexcept+/ 80 { 81 auto copy = QColorSpace(colorSpace); 82 swap(copy); 83 return this; 84 }+/ 85 86 /+ QColorSpace(QColorSpace &&colorSpace) noexcept = default; +/ 87 /+ QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QColorSpace) +/ 88 89 /+ void swap(QColorSpace &colorSpace) noexcept 90 { qSwap(d_ptr, colorSpace.d_ptr); } +/ 91 92 Primaries primaries() const/+ noexcept+/; 93 TransferFunction transferFunction() const/+ noexcept+/; 94 float gamma() const/+ noexcept+/; 95 96 QString description() const/+ noexcept+/; 97 void setDescription(ref const(QString) description); 98 99 void setTransferFunction(TransferFunction transferFunction, float gamma = 0.0f); 100 void setTransferFunction(ref const(QList!(ushort)) transferFunctionTable); 101 void setTransferFunctions(ref const(QList!(ushort)) redTransferFunctionTable, 102 ref const(QList!(ushort)) greenTransferFunctionTable, 103 ref const(QList!(ushort)) blueTransferFunctionTable); 104 QColorSpace withTransferFunction(TransferFunction transferFunction, float gamma = 0.0f) const; 105 QColorSpace withTransferFunction(ref const(QList!(ushort)) transferFunctionTable) const; 106 QColorSpace withTransferFunctions(ref const(QList!(ushort)) redTransferFunctionTable, 107 ref const(QList!(ushort)) greenTransferFunctionTable, 108 ref const(QList!(ushort)) blueTransferFunctionTable) const; 109 110 void setPrimaries(Primaries primariesId); 111 void setPrimaries(ref const(QPointF) whitePoint, ref const(QPointF) redPoint, 112 ref const(QPointF) greenPoint, ref const(QPointF) bluePoint); 113 114 void detach(); 115 bool isValid() const/+ noexcept+/; 116 117 /+ friend inline bool operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2) 118 { return colorSpace1.equals(colorSpace2); } +/ 119 /+ friend inline bool operator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2) 120 { return !(colorSpace1 == colorSpace2); } +/ 121 122 static QColorSpace fromIccProfile(ref const(QByteArray) iccProfile); 123 QByteArray iccProfile() const; 124 125 QColorTransform transformationToColorSpace(ref const(QColorSpace) colorspace) const; 126 127 /+auto opCast(T : QVariant)() const;+/ 128 129 private: 130 /+ friend class QColorSpacePrivate; +/ 131 bool equals(ref const(QColorSpace) other) const; 132 133 QExplicitlySharedDataPointer!(QColorSpacePrivate) d_ptr; 134 135 /+ #ifndef QT_NO_DEBUG_STREAM 136 friend Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QColorSpace &colorSpace); 137 #endif +/ 138 mixin(CREATE_CONVENIENCE_WRAPPERS); 139 } 140 141 /+ Q_DECLARE_SHARED(QColorSpace) 142 143 // QColorSpace stream functions 144 #if !defined(QT_NO_DATASTREAM) 145 Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QColorSpace &); 146 Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QColorSpace &); 147 #endif 148 149 #ifndef QT_NO_DEBUG_STREAM 150 Q_GUI_EXPORT QDebug operator<<(QDebug, const QColorSpace &); 151 #endif +/ 152