blob: 529b5ec4579eda2bbdc197445b7c449ee26d97b5 [file] [log] [blame]
krajcevskif461a8f2014-06-19 14:14:06 -07001/*
Ethan Nicholas762466e2017-06-29 10:03:38 -04002 * Copyright 2017 Google Inc.
krajcevskif461a8f2014-06-19 14:14:06 -07003 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
Ethan Nicholas762466e2017-06-29 10:03:38 -04008/*
9 * This file was autogenerated from GrDitherEffect.fp; do not modify.
10 */
krajcevskif461a8f2014-06-19 14:14:06 -070011#ifndef GrDitherEffect_DEFINED
12#define GrDitherEffect_DEFINED
Ethan Nicholasceb4d482017-07-10 15:40:20 -040013#include "SkTypes.h"
14#if SK_SUPPORT_GPU
Ethan Nicholas762466e2017-06-29 10:03:38 -040015#include "GrFragmentProcessor.h"
16#include "GrCoordTransform.h"
Ethan Nicholas68990be2017-07-13 09:36:52 -040017#include "GrColorSpaceXform.h"
Ethan Nicholas762466e2017-06-29 10:03:38 -040018class GrDitherEffect : public GrFragmentProcessor {
19public:
Brian Salomon0c15ae82017-07-19 15:39:56 +000020 int rangeType() const { return fRangeType; }
21
22 static sk_sp<GrFragmentProcessor> Make(GrPixelConfig dstConfig) {
23 int rangeType;
24 switch (dstConfig) {
25 case kGray_8_GrPixelConfig:
26 case kRGBA_8888_GrPixelConfig:
27 case kBGRA_8888_GrPixelConfig:
28 case kSRGBA_8888_GrPixelConfig:
29 case kSBGRA_8888_GrPixelConfig:
30 rangeType = 0;
31 break;
32 case kRGB_565_GrPixelConfig:
33 rangeType = 1;
34 break;
35 case kRGBA_4444_GrPixelConfig:
36 rangeType = 2;
37 break;
38 case kUnknown_GrPixelConfig:
39 case kAlpha_half_GrPixelConfig:
40 case kRGBA_8888_sint_GrPixelConfig:
41 case kRGBA_float_GrPixelConfig:
42 case kRG_float_GrPixelConfig:
43 case kRGBA_half_GrPixelConfig:
44 case kAlpha_8_GrPixelConfig:
45 return nullptr;
46 }
47 return sk_sp<GrFragmentProcessor>(new GrDitherEffect(rangeType));
Ethan Nicholas762466e2017-06-29 10:03:38 -040048 }
Ethan Nicholasf57c0d62017-07-31 11:18:22 -040049 GrDitherEffect(const GrDitherEffect& src);
50 sk_sp<GrFragmentProcessor> clone() const override;
Ethan Nicholas762466e2017-06-29 10:03:38 -040051 const char* name() const override { return "DitherEffect"; }
Ethan Nicholasb7e8c3b2017-07-19 13:54:20 -040052
Ethan Nicholas762466e2017-06-29 10:03:38 -040053private:
Ethan Nicholasb7e8c3b2017-07-19 13:54:20 -040054 GrDitherEffect(int rangeType) : INHERITED(kNone_OptimizationFlags), fRangeType(rangeType) {
Ethan Nicholas762466e2017-06-29 10:03:38 -040055 this->initClassID<GrDitherEffect>();
56 }
57 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
Ethan Nicholasb7e8c3b2017-07-19 13:54:20 -040058 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
Ethan Nicholas762466e2017-06-29 10:03:38 -040059 bool onIsEqual(const GrFragmentProcessor&) const override;
Brian Salomon0c26a9d2017-07-06 10:09:38 -040060 GR_DECLARE_FRAGMENT_PROCESSOR_TEST
Brian Salomon0c15ae82017-07-19 15:39:56 +000061 int fRangeType;
Ethan Nicholas762466e2017-06-29 10:03:38 -040062 typedef GrFragmentProcessor INHERITED;
krajcevskif461a8f2014-06-19 14:14:06 -070063};
krajcevskif461a8f2014-06-19 14:14:06 -070064#endif
Ethan Nicholasceb4d482017-07-10 15:40:20 -040065#endif