diff options
Diffstat (limited to 'src/gui/painting/qcolortransform_p.h')
-rw-r--r-- | src/gui/painting/qcolortransform_p.h | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/gui/painting/qcolortransform_p.h b/src/gui/painting/qcolortransform_p.h index 99c09188cb..59ea6a2405 100644 --- a/src/gui/painting/qcolortransform_p.h +++ b/src/gui/painting/qcolortransform_p.h @@ -22,6 +22,7 @@ #include <QtGui/qrgbafloat.h> QT_BEGIN_NAMESPACE +class QCmyk32; class QColorTransformPrivate : public QSharedData { @@ -35,8 +36,8 @@ public: void updateLutsIn() const; void updateLutsOut() const; - bool simpleGammaCorrection() const; bool isIdentity() const; + bool isThreeComponentMatrix() const; Q_GUI_EXPORT void prepare(); enum TransformFlag { @@ -48,19 +49,25 @@ public: }; Q_DECLARE_FLAGS(TransformFlags, TransformFlag) - void apply(QRgb *dst, const QRgb *src, qsizetype count, TransformFlags flags = Unpremultiplied) const; - void apply(QRgba64 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags = Unpremultiplied) const; - void apply(QRgbaFloat32 *dst, const QRgbaFloat32 *src, qsizetype count, - TransformFlags flags = Unpremultiplied) const; - void apply(quint8 *dst, const QRgb *src, qsizetype count, TransformFlags flags = Unpremultiplied) const; - void apply(quint16 *dst, const QRgba64 *src, qsizetype count, TransformFlags flags = Unpremultiplied) const; - - template<typename T> - void apply(T *dst, const T *src, qsizetype count, TransformFlags flags) const; + QColorVector map(QColorVector color) const; + QColorVector mapExtended(QColorVector color) const; template<typename D, typename S> + void apply(D *dst, const S *src, qsizetype count, TransformFlags flags) const; + template<typename D, typename S> + void applyGray(D *dst, const S *src, qsizetype count, TransformFlags flags) const; + template<typename D, typename S> void applyReturnGray(D *dst, const S *src, qsizetype count, TransformFlags flags) const; +private: + template<typename S> + void applyConvertIn(const S *src, QColorVector *buffer, qsizetype len, TransformFlags flags) const; + template<typename D, typename S> + void applyConvertOut(D *dst, const S *src, QColorVector *buffer, qsizetype len, TransformFlags flags) const; + template<typename D, typename S> + void applyElementListTransform(D *dst, const S *src, qsizetype count, TransformFlags flags) const; + template<typename D, typename S> + void applyThreeComponentMatrix(D *dst, const S *src, qsizetype count, TransformFlags flags) const; }; QT_END_NAMESPACE |