GrDitherEffect.h revision 5711133a1b216bfa5d1d24aaffd32dc02c64b333
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 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; 54 const char* name() const override { return "DitherEffect"; } 55 56private: 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