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

Side by Side Diff: src/gpu/effects/GrCoverageSetOpXP.cpp

Issue 1471293003: Create a static instances of SrcOver XferProcessor (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: nit Created 5 years 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
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2014 Google Inc. 3 * Copyright 2014 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "effects/GrCoverageSetOpXP.h" 9 #include "effects/GrCoverageSetOpXP.h"
10 #include "GrCaps.h" 10 #include "GrCaps.h"
(...skipping 18 matching lines...) Expand all
29 29
30 bool invertCoverage() const { return fInvertCoverage; } 30 bool invertCoverage() const { return fInvertCoverage; }
31 31
32 private: 32 private:
33 CoverageSetOpXP(SkRegion::Op regionOp, bool fInvertCoverage); 33 CoverageSetOpXP(SkRegion::Op regionOp, bool fInvertCoverage);
34 34
35 GrXferProcessor::OptFlags onGetOptimizations(const GrProcOptInfo& colorPOI, 35 GrXferProcessor::OptFlags onGetOptimizations(const GrProcOptInfo& colorPOI,
36 const GrProcOptInfo& coveragePO I, 36 const GrProcOptInfo& coveragePO I,
37 bool doesStencilWrite, 37 bool doesStencilWrite,
38 GrColor* color, 38 GrColor* color,
39 const GrCaps& caps) override; 39 const GrCaps& caps) const overr ide;
40 40
41 void onGetGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override; 41 void onGetGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override;
42 42
43 void onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const override; 43 void onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) const override;
44 44
45 bool onIsEqual(const GrXferProcessor& xpBase) const override { 45 bool onIsEqual(const GrXferProcessor& xpBase) const override {
46 const CoverageSetOpXP& xp = xpBase.cast<CoverageSetOpXP>(); 46 const CoverageSetOpXP& xp = xpBase.cast<CoverageSetOpXP>();
47 return (fRegionOp == xp.fRegionOp && 47 return (fRegionOp == xp.fRegionOp &&
48 fInvertCoverage == xp.fInvertCoverage); 48 fInvertCoverage == xp.fInvertCoverage);
49 } 49 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 104
105 GrGLSLXferProcessor* CoverageSetOpXP::createGLSLInstance() const { 105 GrGLSLXferProcessor* CoverageSetOpXP::createGLSLInstance() const {
106 return new GLCoverageSetOpXP(*this); 106 return new GLCoverageSetOpXP(*this);
107 } 107 }
108 108
109 GrXferProcessor::OptFlags 109 GrXferProcessor::OptFlags
110 CoverageSetOpXP::onGetOptimizations(const GrProcOptInfo& colorPOI, 110 CoverageSetOpXP::onGetOptimizations(const GrProcOptInfo& colorPOI,
111 const GrProcOptInfo& coveragePOI, 111 const GrProcOptInfo& coveragePOI,
112 bool doesStencilWrite, 112 bool doesStencilWrite,
113 GrColor* color, 113 GrColor* color,
114 const GrCaps& caps) { 114 const GrCaps& caps) const {
115 // We never look at the color input 115 // We never look at the color input
116 return GrXferProcessor::kIgnoreColor_OptFlag; 116 return GrXferProcessor::kIgnoreColor_OptFlag;
117 } 117 }
118 118
119 void CoverageSetOpXP::onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) cons t { 119 void CoverageSetOpXP::onGetBlendInfo(GrXferProcessor::BlendInfo* blendInfo) cons t {
120 switch (fRegionOp) { 120 switch (fRegionOp) {
121 case SkRegion::kReplace_Op: 121 case SkRegion::kReplace_Op:
122 blendInfo->fSrcBlend = kOne_GrBlendCoeff; 122 blendInfo->fSrcBlend = kOne_GrBlendCoeff;
123 blendInfo->fDstBlend = kZero_GrBlendCoeff; 123 blendInfo->fDstBlend = kZero_GrBlendCoeff;
124 break; 124 break;
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 } 245 }
246 246
247 GR_DEFINE_XP_FACTORY_TEST(GrCoverageSetOpXPFactory); 247 GR_DEFINE_XP_FACTORY_TEST(GrCoverageSetOpXPFactory);
248 248
249 const GrXPFactory* GrCoverageSetOpXPFactory::TestCreate(GrProcessorTestData* d) { 249 const GrXPFactory* GrCoverageSetOpXPFactory::TestCreate(GrProcessorTestData* d) {
250 SkRegion::Op regionOp = SkRegion::Op(d->fRandom->nextULessThan(SkRegion::kLa stOp + 1)); 250 SkRegion::Op regionOp = SkRegion::Op(d->fRandom->nextULessThan(SkRegion::kLa stOp + 1));
251 bool invertCoverage = !d->fRenderTarget->hasMixedSamples() && d->fRandom->ne xtBool(); 251 bool invertCoverage = !d->fRenderTarget->hasMixedSamples() && d->fRandom->ne xtBool();
252 return GrCoverageSetOpXPFactory::Create(regionOp, invertCoverage); 252 return GrCoverageSetOpXPFactory::Create(regionOp, invertCoverage);
253 } 253 }
254 254
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698