diff options
Diffstat (limited to 'src/gui/painting/qcolortransform_p.h')
-rw-r--r-- | src/gui/painting/qcolortransform_p.h | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/gui/painting/qcolortransform_p.h b/src/gui/painting/qcolortransform_p.h index 36420dcfdc..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,9 +36,10 @@ public: void updateLutsIn() const; void updateLutsOut() const; - bool simpleGammaCorrection() const; + bool isIdentity() const; + bool isThreeComponentMatrix() const; - void prepare(); + Q_GUI_EXPORT void prepare(); enum TransformFlag { Unpremultiplied = 0, InputOpaque = 1, @@ -47,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 |