blob: 288dca4de5c1c4cbdf2a40ad760755d6c44c8178 [file] [log] [blame]
John Reck9ce2bf72018-07-02 18:33:32 -07001/*
2 * Copyright (C) 2018 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#pragma once
18
John Reckf3c724f2018-09-20 13:00:04 -070019#include "hwui/Bitmap.h"
20
John Reck9ce2bf72018-07-02 18:33:32 -070021#include <SkCanvas.h>
22#include <SkPaintFilterCanvas.h>
23
24#include <memory>
25
26namespace android::uirenderer {
27
28enum class UsageHint {
29 Unknown = 0,
30 Background = 1,
John Reckf3c724f2018-09-20 13:00:04 -070031 Foreground = 2,
Tyler Freemane0faa692023-11-16 00:48:54 +000032 // Contains foreground (usually text), like a button or chip
33 Container = 3
John Reck9ce2bf72018-07-02 18:33:32 -070034};
35
36enum class ColorTransform {
37 None,
38 Light,
39 Dark,
Tyler Freemane0faa692023-11-16 00:48:54 +000040 Invert
John Reck9ce2bf72018-07-02 18:33:32 -070041};
42
John Reck8f45d4a2018-08-15 10:17:12 -070043// True if the paint was modified, false otherwise
44bool transformPaint(ColorTransform transform, SkPaint* paint);
John Reck9ce2bf72018-07-02 18:33:32 -070045
John Reckf3c724f2018-09-20 13:00:04 -070046bool transformPaint(ColorTransform transform, SkPaint* paint, BitmapPalette palette);
47
Lucas Dupin00af5272021-04-29 20:30:01 -070048SkColor transformColor(ColorTransform transform, SkColor color);
49SkColor transformColorInverse(ColorTransform transform, SkColor color);
50
Alec Mouridded51f2023-02-01 06:04:55 +000051} // namespace android::uirenderer