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

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

Issue 654273002: Push isEqual/onIsEqual down from GrProcessor to subclasses. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 2 months 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
« no previous file with comments | « src/gpu/effects/GrDistanceFieldTextureEffect.h ('k') | src/gpu/effects/GrDitherEffect.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "gl/builders/GrGLProgramBuilder.h" 9 #include "gl/builders/GrGLProgramBuilder.h"
10 #include "gl/GrGLProcessor.h" 10 #include "gl/GrGLProcessor.h"
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 , fInTextureCoords(this->addVertexAttrib(GrShaderVar("inTextureCoords", 189 , fInTextureCoords(this->addVertexAttrib(GrShaderVar("inTextureCoords",
190 kVec2f_GrSLType, 190 kVec2f_GrSLType,
191 GrShaderVar::kAttribute _TypeModifier))) { 191 GrShaderVar::kAttribute _TypeModifier))) {
192 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); 192 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask));
193 this->addTextureAccess(&fTextureAccess); 193 this->addTextureAccess(&fTextureAccess);
194 #ifdef SK_GAMMA_APPLY_TO_A8 194 #ifdef SK_GAMMA_APPLY_TO_A8
195 this->addTextureAccess(&fGammaTextureAccess); 195 this->addTextureAccess(&fGammaTextureAccess);
196 #endif 196 #endif
197 } 197 }
198 198
199 bool GrDistanceFieldTextureEffect::onIsEqual(const GrProcessor& other) const { 199 bool GrDistanceFieldTextureEffect::onIsEqual(const GrGeometryProcessor& other) c onst {
200 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE ffect>(); 200 const GrDistanceFieldTextureEffect& cte = other.cast<GrDistanceFieldTextureE ffect>();
201 return fTextureAccess == cte.fTextureAccess && 201 return fTextureAccess == cte.fTextureAccess &&
202 #ifdef SK_GAMMA_APPLY_TO_A8 202 #ifdef SK_GAMMA_APPLY_TO_A8
203 fGammaTextureAccess == cte.fGammaTextureAccess && 203 fGammaTextureAccess == cte.fGammaTextureAccess &&
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::onComputeInvariantOutput(InvariantOutput* ino ut) const { 209 void GrDistanceFieldTextureEffect::onComputeInvariantOutput(InvariantOutput* ino ut) const {
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 uint32_t fla gs) 372 uint32_t fla gs)
373 : fTextureAccess(texture, params) 373 : fTextureAccess(texture, params)
374 , fFlags(flags & kNonLCD_DistanceFieldEffectMask) 374 , fFlags(flags & kNonLCD_DistanceFieldEffectMask)
375 , fInTextureCoords(this->addVertexAttrib(GrShaderVar("inTextureCoords", 375 , fInTextureCoords(this->addVertexAttrib(GrShaderVar("inTextureCoords",
376 kVec2f_GrSLType, 376 kVec2f_GrSLType,
377 GrShaderVar::kAttribute_TypeModifier))) { 377 GrShaderVar::kAttribute_TypeModifier))) {
378 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask)); 378 SkASSERT(!(flags & ~kNonLCD_DistanceFieldEffectMask));
379 this->addTextureAccess(&fTextureAccess); 379 this->addTextureAccess(&fTextureAccess);
380 } 380 }
381 381
382 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrProcessor& other) co nst { 382 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrGeometryProcessor& o ther) const {
383 const GrDistanceFieldNoGammaTextureEffect& cte = 383 const GrDistanceFieldNoGammaTextureEffect& cte =
384 other.cast<GrDistanceFieldNoGam maTextureEffect>(); 384 other.cast<GrDistanceFieldNoGam maTextureEffect>();
385 return fTextureAccess == cte.fTextureAccess && fFlags == cte.fFlags; 385 return fTextureAccess == cte.fTextureAccess && fFlags == cte.fFlags;
386 } 386 }
387 387
388 void GrDistanceFieldNoGammaTextureEffect::onComputeInvariantOutput(InvariantOutp ut* inout) const { 388 void GrDistanceFieldNoGammaTextureEffect::onComputeInvariantOutput(InvariantOutp ut* inout) const {
389 inout->mulByUnknownAlpha(); 389 inout->mulByUnknownAlpha();
390 } 390 }
391 391
392 const GrBackendGeometryProcessorFactory& GrDistanceFieldNoGammaTextureEffect::ge tFactory() const { 392 const GrBackendGeometryProcessorFactory& GrDistanceFieldNoGammaTextureEffect::ge tFactory() const {
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 , fFlags(flags & kLCD_DistanceFieldEffectMask) 621 , fFlags(flags & kLCD_DistanceFieldEffectMask)
622 , fInTextureCoords(this->addVertexAttrib(GrShaderVar("inTextureCoords", 622 , fInTextureCoords(this->addVertexAttrib(GrShaderVar("inTextureCoords",
623 kVec2f_GrSLType, 623 kVec2f_GrSLType,
624 GrShaderVar::kAttribute _TypeModifier))) { 624 GrShaderVar::kAttribute _TypeModifier))) {
625 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan ceFieldEffectFlag)); 625 SkASSERT(!(flags & ~kLCD_DistanceFieldEffectMask) && (flags & kUseLCD_Distan ceFieldEffectFlag));
626 626
627 this->addTextureAccess(&fTextureAccess); 627 this->addTextureAccess(&fTextureAccess);
628 this->addTextureAccess(&fGammaTextureAccess); 628 this->addTextureAccess(&fGammaTextureAccess);
629 } 629 }
630 630
631 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrProcessor& other) const { 631 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrGeometryProcessor& other ) const {
632 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe xtureEffect>(); 632 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe xtureEffect>();
633 return (fTextureAccess == cte.fTextureAccess && 633 return (fTextureAccess == cte.fTextureAccess &&
634 fGammaTextureAccess == cte.fGammaTextureAccess && 634 fGammaTextureAccess == cte.fGammaTextureAccess &&
635 fTextColor == cte.fTextColor && 635 fTextColor == cte.fTextColor &&
636 fFlags == cte.fFlags); 636 fFlags == cte.fFlags);
637 } 637 }
638 638
639 void GrDistanceFieldLCDTextureEffect::onComputeInvariantOutput(InvariantOutput* inout) const { 639 void GrDistanceFieldLCDTextureEffect::onComputeInvariantOutput(InvariantOutput* inout) const {
640 inout->mulByUnknownColor(); 640 inout->mulByUnknownColor();
641 } 641 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 random->nextULessThan(256), 674 random->nextULessThan(256),
675 random->nextULessThan(256)); 675 random->nextULessThan(256));
676 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; 676 uint32_t flags = kUseLCD_DistanceFieldEffectFlag;
677 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; 677 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0;
678 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; 678 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0;
679 return GrDistanceFieldLCDTextureEffect::Create(textures[texIdx], params, 679 return GrDistanceFieldLCDTextureEffect::Create(textures[texIdx], params,
680 textures[texIdx2], params2, 680 textures[texIdx2], params2,
681 textColor, 681 textColor,
682 flags); 682 flags);
683 } 683 }
OLDNEW
« no previous file with comments | « src/gpu/effects/GrDistanceFieldTextureEffect.h ('k') | src/gpu/effects/GrDitherEffect.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698