File indexing completed on 2025-02-23 04:08:59

0001 /*
0002  *  SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef __KIS_EXPOSURE_GAMMA_CORRECTION_INTERFACE_H
0008 #define __KIS_EXPOSURE_GAMMA_CORRECTION_INTERFACE_H
0009 
0010 #include <QtGlobal>
0011 #include <kritaui_export.h>
0012 
0013 /**
0014  * A special interface for OCIO filter providing functionality for the
0015  * main UI module. See Dependency Inversion Principle for more.
0016  */
0017 struct KRITAUI_EXPORT KisExposureGammaCorrectionInterface {
0018     virtual ~KisExposureGammaCorrectionInterface();
0019     virtual bool canChangeExposureAndGamma() const = 0;
0020     virtual qreal currentExposure() const = 0;
0021     virtual void setCurrentExposure(qreal value) = 0;
0022     virtual qreal currentGamma() const = 0;
0023     virtual void setCurrentGamma(qreal value) = 0;
0024 };
0025 
0026 struct KRITAUI_EXPORT KisDumbExposureGammaCorrectionInterface : public KisExposureGammaCorrectionInterface
0027 {
0028     static KisDumbExposureGammaCorrectionInterface* instance();
0029 
0030     bool canChangeExposureAndGamma() const override;
0031     qreal currentExposure() const override;
0032     void setCurrentExposure(qreal value) override;
0033     qreal currentGamma() const override;
0034     void setCurrentGamma(qreal value) override;
0035 };
0036 
0037 #endif /* __KIS_EXPOSURE_GAMMA_CORRECTION_INTERFACE_H */