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 "SkMaskFilter.h" 12 #include "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 */ 19 class SK_API SkTableMaskFilter { 20 public: 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