| // Copyright 2020 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CC_TILES_RASTER_DARK_MODE_FILTER_H_ |
| #define CC_TILES_RASTER_DARK_MODE_FILTER_H_ |
| |
| #include "cc/cc_export.h" |
| #include "third_party/skia/include/core/SkColorFilter.h" |
| #include "third_party/skia/include/core/SkPixmap.h" |
| |
| namespace cc { |
| |
| // This class provides an interface/wrapeer over blink::DarkModeFilter. The APIs |
| // in this interface are thread-safe and can be used concurrently from any |
| // thread. The interface would be created and destroyed on main thread. Derived |
| // classes should ensure making these APIs thread-safe. |
| class CC_EXPORT RasterDarkModeFilter { |
| public: |
| virtual ~RasterDarkModeFilter() = default; |
| |
| // Ensure pixmap has decoded data before calling this API. |
| virtual sk_sp<SkColorFilter> ApplyToImage(const SkPixmap& pixmap, |
| const SkIRect& src) const = 0; |
| }; |
| |
| } // namespace cc |
| |
| #endif // CC_TILES_RASTER_DARK_MODE_FILTER_H_ |