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