Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_hdr_metadata_models.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2026 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KIS_HDR_METADATA_MODELS_H
7#define KIS_HDR_METADATA_MODELS_H
8
9#include <QObject>
10
11#include <lager/cursor.hpp>
12#include <lager/extra/qt.hpp>
13#include <lager/state.hpp>
14
16#include <kis_hdr_metadata.h>
17
18#include "kritaimage_export.h"
19
20class KRITAIMAGE_EXPORT KisHDRMetadataModel : public QObject
21{
22 Q_OBJECT
23public:
24 explicit KisHDRMetadataModel(QObject *parent = nullptr);
26
27 lager::state<KisRelativeContentLightLevelInformation, lager::automatic_tag> clliData;
28 lager::state<KisColorVolumeInformation, lager::automatic_tag> cviData;
29 lager::state<double, lager::automatic_tag> imageProfileReferenceWhiteData;
30 lager::state<double, lager::automatic_tag> referenceWhiteData;
31 lager::state<bool, lager::automatic_tag> imageProfileIsRelativeData;
32 lager::state<bool, lager::automatic_tag> referenceWhitePresentData;
33 lager::state<bool, lager::automatic_tag> clliPresentData;
34 lager::state<bool, lager::automatic_tag> cviPresentData;
35
36 LAGER_QT_CURSOR(bool, referenceWhitePresent);
37 LAGER_QT_READER(bool, effectiveReferenceWhitePresent);
38 LAGER_QT_READER(bool, effectiveReferenceWhiteEnabled);
39 LAGER_QT_READER(CheckBoxState, referenceWhitePresentState);
40
41 LAGER_QT_CURSOR(double, referenceWhite);
42 LAGER_QT_CURSOR(int, referenceWhiteIndex);
43 LAGER_QT_READER(double, effectiveReferenceWhite);
44 LAGER_QT_READER(int, effectiveReferenceWhiteIndex);
45 LAGER_QT_READER(ComboBoxState, referenceWhiteState);
46
47 LAGER_QT_CURSOR(bool, clliPresent);
48 LAGER_QT_READER(bool, effectiveClliPresent);
49 LAGER_QT_READER(CheckBoxState, clliPresentState);
50
51 LAGER_QT_CURSOR(double, maxContentLightLevel);
52 LAGER_QT_CURSOR(double, maxFrameAverageLightLevel);
54 LAGER_QT_READER(ComboBoxState, clliCalculationTypeState);
55
56 LAGER_QT_CURSOR(bool, cviPresent);
57
58 LAGER_QT_CURSOR(int, cviEffectivePresetIndex);
59 LAGER_QT_READER(ComboBoxState, cviEffectivePresetIndexState);
60
61 LAGER_QT_CURSOR(double, cviWhiteX);
62 LAGER_QT_CURSOR(double, cviWhiteY);
63 LAGER_QT_CURSOR(double, cviRedX);
64 LAGER_QT_CURSOR(double, cviRedY);
65 LAGER_QT_CURSOR(double, cviGreenX);
66 LAGER_QT_CURSOR(double, cviGreenY);
67 LAGER_QT_CURSOR(double, cviBlueX);
68 LAGER_QT_CURSOR(double, cviBlueY);
69
70 LAGER_QT_CURSOR(double, cviMaxLuminance);
71 LAGER_QT_CURSOR(double, cviMinLuminance);
72
73 void setClli(const std::optional<KisRelativeContentLightLevelInformation> &clli);
74 void setCvi(const std::optional<KisColorVolumeInformation> &cvi);
75 void setImageHdrReferenceWhiteMetadata(const std::optional<double> &refWhite);
76 void setImageProfileHdrReferenceWhite(const std::optional<double> &refWhite);
77
78};
79
80#endif // KIS_HDR_METADATA_MODELS_H
LAGER_QT_CURSOR(bool, referenceWhitePresent)
lager::state< double, lager::automatic_tag > referenceWhiteData
LAGER_QT_READER(bool, effectiveReferenceWhitePresent)
void setImageProfileHdrReferenceWhite(const std::optional< double > &refWhite)
LAGER_QT_READER(CheckBoxState, clliPresentState)
lager::state< bool, lager::automatic_tag > imageProfileIsRelativeData
lager::state< bool, lager::automatic_tag > referenceWhitePresentData
lager::state< bool, lager::automatic_tag > cviPresentData
LAGER_QT_READER(ComboBoxState, referenceWhiteState)
LAGER_QT_CURSOR(double, maxFrameAverageLightLevel)
void setCvi(const std::optional< KisColorVolumeInformation > &cvi)
LAGER_QT_CURSOR(bool, cviPresent)
lager::state< bool, lager::automatic_tag > clliPresentData
LAGER_QT_CURSOR(bool, clliPresent)
LAGER_QT_CURSOR(double, cviWhiteY)
LAGER_QT_READER(int, effectiveReferenceWhiteIndex)
LAGER_QT_CURSOR(double, cviBlueX)
LAGER_QT_CURSOR(double, referenceWhite)
LAGER_QT_CURSOR(double, cviGreenX)
void setClli(const std::optional< KisRelativeContentLightLevelInformation > &clli)
LAGER_QT_CURSOR(double, cviWhiteX)
lager::state< KisRelativeContentLightLevelInformation, lager::automatic_tag > clliData
LAGER_QT_READER(ComboBoxState, clliCalculationTypeState)
LAGER_QT_CURSOR(KisRelativeContentLightLevelInformation::CalculationType, clliCalculationType)
LAGER_QT_READER(bool, effectiveClliPresent)
void setImageHdrReferenceWhiteMetadata(const std::optional< double > &refWhite)
LAGER_QT_CURSOR(double, cviGreenY)
LAGER_QT_CURSOR(double, maxContentLightLevel)
LAGER_QT_READER(CheckBoxState, referenceWhitePresentState)
lager::state< KisColorVolumeInformation, lager::automatic_tag > cviData
LAGER_QT_READER(ComboBoxState, cviEffectivePresetIndexState)
LAGER_QT_CURSOR(double, cviMaxLuminance)
LAGER_QT_CURSOR(double, cviMinLuminance)
LAGER_QT_READER(bool, effectiveReferenceWhiteEnabled)
LAGER_QT_CURSOR(double, cviBlueY)
lager::state< double, lager::automatic_tag > imageProfileReferenceWhiteData
LAGER_QT_CURSOR(int, referenceWhiteIndex)
LAGER_QT_CURSOR(double, cviRedY)
LAGER_QT_CURSOR(double, cviRedX)
LAGER_QT_READER(double, effectiveReferenceWhite)
LAGER_QT_CURSOR(int, cviEffectivePresetIndex)