|
|
|
@ -29,13 +29,32 @@ class KWIN_EXPORT Colorimetry
|
|
|
|
|
public:
|
|
|
|
|
static constexpr Colorimetry fromName(NamedColorimetry name);
|
|
|
|
|
static Colorimetry fromXYZ(QVector3D red, QVector3D green, QVector3D blue, QVector3D white);
|
|
|
|
|
/**
|
|
|
|
|
* @returns the XYZ representation of the xyY color passed in. Y is assumed to be one
|
|
|
|
|
*/
|
|
|
|
|
static QVector3D xyToXYZ(QVector2D xy);
|
|
|
|
|
/**
|
|
|
|
|
* @returns the xyY representation of the XYZ color passed in. Y is normalized to be one
|
|
|
|
|
*/
|
|
|
|
|
static QVector2D xyzToXY(QVector3D xyz);
|
|
|
|
|
/**
|
|
|
|
|
* @returns a matrix adapting XYZ values from the source whitepoint to the destination whitepoint with the Bradford transform
|
|
|
|
|
*/
|
|
|
|
|
static QMatrix3x3 chromaticAdaptationMatrix(QVector2D sourceWhitepoint, QVector2D destinationWhitepoint);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @returns a matrix that transforms from the linear RGB representation of colors in this colorimetry to the XYZ representation
|
|
|
|
|
*/
|
|
|
|
|
QMatrix3x3 toXYZ() const;
|
|
|
|
|
/**
|
|
|
|
|
* @returns a matrix that transforms from linear RGB in this colorimetry to linear RGB in the other colorimetry
|
|
|
|
|
* the rendering intent is relative colorimetric
|
|
|
|
|
*/
|
|
|
|
|
QMatrix3x3 toOther(const Colorimetry &colorimetry) const;
|
|
|
|
|
bool operator==(const Colorimetry &other) const;
|
|
|
|
|
/**
|
|
|
|
|
* @returns this colorimetry, adapted to the new whitepoint using the Bradford transform
|
|
|
|
|
*/
|
|
|
|
|
Colorimetry adaptedTo(QVector2D newWhitepoint) const;
|
|
|
|
|
|
|
|
|
|
QVector2D red;
|
|
|
|
|