• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_8888_sint_GrPixelConfig:
43             case kRGBA_float_GrPixelConfig:
44             case kRG_float_GrPixelConfig:
45             case kRGBA_half_GrPixelConfig:
46             case kAlpha_8_GrPixelConfig:
47             case kAlpha_8_as_Alpha_GrPixelConfig:
48             case kAlpha_8_as_Red_GrPixelConfig:
49                 return nullptr;
50         }
51         return std::unique_ptr<GrFragmentProcessor>(new GrDitherEffect(rangeType));
52     }
53     GrDitherEffect(const GrDitherEffect& src);
54     std::unique_ptr<GrFragmentProcessor> clone() const override;
name()55     const char* name() const override { return "DitherEffect"; }
56 
57 private:
GrDitherEffect(int rangeType)58     GrDitherEffect(int rangeType)
59             : INHERITED(kGrDitherEffect_ClassID, kNone_OptimizationFlags), fRangeType(rangeType) {}
60     GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
61     void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
62     bool onIsEqual(const GrFragmentProcessor&) const override;
63     GR_DECLARE_FRAGMENT_PROCESSOR_TEST
64     int fRangeType;
65     typedef GrFragmentProcessor INHERITED;
66 };
67 #endif
68 #endif
69