Chromium Code Reviews| 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 13 matching lines...) Expand all Loading... | |
| 24 class GrFragmentProcessor : public GrProcessor { | 24 class GrFragmentProcessor : public GrProcessor { |
| 25 public: | 25 public: |
| 26 /** | 26 /** |
| 27 * In many instances (e.g. SkShader::asFragmentProcessor() implementations) it is desirable to | 27 * In many instances (e.g. SkShader::asFragmentProcessor() implementations) it is desirable to |
| 28 * only consider the input color's alpha. However, there is a competing desi re to have reusable | 28 * only consider the input color's alpha. However, there is a competing desi re to have reusable |
| 29 * GrFragmentProcessor subclasses that can be used in other scenarios where the entire input | 29 * GrFragmentProcessor subclasses that can be used in other scenarios where the entire input |
| 30 * color is considered. This function exists to filter the input color and p ass it to a FP. It | 30 * color is considered. This function exists to filter the input color and p ass it to a FP. It |
| 31 * does so by returning a parent FP that multiplies the passed in FPs output by the parent's | 31 * does so by returning a parent FP that multiplies the passed in FPs output by the parent's |
| 32 * input alpha. The passed in FP will not receive an input color. | 32 * input alpha. The passed in FP will not receive an input color. |
| 33 */ | 33 */ |
| 34 static const GrFragmentProcessor* MulOuputByInputAlpha(const GrFragmentProce ssor*); | 34 static const GrFragmentProcessor* MulOutputByInputAlpha(const GrFragmentProc essor*); |
| 35 | |
| 36 /** | |
| 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 | |
| 39 * the child processor's premul color by a unpremul'ed input and produces a premul output | |
| 40 */ | |
| 41 static const GrFragmentProcessor* MulOutputByInputUnpremulColor(const GrFrag mentProcessor*); | |
| 42 | |
| 43 /** | |
| 44 * Returns a parent fragment processor that adopts the passed fragment proce ssor as a child. The | |
| 45 * parent will ignore its input color and instead feed the passed in color a s input to the | |
| 46 * child. | |
| 47 */ | |
|
robertphillips
2015/09/25 19:52:17
OverrideInputColor ?
bsalomon
2015/09/25 20:45:07
Made it OverrideInput
| |
| 48 static const GrFragmentProcessor* ReplaceInput(const GrFragmentProcessor*, G rColor); | |
| 35 | 49 |
| 36 GrFragmentProcessor() | 50 GrFragmentProcessor() |
| 37 : INHERITED() | 51 : INHERITED() |
| 38 , fUsesLocalCoords(false) | 52 , fUsesLocalCoords(false) |
| 39 , fNumTexturesExclChildren(0) | 53 , fNumTexturesExclChildren(0) |
| 40 , fNumTransformsExclChildren(0) {} | 54 , fNumTransformsExclChildren(0) {} |
| 41 | 55 |
| 42 ~GrFragmentProcessor() override; | 56 ~GrFragmentProcessor() override; |
| 43 | 57 |
| 44 GrGLFragmentProcessor* createGLInstance() const; | 58 GrGLFragmentProcessor* createGLInstance() const; |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 191 int fNumTransformsExclChildren; | 205 int fNumTransformsExclChildren; |
| 192 | 206 |
| 193 // TODO: These must convert their processors to pending-execution refs when the parent is | 207 // TODO: These must convert their processors to pending-execution refs when the parent is |
| 194 // converted (do this automatically in GrProgramElement?). | 208 // converted (do this automatically in GrProgramElement?). |
| 195 SkTArray<const GrFragmentProcessor*, true> fChildProcessors; | 209 SkTArray<const GrFragmentProcessor*, true> fChildProcessors; |
| 196 | 210 |
| 197 typedef GrProcessor INHERITED; | 211 typedef GrProcessor INHERITED; |
| 198 }; | 212 }; |
| 199 | 213 |
| 200 #endif | 214 #endif |
| OLD | NEW |