diff options
author | jcgregorio <jcgregorio@google.com> | 2016-07-18 08:18:50 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-18 08:18:51 -0700 |
commit | eb9a84aa576e6278afca6f0cbef4ac80d85cc001 (patch) | |
tree | c43e608270b58e1e2c541788805bcb1f2a8ae220 /include | |
parent | 0ae36a2cebf35c68c3013383d3b640f70034be55 (diff) |
Revert of remove unused TableMaskFilter (patchset #1 id:1 of https://codereview.chromium.org/2156463002/ )
Reason for revert:
Needed for Android:
frameworks/base/core/jni/android/graphics/MaskFilter.cpp:5:10: fatal error: 'SkTableMaskFilter.h' file not found
Original issue's description:
> remove unused TableMaskFilter
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2156463002
>
> TBR=
>
> Committed: https://skia.googlesource.com/skia/+/59779ae8ce316bf8b8082ec2df1683ccd38161f1
TBR=reed@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:
Review-Url: https://codereview.chromium.org/2156183002
Diffstat (limited to 'include')
-rw-r--r-- | include/effects/SkTableMaskFilter.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/include/effects/SkTableMaskFilter.h b/include/effects/SkTableMaskFilter.h new file mode 100644 index 0000000000..757ddf2084 --- /dev/null +++ b/include/effects/SkTableMaskFilter.h @@ -0,0 +1,66 @@ +/* + * Copyright 2006 The Android Open Source Project + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkTableMaskFilter_DEFINED +#define SkTableMaskFilter_DEFINED + +#include "SkMaskFilter.h" +#include "SkScalar.h" + +/** \class SkTableMaskFilter + + Applies a table lookup on each of the alpha values in the mask. + Helper methods create some common tables (e.g. gamma, clipping) + */ +class SK_API SkTableMaskFilter : public SkMaskFilter { +public: + /** Utility that sets the gamma table + */ + static void MakeGammaTable(uint8_t table[256], SkScalar gamma); + + /** Utility that creates a clipping table: clamps values below min to 0 + and above max to 255, and rescales the remaining into 0..255 + */ + static void MakeClipTable(uint8_t table[256], uint8_t min, uint8_t max); + + static SkMaskFilter* Create(const uint8_t table[256]) { + return new SkTableMaskFilter(table); + } + + static SkMaskFilter* CreateGamma(SkScalar gamma) { + uint8_t table[256]; + MakeGammaTable(table, gamma); + return new SkTableMaskFilter(table); + } + + static SkMaskFilter* CreateClip(uint8_t min, uint8_t max) { + uint8_t table[256]; + MakeClipTable(table, min, max); + return new SkTableMaskFilter(table); + } + + SkMask::Format getFormat() const override; + bool filterMask(SkMask*, const SkMask&, const SkMatrix&, SkIPoint*) const override; + + SK_TO_STRING_OVERRIDE() + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTableMaskFilter) + +protected: + virtual ~SkTableMaskFilter(); + + void flatten(SkWriteBuffer&) const override; + +private: + SkTableMaskFilter(); + explicit SkTableMaskFilter(const uint8_t table[256]); + + uint8_t fTable[256]; + + typedef SkMaskFilter INHERITED; +}; + +#endif |