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

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

Issue 794843002: Revert of Remove GP from drawstate, revision of invariant output for GP (Closed) Base URL: https://skia.googlesource.com/skia.git@color-to-gp
Patch Set: Created 6 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 * Copyright 2013 Google Inc. 2 * Copyright 2013 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 #include "GrDistanceFieldTextureEffect.h" 8 #include "GrDistanceFieldTextureEffect.h"
9 #include "GrInvariantOutput.h" 9 #include "GrInvariantOutput.h"
10 #include "GrTexture.h" 10 #include "GrTexture.h"
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 199
200 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c onst { 200 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c onst {
201 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE ffect>(); 201 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE ffect>();
202 return 202 return
203 #ifdef SK_GAMMA_APPLY_TO_A8 203 #ifdef SK_GAMMA_APPLY_TO_A8
204 fLuminance == cte.fLuminance && 204 fLuminance == cte.fLuminance &&
205 #endif 205 #endif
206 fFlags == cte.fFlags; 206 fFlags == cte.fFlags;
207 } 207 }
208 208
209 void GrDistanceFieldTextureEffect::onGetInvariantOutputCoverage(GrInitInvariantO utput* out) const { 209 void GrDistanceFieldTextureEffect::onComputeInvariantOutput(GrInvariantOutput* i nout) const {
210 out->setUnknownSingleComponent(); 210 inout->mulByUnknownAlpha();
211 } 211 }
212 212
213 void GrDistanceFieldTextureEffect::getGLProcessorKey(const GrBatchTracker& bt, 213 void GrDistanceFieldTextureEffect::getGLProcessorKey(const GrBatchTracker& bt,
214 const GrGLCaps& caps, 214 const GrGLCaps& caps,
215 GrProcessorKeyBuilder* b) c onst { 215 GrProcessorKeyBuilder* b) c onst {
216 GrGLDistanceFieldTextureEffect::GenKey(*this, bt, caps, b); 216 GrGLDistanceFieldTextureEffect::GenKey(*this, bt, caps, b);
217 } 217 }
218 218
219 GrGLGeometryProcessor* 219 GrGLGeometryProcessor*
220 GrDistanceFieldTextureEffect::createGLInstance(const GrBatchTracker& bt) const { 220 GrDistanceFieldTextureEffect::createGLInstance(const GrBatchTracker& bt) const {
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 kVec2f_GrVertexAttribT ype)); 400 kVec2f_GrVertexAttribT ype));
401 this->addTextureAccess(&fTextureAccess); 401 this->addTextureAccess(&fTextureAccess);
402 } 402 }
403 403
404 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o ther) const { 404 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o ther) const {
405 const GrDistanceFieldNoGammaTextureEffect& cte = 405 const GrDistanceFieldNoGammaTextureEffect& cte =
406 other.cast<GrDistanceFieldNoGam maTextureEffect>(); 406 other.cast<GrDistanceFieldNoGam maTextureEffect>();
407 return fFlags == cte.fFlags; 407 return fFlags == cte.fFlags;
408 } 408 }
409 409
410 void GrDistanceFieldNoGammaTextureEffect::onGetInvariantOutputCoverage(GrInitInv ariantOutput* out) const{ 410 void GrDistanceFieldNoGammaTextureEffect::onComputeInvariantOutput(GrInvariantOu tput* inout) const {
411 out->setUnknownSingleComponent(); 411 inout->mulByUnknownAlpha();
412 } 412 }
413 413
414 void GrDistanceFieldNoGammaTextureEffect::getGLProcessorKey(const GrBatchTracker & bt, 414 void GrDistanceFieldNoGammaTextureEffect::getGLProcessorKey(const GrBatchTracker & bt,
415 const GrGLCaps& caps , 415 const GrGLCaps& caps ,
416 GrProcessorKeyBuilde r* b) const { 416 GrProcessorKeyBuilde r* b) const {
417 GrGLDistanceFieldNoGammaTextureEffect::GenKey(*this, bt, caps, b); 417 GrGLDistanceFieldNoGammaTextureEffect::GenKey(*this, bt, caps, b);
418 } 418 }
419 419
420 GrGLGeometryProcessor* 420 GrGLGeometryProcessor*
421 GrDistanceFieldNoGammaTextureEffect::createGLInstance(const GrBatchTracker& bt) const { 421 GrDistanceFieldNoGammaTextureEffect::createGLInstance(const GrBatchTracker& bt) const {
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 this->addTextureAccess(&fTextureAccess); 658 this->addTextureAccess(&fTextureAccess);
659 this->addTextureAccess(&fGammaTextureAccess); 659 this->addTextureAccess(&fGammaTextureAccess);
660 } 660 }
661 661
662 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other ) const { 662 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other ) const {
663 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe xtureEffect>(); 663 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe xtureEffect>();
664 return (fTextColor == cte.fTextColor && 664 return (fTextColor == cte.fTextColor &&
665 fFlags == cte.fFlags); 665 fFlags == cte.fFlags);
666 } 666 }
667 667
668 void GrDistanceFieldLCDTextureEffect::onGetInvariantOutputCoverage(GrInitInvaria ntOutput* out) const { 668 void GrDistanceFieldLCDTextureEffect::onComputeInvariantOutput(GrInvariantOutput * inout) const {
669 out->setUnknownFourComponents(); 669 inout->mulByUnknownColor();
670 out->setUsingLCDCoverage(); 670 inout->setUsingLCDCoverage();
671 } 671 }
672 672
673 void GrDistanceFieldLCDTextureEffect::getGLProcessorKey(const GrBatchTracker& bt , 673 void GrDistanceFieldLCDTextureEffect::getGLProcessorKey(const GrBatchTracker& bt ,
674 const GrGLCaps& caps, 674 const GrGLCaps& caps,
675 GrProcessorKeyBuilder* b ) const { 675 GrProcessorKeyBuilder* b ) const {
676 GrGLDistanceFieldLCDTextureEffect::GenKey(*this, bt, caps, b); 676 GrGLDistanceFieldLCDTextureEffect::GenKey(*this, bt, caps, b);
677 } 677 }
678 678
679 GrGLGeometryProcessor* 679 GrGLGeometryProcessor*
680 GrDistanceFieldLCDTextureEffect::createGLInstance(const GrBatchTracker& bt) cons t { 680 GrDistanceFieldLCDTextureEffect::createGLInstance(const GrBatchTracker& bt) cons t {
(...skipping 30 matching lines...) Expand all
711 random->nextULessThan(256), 711 random->nextULessThan(256),
712 random->nextULessThan(256)); 712 random->nextULessThan(256));
713 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; 713 uint32_t flags = kUseLCD_DistanceFieldEffectFlag;
714 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; 714 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0;
715 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; 715 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0;
716 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), textur es[texIdx], params, 716 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), textur es[texIdx], params,
717 textures[texIdx2], params2, 717 textures[texIdx2], params2,
718 textColor, 718 textColor,
719 flags); 719 flags);
720 } 720 }
OLDNEW
« no previous file with comments | « src/gpu/effects/GrDistanceFieldTextureEffect.h ('k') | src/gpu/effects/GrMatrixConvolutionEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698