OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 GrPipelineBuilder_DEFINED | 8 #ifndef GrPipelineBuilder_DEFINED |
9 #define GrPipelineBuilder_DEFINED | 9 #define GrPipelineBuilder_DEFINED |
10 | 10 |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 uint32_t fSaveMarker; | 154 uint32_t fSaveMarker; |
155 }; | 155 }; |
156 | 156 |
157 /// @} | 157 /// @} |
158 | 158 |
159 /////////////////////////////////////////////////////////////////////////// | 159 /////////////////////////////////////////////////////////////////////////// |
160 /// @name Blending | 160 /// @name Blending |
161 //// | 161 //// |
162 | 162 |
163 /** | 163 /** |
164 * Returns true if this pipeline's color output will be affected by the exis
ting render target | |
165 * destination pixel values (meaning we need to be careful with overlapping
draws). Note that we | |
166 * can conflate coverage and color, so the destination color may still bleed
into pixels that | |
167 * have partial coverage, even if this function returns false. | |
168 */ | |
169 bool willColorBlendWithDst(const GrPrimitiveProcessor*) const; | |
170 | |
171 /** | |
172 * Installs a GrXPFactory. This object controls how src color, fractional pi
xel coverage, | 164 * Installs a GrXPFactory. This object controls how src color, fractional pi
xel coverage, |
173 * and the dst color are blended. | 165 * and the dst color are blended. |
174 */ | 166 */ |
175 const GrXPFactory* setXPFactory(const GrXPFactory* xpFactory) { | 167 const GrXPFactory* setXPFactory(const GrXPFactory* xpFactory) { |
176 fXPFactory.reset(SkRef(xpFactory)); | 168 fXPFactory.reset(SkRef(xpFactory)); |
177 return xpFactory; | 169 return xpFactory; |
178 } | 170 } |
179 | 171 |
180 /** | 172 /** |
181 * Sets a GrXPFactory that will ignore src color and perform a set operation
between the draws | 173 * Sets a GrXPFactory that will ignore src color and perform a set operation
between the draws |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 | 415 |
424 GrProcessorDataManager* getProcessorDataManager() { return fProcDataManager.
get(); } | 416 GrProcessorDataManager* getProcessorDataManager() { return fProcDataManager.
get(); } |
425 const GrProcessorDataManager* processorDataManager() const { return fProcDat
aManager.get(); } | 417 const GrProcessorDataManager* processorDataManager() const { return fProcDat
aManager.get(); } |
426 | 418 |
427 private: | 419 private: |
428 // Calculating invariant color / coverage information is expensive, so we pa
rtially cache the | 420 // Calculating invariant color / coverage information is expensive, so we pa
rtially cache the |
429 // results. | 421 // results. |
430 // | 422 // |
431 // canUseFracCoveragePrimProc() - Called in regular skia draw, caches result
s but only for a | 423 // canUseFracCoveragePrimProc() - Called in regular skia draw, caches result
s but only for a |
432 // specific color and coverage. May be calle
d multiple times | 424 // specific color and coverage. May be calle
d multiple times |
433 // willColorBlendWithDst() - only called by Nvpr, does not cache results | |
434 // GrOptDrawState constructor - never caches results | 425 // GrOptDrawState constructor - never caches results |
435 | 426 |
436 /** | 427 /** |
437 * Primproc variants of the calc functions | 428 * Primproc variants of the calc functions |
438 * TODO remove these when batch is everywhere | 429 * TODO remove these when batch is everywhere |
439 */ | 430 */ |
440 void calcColorInvariantOutput(const GrPrimitiveProcessor*) const; | 431 void calcColorInvariantOutput(const GrPrimitiveProcessor*) const; |
441 void calcCoverageInvariantOutput(const GrPrimitiveProcessor*) const; | 432 void calcCoverageInvariantOutput(const GrPrimitiveProcessor*) const; |
442 | 433 |
443 /** | 434 /** |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 mutable GrProcOptInfo fCoverageProcInfo; | 469 mutable GrProcOptInfo fCoverageProcInfo; |
479 mutable bool fColorProcInfoValid; | 470 mutable bool fColorProcInfoValid; |
480 mutable bool fCoverageProcInfoValid; | 471 mutable bool fCoverageProcInfoValid; |
481 mutable GrColor fColorCache; | 472 mutable GrColor fColorCache; |
482 mutable GrColor fCoverageCache; | 473 mutable GrColor fCoverageCache; |
483 | 474 |
484 friend class GrPipeline; | 475 friend class GrPipeline; |
485 }; | 476 }; |
486 | 477 |
487 #endif | 478 #endif |
OLD | NEW |