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

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

Issue 1037793002: C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla} (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: git cl web Created 5 years, 9 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 "GrFontAtlasSizes.h" 9 #include "GrFontAtlasSizes.h"
10 #include "GrInvariantOutput.h" 10 #include "GrInvariantOutput.h"
(...skipping 17 matching lines...) Expand all
28 class GrGLDistanceFieldTextureEffect : public GrGLGeometryProcessor { 28 class GrGLDistanceFieldTextureEffect : public GrGLGeometryProcessor {
29 public: 29 public:
30 GrGLDistanceFieldTextureEffect(const GrGeometryProcessor&, 30 GrGLDistanceFieldTextureEffect(const GrGeometryProcessor&,
31 const GrBatchTracker&) 31 const GrBatchTracker&)
32 : fColor(GrColor_ILLEGAL) 32 : fColor(GrColor_ILLEGAL)
33 #ifdef SK_GAMMA_APPLY_TO_A8 33 #ifdef SK_GAMMA_APPLY_TO_A8
34 , fLuminance(-1.0f) 34 , fLuminance(-1.0f)
35 #endif 35 #endif
36 {} 36 {}
37 37
38 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) SK_OVERRIDE{ 38 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{
39 const GrDistanceFieldTextureEffect& dfTexEffect = 39 const GrDistanceFieldTextureEffect& dfTexEffect =
40 args.fGP.cast<GrDistanceFieldTextureEffect>(); 40 args.fGP.cast<GrDistanceFieldTextureEffect>();
41 const DistanceFieldBatchTracker& local = args.fBT.cast<DistanceFieldBatc hTracker>(); 41 const DistanceFieldBatchTracker& local = args.fBT.cast<DistanceFieldBatc hTracker>();
42 GrGLGPBuilder* pb = args.fPB; 42 GrGLGPBuilder* pb = args.fPB;
43 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); 43 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
44 SkAssertResult(fsBuilder->enableFeature( 44 SkAssertResult(fsBuilder->enableFeature(
45 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)); 45 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature));
46 46
47 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); 47 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder();
48 48
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 fsBuilder->appendTextureLookup(args.fSamplers[1], "uv", kVec2f_GrSLType) ; 132 fsBuilder->appendTextureLookup(args.fSamplers[1], "uv", kVec2f_GrSLType) ;
133 fsBuilder->codeAppend(";\n"); 133 fsBuilder->codeAppend(";\n");
134 fsBuilder->codeAppend("\tval = gammaColor.r;\n"); 134 fsBuilder->codeAppend("\tval = gammaColor.r;\n");
135 #endif 135 #endif
136 136
137 fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage); 137 fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage);
138 } 138 }
139 139
140 virtual void setData(const GrGLProgramDataManager& pdman, 140 virtual void setData(const GrGLProgramDataManager& pdman,
141 const GrPrimitiveProcessor& proc, 141 const GrPrimitiveProcessor& proc,
142 const GrBatchTracker& bt) SK_OVERRIDE { 142 const GrBatchTracker& bt) override {
143 #ifdef SK_GAMMA_APPLY_TO_A8 143 #ifdef SK_GAMMA_APPLY_TO_A8
144 const GrDistanceFieldTextureEffect& dfTexEffect = 144 const GrDistanceFieldTextureEffect& dfTexEffect =
145 proc.cast<GrDistanceFieldTextureEffect>(); 145 proc.cast<GrDistanceFieldTextureEffect>();
146 float luminance = dfTexEffect.getLuminance(); 146 float luminance = dfTexEffect.getLuminance();
147 if (luminance != fLuminance) { 147 if (luminance != fLuminance) {
148 pdman.set1f(fLuminanceUni, luminance); 148 pdman.set1f(fLuminanceUni, luminance);
149 fLuminance = luminance; 149 fLuminance = luminance;
150 } 150 }
151 #endif 151 #endif
152 152
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 GrColor fColor; 312 GrColor fColor;
313 bool fUsesLocalCoords; 313 bool fUsesLocalCoords;
314 }; 314 };
315 315
316 class GrGLDistanceFieldNoGammaTextureEffect : public GrGLGeometryProcessor { 316 class GrGLDistanceFieldNoGammaTextureEffect : public GrGLGeometryProcessor {
317 public: 317 public:
318 GrGLDistanceFieldNoGammaTextureEffect(const GrGeometryProcessor&, 318 GrGLDistanceFieldNoGammaTextureEffect(const GrGeometryProcessor&,
319 const GrBatchTracker&) 319 const GrBatchTracker&)
320 : fColor(GrColor_ILLEGAL), fTextureSize(SkISize::Make(-1, -1)) {} 320 : fColor(GrColor_ILLEGAL), fTextureSize(SkISize::Make(-1, -1)) {}
321 321
322 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) SK_OVERRIDE{ 322 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{
323 const GrDistanceFieldNoGammaTextureEffect& dfTexEffect = 323 const GrDistanceFieldNoGammaTextureEffect& dfTexEffect =
324 args.fGP.cast<GrDistanceFieldNoGammaTextureEffect>(); 324 args.fGP.cast<GrDistanceFieldNoGammaTextureEffect>();
325 325
326 const DistanceFieldNoGammaBatchTracker& local = 326 const DistanceFieldNoGammaBatchTracker& local =
327 args.fBT.cast<DistanceFieldNoGammaBatchTracker>(); 327 args.fBT.cast<DistanceFieldNoGammaBatchTracker>();
328 GrGLGPBuilder* pb = args.fPB; 328 GrGLGPBuilder* pb = args.fPB;
329 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); 329 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
330 SkAssertResult(fsBuilder->enableFeature( 330 SkAssertResult(fsBuilder->enableFeature(
331 GrGLFragmentShaderBuilder::kStandardDerivat ives_GLSLFeature)); 331 GrGLFragmentShaderBuilder::kStandardDerivat ives_GLSLFeature));
332 332
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 // this gives us a smooth step across approximately one fragment 402 // this gives us a smooth step across approximately one fragment
403 fsBuilder->codeAppend("afwidth = " SK_DistanceFieldAAFactor "*length (grad);"); 403 fsBuilder->codeAppend("afwidth = " SK_DistanceFieldAAFactor "*length (grad);");
404 } 404 }
405 fsBuilder->codeAppend("float val = smoothstep(-afwidth, afwidth, distanc e);"); 405 fsBuilder->codeAppend("float val = smoothstep(-afwidth, afwidth, distanc e);");
406 406
407 fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage); 407 fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage);
408 } 408 }
409 409
410 virtual void setData(const GrGLProgramDataManager& pdman, 410 virtual void setData(const GrGLProgramDataManager& pdman,
411 const GrPrimitiveProcessor& proc, 411 const GrPrimitiveProcessor& proc,
412 const GrBatchTracker& bt) SK_OVERRIDE { 412 const GrBatchTracker& bt) override {
413 SkASSERT(fTextureSizeUni.isValid()); 413 SkASSERT(fTextureSizeUni.isValid());
414 414
415 GrTexture* texture = proc.texture(0); 415 GrTexture* texture = proc.texture(0);
416 if (texture->width() != fTextureSize.width() || 416 if (texture->width() != fTextureSize.width() ||
417 texture->height() != fTextureSize.height()) { 417 texture->height() != fTextureSize.height()) {
418 fTextureSize = SkISize::Make(texture->width(), texture->height()); 418 fTextureSize = SkISize::Make(texture->width(), texture->height());
419 pdman.set2f(fTextureSizeUni, 419 pdman.set2f(fTextureSizeUni,
420 SkIntToScalar(fTextureSize.width()), 420 SkIntToScalar(fTextureSize.width()),
421 SkIntToScalar(fTextureSize.height())); 421 SkIntToScalar(fTextureSize.height()));
422 } 422 }
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 bool fUsesLocalCoords; 559 bool fUsesLocalCoords;
560 }; 560 };
561 561
562 class GrGLDistanceFieldLCDTextureEffect : public GrGLGeometryProcessor { 562 class GrGLDistanceFieldLCDTextureEffect : public GrGLGeometryProcessor {
563 public: 563 public:
564 GrGLDistanceFieldLCDTextureEffect(const GrGeometryProcessor&, 564 GrGLDistanceFieldLCDTextureEffect(const GrGeometryProcessor&,
565 const GrBatchTracker&) 565 const GrBatchTracker&)
566 : fColor(GrColor_ILLEGAL) 566 : fColor(GrColor_ILLEGAL)
567 , fTextColor(GrColor_ILLEGAL) {} 567 , fTextColor(GrColor_ILLEGAL) {}
568 568
569 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) SK_OVERRIDE{ 569 void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{
570 const GrDistanceFieldLCDTextureEffect& dfTexEffect = 570 const GrDistanceFieldLCDTextureEffect& dfTexEffect =
571 args.fGP.cast<GrDistanceFieldLCDTextureEffect>(); 571 args.fGP.cast<GrDistanceFieldLCDTextureEffect>();
572 const DistanceFieldLCDBatchTracker& local = args.fBT.cast<DistanceFieldL CDBatchTracker>(); 572 const DistanceFieldLCDBatchTracker& local = args.fBT.cast<DistanceFieldL CDBatchTracker>();
573 GrGLGPBuilder* pb = args.fPB; 573 GrGLGPBuilder* pb = args.fPB;
574 574
575 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); 575 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder();
576 576
577 // emit attributes 577 // emit attributes
578 vsBuilder->emitAttributes(dfTexEffect); 578 vsBuilder->emitAttributes(dfTexEffect);
579 579
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 fsBuilder->codeAppend("\tgammaColor = "); 706 fsBuilder->codeAppend("\tgammaColor = ");
707 fsBuilder->appendTextureLookup(args.fSamplers[1], "uv", kVec2f_GrSLType) ; 707 fsBuilder->appendTextureLookup(args.fSamplers[1], "uv", kVec2f_GrSLType) ;
708 fsBuilder->codeAppend(".r;\n"); 708 fsBuilder->codeAppend(".r;\n");
709 fsBuilder->codeAppend("\tval.z = gammaColor;\n"); 709 fsBuilder->codeAppend("\tval.z = gammaColor;\n");
710 710
711 fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage); 711 fsBuilder->codeAppendf("%s = vec4(val);", args.fOutputCoverage);
712 } 712 }
713 713
714 virtual void setData(const GrGLProgramDataManager& pdman, 714 virtual void setData(const GrGLProgramDataManager& pdman,
715 const GrPrimitiveProcessor& processor, 715 const GrPrimitiveProcessor& processor,
716 const GrBatchTracker& bt) SK_OVERRIDE { 716 const GrBatchTracker& bt) override {
717 SkASSERT(fTextColorUni.isValid()); 717 SkASSERT(fTextColorUni.isValid());
718 718
719 const GrDistanceFieldLCDTextureEffect& dfTexEffect = 719 const GrDistanceFieldLCDTextureEffect& dfTexEffect =
720 processor.cast<GrDistanceFieldLCDTextureEffect>(); 720 processor.cast<GrDistanceFieldLCDTextureEffect>();
721 GrColor textColor = dfTexEffect.getTextColor(); 721 GrColor textColor = dfTexEffect.getTextColor();
722 if (textColor != fTextColor) { 722 if (textColor != fTextColor) {
723 static const float ONE_OVER_255 = 1.f / 255.f; 723 static const float ONE_OVER_255 = 1.f / 255.f;
724 pdman.set3f(fTextColorUni, 724 pdman.set3f(fTextColorUni,
725 GrColorUnpackR(textColor) * ONE_OVER_255, 725 GrColorUnpackR(textColor) * ONE_OVER_255,
726 GrColorUnpackG(textColor) * ONE_OVER_255, 726 GrColorUnpackG(textColor) * ONE_OVER_255,
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; 858 uint32_t flags = kUseLCD_DistanceFieldEffectFlag;
859 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; 859 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0;
860 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; 860 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0;
861 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), 861 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random),
862 GrProcessorUnitTest::TestMatr ix(random), 862 GrProcessorUnitTest::TestMatr ix(random),
863 textures[texIdx], params, 863 textures[texIdx], params,
864 textures[texIdx2], params2, 864 textures[texIdx2], params2,
865 textColor, 865 textColor,
866 flags); 866 flags);
867 } 867 }
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