1/*
2 * Copyright 2006 The Android Open Source Project
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 SkTableMaskFilter_DEFINED
9#define SkTableMaskFilter_DEFINED
10
11#include "include/core/SkMaskFilter.h"
12#include "include/core/SkScalar.h"
13
14/** \class SkTableMaskFilter
15
16 Applies a table lookup on each of the alpha values in the mask.
17 Helper methods create some common tables (e.g. gamma, clipping)
18 */
19class SK_API SkTableMaskFilter {
20public:
21 /** Utility that sets the gamma table
22 */
23 static void MakeGammaTable(uint8_t table[256], SkScalar gamma);
24
25 /** Utility that creates a clipping table: clamps values below min to 0
26 and above max to 255, and rescales the remaining into 0..255
27 */
28 static void MakeClipTable(uint8_t table[256], uint8_t min, uint8_t max);
29
30 static SkMaskFilter* Create(const uint8_t table[256]);
31 static SkMaskFilter* CreateGamma(SkScalar gamma);
32 static SkMaskFilter* CreateClip(uint8_t min, uint8_t max);
33
34 SkTableMaskFilter() = delete;
35};
36
37#endif
38