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

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

Issue 643743003: Create helper functions to use in computeInvariantOutput calls (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Update blurMaskFilter 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/GrDashingEffect.cpp ('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 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 {
210 if (inout->isOpaque() && GrPixelConfigIsOpaque(this->texture(0)->config())) { 210 inout->mulByUnknownAlpha();
211 inout->fValidFlags = kA_GrColorComponentFlag;
212 } else {
213 inout->fValidFlags = 0;
214 }
215 inout->fIsSingleComponent = false;
216 } 211 }
217 212
218 const GrBackendGeometryProcessorFactory& GrDistanceFieldTextureEffect::getFactor y() const { 213 const GrBackendGeometryProcessorFactory& GrDistanceFieldTextureEffect::getFactor y() const {
219 return GrTBackendGeometryProcessorFactory<GrDistanceFieldTextureEffect>::get Instance(); 214 return GrTBackendGeometryProcessorFactory<GrDistanceFieldTextureEffect>::get Instance();
220 } 215 }
221 216
222 /////////////////////////////////////////////////////////////////////////////// 217 ///////////////////////////////////////////////////////////////////////////////
223 218
224 GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldTextureEffect); 219 GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldTextureEffect);
225 220
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 this->addTextureAccess(&fTextureAccess); 379 this->addTextureAccess(&fTextureAccess);
385 } 380 }
386 381
387 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrProcessor& other) co nst { 382 bool GrDistanceFieldNoGammaTextureEffect::onIsEqual(const GrProcessor& other) co nst {
388 const GrDistanceFieldNoGammaTextureEffect& cte = 383 const GrDistanceFieldNoGammaTextureEffect& cte =
389 other.cast<GrDistanceFieldNoGam maTextureEffect>(); 384 other.cast<GrDistanceFieldNoGam maTextureEffect>();
390 return fTextureAccess == cte.fTextureAccess && fFlags == cte.fFlags; 385 return fTextureAccess == cte.fTextureAccess && fFlags == cte.fFlags;
391 } 386 }
392 387
393 void GrDistanceFieldNoGammaTextureEffect::onComputeInvariantOutput(InvariantOutp ut* inout) const { 388 void GrDistanceFieldNoGammaTextureEffect::onComputeInvariantOutput(InvariantOutp ut* inout) const {
394 if (inout->isOpaque() && GrPixelConfigIsOpaque(this->texture(0)->config())) { 389 inout->mulByUnknownAlpha();
395 inout->fValidFlags = kA_GrColorComponentFlag;
396 } else {
397 inout->fValidFlags = 0;
398 }
399 inout->fIsSingleComponent = false;
400 } 390 }
401 391
402 const GrBackendGeometryProcessorFactory& GrDistanceFieldNoGammaTextureEffect::ge tFactory() const { 392 const GrBackendGeometryProcessorFactory& GrDistanceFieldNoGammaTextureEffect::ge tFactory() const {
403 return GrTBackendGeometryProcessorFactory<GrDistanceFieldNoGammaTextureEffec t>::getInstance(); 393 return GrTBackendGeometryProcessorFactory<GrDistanceFieldNoGammaTextureEffec t>::getInstance();
404 } 394 }
405 395
406 /////////////////////////////////////////////////////////////////////////////// 396 ///////////////////////////////////////////////////////////////////////////////
407 397
408 GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldNoGammaTextureEffect); 398 GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldNoGammaTextureEffect);
409 399
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 630
641 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrProcessor& other) const { 631 bool GrDistanceFieldLCDTextureEffect::onIsEqual(const GrProcessor& other) const {
642 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe xtureEffect>(); 632 const GrDistanceFieldLCDTextureEffect& cte = other.cast<GrDistanceFieldLCDTe xtureEffect>();
643 return (fTextureAccess == cte.fTextureAccess && 633 return (fTextureAccess == cte.fTextureAccess &&
644 fGammaTextureAccess == cte.fGammaTextureAccess && 634 fGammaTextureAccess == cte.fGammaTextureAccess &&
645 fTextColor == cte.fTextColor && 635 fTextColor == cte.fTextColor &&
646 fFlags == cte.fFlags); 636 fFlags == cte.fFlags);
647 } 637 }
648 638
649 void GrDistanceFieldLCDTextureEffect::onComputeInvariantOutput(InvariantOutput* inout) const { 639 void GrDistanceFieldLCDTextureEffect::onComputeInvariantOutput(InvariantOutput* inout) const {
650 if (inout->isOpaque() && GrPixelConfigIsOpaque(this->texture(0)->config())) { 640 inout->mulByUnknownColor();
651 inout->fValidFlags = kA_GrColorComponentFlag;
652 } else {
653 inout->fValidFlags = 0;
654 }
655 inout->fIsSingleComponent = false;
656 } 641 }
657 642
658 const GrBackendGeometryProcessorFactory& GrDistanceFieldLCDTextureEffect::getFac tory() const { 643 const GrBackendGeometryProcessorFactory& GrDistanceFieldLCDTextureEffect::getFac tory() const {
659 return GrTBackendGeometryProcessorFactory<GrDistanceFieldLCDTextureEffect>:: getInstance(); 644 return GrTBackendGeometryProcessorFactory<GrDistanceFieldLCDTextureEffect>:: getInstance();
660 } 645 }
661 646
662 /////////////////////////////////////////////////////////////////////////////// 647 ///////////////////////////////////////////////////////////////////////////////
663 648
664 GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldLCDTextureEffect); 649 GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrDistanceFieldLCDTextureEffect);
665 650
(...skipping 23 matching lines...) Expand all
689 random->nextULessThan(256), 674 random->nextULessThan(256),
690 random->nextULessThan(256)); 675 random->nextULessThan(256));
691 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; 676 uint32_t flags = kUseLCD_DistanceFieldEffectFlag;
692 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; 677 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0;
693 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; 678 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0;
694 return GrDistanceFieldLCDTextureEffect::Create(textures[texIdx], params, 679 return GrDistanceFieldLCDTextureEffect::Create(textures[texIdx], params,
695 textures[texIdx2], params2, 680 textures[texIdx2], params2,
696 textColor, 681 textColor,
697 flags); 682 flags);
698 } 683 }
OLDNEW
« no previous file with comments | « src/gpu/effects/GrDashingEffect.cpp ('k') | src/gpu/effects/GrDitherEffect.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698