1 /*
2  * Copyright 2018 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 /**************************************************************************************************
9  *** This file was autogenerated from GrDitherEffect.fp; do not modify.
10  **************************************************************************************************/
11 #ifndef GrDitherEffect_DEFINED
12 #define GrDitherEffect_DEFINED
13 #include "SkTypes.h"
14 #if SK_SUPPORT_GPU
15 #include "GrFragmentProcessor.h"
16 #include "GrCoordTransform.h"
17 class GrDitherEffect : public GrFragmentProcessor {
18 public:
rangeType()19     int rangeType() const { return fRangeType; }
20 
Make(GrPixelConfig dstConfig)21     static std::unique_ptr<GrFragmentProcessor> Make(GrPixelConfig dstConfig) {
22         int rangeType;
23         switch (dstConfig) {
24             case kGray_8_GrPixelConfig:
25             case kGray_8_as_Lum_GrPixelConfig:
26             case kGray_8_as_Red_GrPixelConfig:
27             case kRGBA_8888_GrPixelConfig:
28             case kBGRA_8888_GrPixelConfig:
29             case kSRGBA_8888_GrPixelConfig:
30             case kSBGRA_8888_GrPixelConfig:
31                 rangeType = 0;
32                 break;
33             case kRGB_565_GrPixelConfig:
34                 rangeType = 1;
35                 break;
36             case kRGBA_4444_GrPixelConfig:
37                 rangeType = 2;
38                 break;
39             case kUnknown_GrPixelConfig:
40             case kAlpha_half_GrPixelConfig:
41             case kAlpha_half_as_Red_GrPixelConfig:
42             case kRGBA_float_GrPixelConfig:
43             case kRG_float_GrPixelConfig:
44             case kRGBA_half_GrPixelConfig:
45             case kAlpha_8_GrPixelConfig:
46             case kAlpha_8_as_Alpha_GrPixelConfig:
47             case kAlpha_8_as_Red_GrPixelConfig:
48                 return nullptr;
49         }
50         return std::unique_ptr<GrFragmentProcessor>(new GrDitherEffect(rangeType));
51     }
52     GrDitherEffect(const GrDitherEffect& src);
53     std::unique_ptr<GrFragmentProcessor> clone() const override;
name()54     const char* name() const override { return "DitherEffect"; }
55 
56 private:
GrDitherEffect(int rangeType)57     GrDitherEffect(int rangeType)
58             : INHERITED(kGrDitherEffect_ClassID, kNone_OptimizationFlags), fRangeType(rangeType) {}
59     GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
60     void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
61     bool onIsEqual(const GrFragmentProcessor&) const override;
62     GR_DECLARE_FRAGMENT_PROCESSOR_TEST
63     int fRangeType;
64     typedef GrFragmentProcessor INHERITED;
65 };
66 #endif
67 #endif
68