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" 17class GrDitherEffect : public GrFragmentProcessor { 18public: 19 int rangeType() const { return fRangeType; } 20 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 kRGBA_1010102_GrPixelConfig: 41 case kAlpha_half_GrPixelConfig: 42 case kAlpha_half_as_Red_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; 55 const char* name() const override { return "DitherEffect"; } 56 57private: 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