chromium/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h

#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_DARK_MODE_LAB_COLOR_SPACE_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_DARK_MODE_LAB_COLOR_SPACE_H_

#include <algorithm>
#include <cmath>

#include "base/check.h"
#include "third_party/skia/include/core/SkM44.h"

namespace blink {

// TODO(prashant.n): Hide implementation details to .cc file.
// Namespace to handle color transformation between RGB and CIE L*a*b* color
// spaces.
namespace lab {

static constexpr SkV3 kIlluminantD50 =;
static constexpr SkV3 kIlluminantD65 =;

// All matrices here are 3x3 matrices.
// They are stored in SkM44 which is 4x4 matrix in the following form.
// |a b c 0|
// |d e f 0|
// |g h i 0|
// |0 0 0 1|

template <typename T>
inline constexpr T Clamp(T x, T min, T max) {}

// See https://en.wikipedia.org/wiki/Chromatic_adaptation#Von_Kries_transform.
inline SkM44 ChromaticAdaptation(const SkM44& matrix,
                                 const SkV3& src_white_point,
                                 const SkV3& dst_white_point) {}

class DarkModeSRGBColorSpace {};

class DarkModeLABColorSpace {};

class DarkModeSRGBLABTransformer {};

}  // namespace lab

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_DARK_MODE_LAB_COLOR_SPACE_H_