OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef GrFragmentProcessor_DEFINED | 8 #ifndef GrFragmentProcessor_DEFINED |
9 #define GrFragmentProcessor_DEFINED | 9 #define GrFragmentProcessor_DEFINED |
10 | 10 |
(...skipping 23 matching lines...) Expand all Loading... |
34 static const GrFragmentProcessor* MulOutputByInputAlpha(const GrFragmentProc
essor*); | 34 static const GrFragmentProcessor* MulOutputByInputAlpha(const GrFragmentProc
essor*); |
35 | 35 |
36 /** | 36 /** |
37 * Similar to the above but it modulates the output r,g,b of the child proc
essor by the input | 37 * Similar to the above but it modulates the output r,g,b of the child proc
essor by the input |
38 * rgb and then multiplies all the components by the input alpha. This effe
ctively modulates | 38 * rgb and then multiplies all the components by the input alpha. This effe
ctively modulates |
39 * the child processor's premul color by a unpremul'ed input and produces a
premul output | 39 * the child processor's premul color by a unpremul'ed input and produces a
premul output |
40 */ | 40 */ |
41 static const GrFragmentProcessor* MulOutputByInputUnpremulColor(const GrFrag
mentProcessor*); | 41 static const GrFragmentProcessor* MulOutputByInputUnpremulColor(const GrFrag
mentProcessor*); |
42 | 42 |
43 /** | 43 /** |
44 * Returns a parent fragment processor that adopts the passed fragment proce
ssor as a child. The | 44 * Returns a parent fragment processor that adopts the passed fragment proc
essor as a child. |
45 * parent will ignore its input color and instead feed the passed in color a
s input to the | 45 * The parent will ignore its input color and instead feed the passed in co
lor as input to the |
46 * child. | 46 * child. |
47 */ | 47 */ |
48 static const GrFragmentProcessor* OverrideInput(const GrFragmentProcessor*,
GrColor); | 48 static const GrFragmentProcessor* OverrideInput(const GrFragmentProcessor*,
GrColor); |
49 | 49 |
| 50 /** |
| 51 * Returns a fragment processor that runs the passed in array of fragment pr
ocessors in a |
| 52 * series. The original input is passed to the first, the first's output is
passed to the |
| 53 * second, etc. The output of the returned processor is the output of the la
st processor of the |
| 54 * series. |
| 55 */ |
| 56 static const GrFragmentProcessor* RunInSeries(const GrFragmentProcessor*[],
int cnt); |
| 57 |
50 GrFragmentProcessor() | 58 GrFragmentProcessor() |
51 : INHERITED() | 59 : INHERITED() |
52 , fUsesLocalCoords(false) | 60 , fUsesLocalCoords(false) |
53 , fNumTexturesExclChildren(0) | 61 , fNumTexturesExclChildren(0) |
54 , fNumTransformsExclChildren(0) {} | 62 , fNumTransformsExclChildren(0) {} |
55 | 63 |
56 ~GrFragmentProcessor() override; | 64 ~GrFragmentProcessor() override; |
57 | 65 |
58 GrGLFragmentProcessor* createGLInstance() const; | 66 GrGLFragmentProcessor* createGLInstance() const; |
59 | 67 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 int fNumTransformsExclChildren; | 213 int fNumTransformsExclChildren; |
206 | 214 |
207 // TODO: These must convert their processors to pending-execution refs when
the parent is | 215 // TODO: These must convert their processors to pending-execution refs when
the parent is |
208 // converted (do this automatically in GrProgramElement?). | 216 // converted (do this automatically in GrProgramElement?). |
209 SkTArray<const GrFragmentProcessor*, true> fChildProcessors; | 217 SkTArray<const GrFragmentProcessor*, true> fChildProcessors; |
210 | 218 |
211 typedef GrProcessor INHERITED; | 219 typedef GrProcessor INHERITED; |
212 }; | 220 }; |
213 | 221 |
214 #endif | 222 #endif |
OLD | NEW |