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