// 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_