File indexing completed on 2024-05-26 04:32:15

0001 /*
0002  *  SPDX-FileCopyrightText: 2008 Cyrille Berger <cberger@cberger.net>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #ifndef _KO_ICC_COLOR_SPACE_ENGINE_H_
0008 #define _KO_ICC_COLOR_SPACE_ENGINE_H_
0009 
0010 #include <KoColorSpaceEngine.h>
0011 
0012 class IccColorSpaceEngine : public KoColorSpaceEngine
0013 {
0014 public:
0015     IccColorSpaceEngine();
0016     ~IccColorSpaceEngine() override;
0017     const KoColorProfile *addProfile(const QString &filename) override;
0018     const KoColorProfile *addProfile(const QByteArray &data) override;
0019     const KoColorProfile * getProfile(const QVector<double> &colorants, ColorPrimaries colorPrimaries, TransferCharacteristics transferFunction) override;
0020     void removeProfile(const QString &filename) override;
0021     KoColorConversionTransformation *createColorTransformation(const KoColorSpace *srcColorSpace,
0022             const KoColorSpace *dstColorSpace,
0023             KoColorConversionTransformation::Intent renderingIntent,
0024             KoColorConversionTransformation::ConversionFlags conversionFlags) const override;
0025     KoColorProofingConversionTransformation *createColorProofingTransformation(const KoColorSpace *srcColorSpace,
0026             const KoColorSpace *dstColorSpace,
0027             const KoColorSpace *proofingSpace,
0028             KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::Intent proofingIntent,
0029             KoColorConversionTransformation::ConversionFlags conversionFlags, quint8 *gamutWarning, double adaptationState) const override;
0030     quint32 computeColorSpaceType(const KoColorSpace *cs) const;
0031 
0032     bool supportsColorSpace(const QString& colorModelId, const QString& colorDepthId, const KoColorProfile *profile) const override;
0033 private:
0034     struct Private;
0035     Private *const d;
0036 };
0037 
0038 #endif