Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(281)

Side by Side Diff: include/gpu/effects/GrConstColorProcessor.h

Issue 978713002: Add constant color GrFP. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix mulAlphaByKnownFourComponents Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/gpu/SkGr.h ('k') | src/gpu/GrProcessor.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2015 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 #ifndef GrColorProcessor_DEFINED
9 #define GrColorProcessor_DEFINED
10
11 #include "GrFragmentProcessor.h"
12
13 class GrInvariantOutput;
14
15 /**
16 * This is a simple GrFragmentProcessor that outputs a constant color. It may do one of the
17 * following with its input color: ignore it, or multiply it by the constant col or, multiply its
18 * alpha by the constant color and ignore the input color's r, g, and b.
19 */
20 class GrConstColorProcessor : public GrFragmentProcessor {
21 public:
22 enum InputMode {
23 kIgnore_InputMode,
24 kModulateRGBA_InputMode,
25 kModulateA_InputMode,
26
27 kLastInputMode = kModulateA_InputMode
28 };
29 static const int kInputModeCnt = kLastInputMode + 1;
30
31 static GrFragmentProcessor* Create(GrColor color, InputMode mode) {
32 return SkNEW_ARGS(GrConstColorProcessor, (color, mode));
33 }
34
35 ~GrConstColorProcessor() override {}
36
37 const char* name() const override { return "Color"; }
38
39 void getGLProcessorKey(const GrGLCaps&, GrProcessorKeyBuilder*) const overri de;
40
41 GrGLFragmentProcessor* createGLInstance() const override;
42
43 GrColor color() const { return fColor; }
44
45 InputMode inputMode() const { return fMode; }
46
47 private:
48 GrConstColorProcessor(GrColor color, InputMode mode) : fColor(color), fMode( mode) {
49 this->initClassID<GrConstColorProcessor>();
50 }
51
52 bool onIsEqual(const GrFragmentProcessor&) const override;
53
54 void onComputeInvariantOutput(GrInvariantOutput* inout) const override;
55
56 GR_DECLARE_FRAGMENT_PROCESSOR_TEST;
57
58 GrColor fColor;
59 InputMode fMode;
60
61 typedef GrFragmentProcessor INHERITED;
62 };
63
64 #endif
OLDNEW
« no previous file with comments | « include/gpu/SkGr.h ('k') | src/gpu/GrProcessor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698