chromium/ui/display/types/display_color_management.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_DISPLAY_TYPES_DISPLAY_COLOR_MANAGEMENT_H_
#define UI_DISPLAY_TYPES_DISPLAY_COLOR_MANAGEMENT_H_

#include <memory>
#include <string>
#include <vector>

#include "third_party/skia/modules/skcms/skcms.h"
#include "ui/display/types/display_types_export.h"
#include "ui/display/types/gamma_ramp_rgb_entry.h"

namespace display {

// A structure that specifies curves for the red, green, and blue color
// channels.
class DISPLAY_TYPES_EXPORT GammaCurve {};

// A structure that contains color calibration information extracted from an
// ICC profile. This is a more general structure than the usual SkColorSpace
// or gfx::ColorSpace that is extracted from an ICC profile in that it allows
// for lookup table based curves and separate curves for each color channel.
// This functionality was added historically (in https://crbug.com/471749 and
// https://crbug.com/495196, for ChromeOS), and may be more information than
// is needed (in which case, the internals of this can be replaced with an
// SkColorSpace or similar).
struct ColorCalibration {};

// A structure that contains the transformation to make to the display's color
// due to adaptations for color temperature (e.g, https://crbug.com/705816, for
// ChromeOS night light).
struct ColorTemperatureAdjustment {};

// A structure that contains a per-channel transformation to make in the
// display's color space to adjust the brightness of the screen (e.g,
// b/109942195, for Chromecast gamma adaptation).
struct GammaAdjustment {};

}  // namespace display

#endif  // UI_DISPLAY_TYPES_DISPLAY_COLOR_MANAGEMENT_H_