// Copyright 2019 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_COLOR_COLOR_MIXER_H_ #define UI_COLOR_COLOR_MIXER_H_ #include <map> #include <set> #include "base/component_export.h" #include "base/functional/callback_forward.h" #include "base/functional/callback_helpers.h" #include "base/memory/raw_ptr.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/color/color_id.h" namespace ui { class ColorProvider; class ColorRecipe; // ColorMixer represents a single conceptual mapping of a set of inputs, via a // collection of transforms, to a set of outputs. Examples of plausible // ColorMixers are "the UI element colors, as constructed from core color // primitive values", "the way a set of high contrast colors overwrites default // values", "the final output colors for all parts of a single UI area", or // "a layer that enforces contrast minima on a variety of inputs". ColorMixers // are chained together into a pipeline by a ColorProvider, and thus may rely // completely, partly, or not at all on the inputs and outputs of previous // mixers in the pipeline. class COMPONENT_EXPORT(COLOR) ColorMixer { … }; } // namespace ui #endif // UI_COLOR_COLOR_MIXER_H_