Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / skia / include / effects / SkTableColorFilter.h
1 /*
2 * Copyright 2015 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #ifndef SkTableColorFilter_DEFINED
9 #define SkTableColorFilter_DEFINED
10
11 #include "include/core/SkColorFilter.h"
12
13 class SK_API SkTableColorFilter {
14 public:
15     /**
16      *  Create a table colorfilter, copying the table into the filter, and
17      *  applying it to all 4 components.
18      *      a' = table[a];
19      *      r' = table[r];
20      *      g' = table[g];
21      *      b' = table[b];
22      *  Compoents are operated on in unpremultiplied space. If the incomming
23      *  colors are premultiplied, they are temporarily unpremultiplied, then
24      *  the table is applied, and then the result is remultiplied.
25      */
26     static sk_sp<SkColorFilter> Make(const uint8_t table[256]);
27
28     /**
29      *  Create a table colorfilter, with a different table for each
30      *  component [A, R, G, B]. If a given table is NULL, then it is
31      *  treated as identity, with the component left unchanged. If a table
32      *  is not null, then its contents are copied into the filter.
33      */
34     static sk_sp<SkColorFilter> MakeARGB(const uint8_t tableA[256],
35                                          const uint8_t tableR[256],
36                                          const uint8_t tableG[256],
37                                          const uint8_t tableB[256]);
38
39     static void RegisterFlattenables();
40 };
41
42 #endif