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

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

Issue 822423004: Move most of the transform logic into the primitive processors (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: tiny update Created 5 years, 11 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
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 17 matching lines...) Expand all
28 public: 28 public:
29 GrGLDistanceFieldTextureEffect(const GrGeometryProcessor&, 29 GrGLDistanceFieldTextureEffect(const GrGeometryProcessor&,
30 const GrBatchTracker&) 30 const GrBatchTracker&)
31 : fColor(GrColor_ILLEGAL) 31 : fColor(GrColor_ILLEGAL)
32 , fTextureSize(SkISize::Make(-1,-1)) 32 , fTextureSize(SkISize::Make(-1,-1))
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 virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { 38 virtual void emitCode(EmitArgs& args) SK_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
49 // emit attributes
50 vsBuilder->emitAttributes(dfTexEffect);
51
48 GrGLVertToFrag v(kVec2f_GrSLType); 52 GrGLVertToFrag v(kVec2f_GrSLType);
49 args.fPB->addVarying("TextureCoords", &v); 53 args.fPB->addVarying("TextureCoords", &v);
50 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoord s()->fName); 54 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoord s()->fName);
51 55
52 // Setup pass through color 56 // Setup pass through color
53 this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputColor , 57 this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputColor ,
54 dfTexEffect.inColor(), &fColorUniform); 58 dfTexEffect.inColor(), &fColorUniform);
55 59
56 // setup uniform viewMatrix 60 // setup uniform viewMatrix
57 this->addUniformViewMatrix(pb); 61 this->addUniformViewMatrix(pb);
58 62
59 // setup position varying 63 // Setup position
60 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", vsBuilder->glPosition() , 64 const char* pos3 = "pos3";
61 this->uViewM(), dfTexEffect.inPosition()->fName); 65 vsBuilder->codeAppendf("vec3 %s;", pos3);
66 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", pos3, this->uViewM(),
67 dfTexEffect.inPosition()->fName);
62 68
63 // setup output coords 69 // emit transforms
64 vsBuilder->codeAppendf("%s = %s;", vsBuilder->positionCoords(), 70 this->emitTransforms(args.fPB, pos3, dfTexEffect.inPosition()->fName,
65 dfTexEffect.inPosition()->fName); 71 dfTexEffect.localMatrix(), args.fTransformsIn, args .fTransformsOut);
66 vsBuilder->codeAppendf("%s = %s;", vsBuilder->localCoords(), 72
67 dfTexEffect.inPosition()->fName); 73 vsBuilder->transformToNormalizedDeviceSpace(pos3);
68 74
69 const char* textureSizeUniName = NULL; 75 const char* textureSizeUniName = NULL;
70 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility, 76 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility,
71 kVec2f_GrSLType, kDefault_GrSLPre cision, 77 kVec2f_GrSLType, kDefault_GrSLPre cision,
72 "TextureSize", &textureSizeUniNam e); 78 "TextureSize", &textureSizeUniNam e);
73 79
74 fsBuilder->codeAppend("\tvec4 texColor = "); 80 fsBuilder->codeAppend("\tvec4 texColor = ");
75 fsBuilder->appendTextureLookup(args.fSamplers[0], 81 fsBuilder->appendTextureLookup(args.fSamplers[0],
76 v.fsIn(), 82 v.fsIn(),
77 kVec2f_GrSLType); 83 kVec2f_GrSLType);
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 void GrDistanceFieldTextureEffect::onGetInvariantOutputCoverage(GrInitInvariantO utput* out) const { 241 void GrDistanceFieldTextureEffect::onGetInvariantOutputCoverage(GrInitInvariantO utput* out) const {
236 out->setUnknownSingleComponent(); 242 out->setUnknownSingleComponent();
237 } 243 }
238 244
239 void GrDistanceFieldTextureEffect::getGLProcessorKey(const GrBatchTracker& bt, 245 void GrDistanceFieldTextureEffect::getGLProcessorKey(const GrBatchTracker& bt,
240 const GrGLCaps& caps, 246 const GrGLCaps& caps,
241 GrProcessorKeyBuilder* b) c onst { 247 GrProcessorKeyBuilder* b) c onst {
242 GrGLDistanceFieldTextureEffect::GenKey(*this, bt, caps, b); 248 GrGLDistanceFieldTextureEffect::GenKey(*this, bt, caps, b);
243 } 249 }
244 250
245 GrGLGeometryProcessor* 251 GrGLPrimitiveProcessor*
246 GrDistanceFieldTextureEffect::createGLInstance(const GrBatchTracker& bt) const { 252 GrDistanceFieldTextureEffect::createGLInstance(const GrBatchTracker& bt,
253 const GrGLCaps&) const {
247 return SkNEW_ARGS(GrGLDistanceFieldTextureEffect, (*this, bt)); 254 return SkNEW_ARGS(GrGLDistanceFieldTextureEffect, (*this, bt));
248 } 255 }
249 256
250 void GrDistanceFieldTextureEffect::initBatchTracker(GrBatchTracker* bt, const In itBT& init) const { 257 void GrDistanceFieldTextureEffect::initBatchTracker(GrBatchTracker* bt, const In itBT& init) const {
251 DistanceFieldBatchTracker* local = bt->cast<DistanceFieldBatchTracker>(); 258 DistanceFieldBatchTracker* local = bt->cast<DistanceFieldBatchTracker>();
252 local->fInputColorType = GetColorInputType(&local->fColor, this->color(), in it, 259 local->fInputColorType = GetColorInputType(&local->fColor, this->color(), in it,
253 SkToBool(fInColor)); 260 SkToBool(fInColor));
254 local->fUsesLocalCoords = init.fUsesLocalCoords; 261 local->fUsesLocalCoords = init.fUsesLocalCoords;
255 } 262 }
256 263
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 GrColor fColor; 321 GrColor fColor;
315 bool fUsesLocalCoords; 322 bool fUsesLocalCoords;
316 }; 323 };
317 324
318 class GrGLDistanceFieldNoGammaTextureEffect : public GrGLGeometryProcessor { 325 class GrGLDistanceFieldNoGammaTextureEffect : public GrGLGeometryProcessor {
319 public: 326 public:
320 GrGLDistanceFieldNoGammaTextureEffect(const GrGeometryProcessor&, 327 GrGLDistanceFieldNoGammaTextureEffect(const GrGeometryProcessor&,
321 const GrBatchTracker&) 328 const GrBatchTracker&)
322 : fColor(GrColor_ILLEGAL), fTextureSize(SkISize::Make(-1, -1)) {} 329 : fColor(GrColor_ILLEGAL), fTextureSize(SkISize::Make(-1, -1)) {}
323 330
324 virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { 331 virtual void emitCode(EmitArgs& args) SK_OVERRIDE {
325 const GrDistanceFieldNoGammaTextureEffect& dfTexEffect = 332 const GrDistanceFieldNoGammaTextureEffect& dfTexEffect =
326 args.fGP.cast<GrDistanceFieldNoGammaTextureEffect>(); 333 args.fGP.cast<GrDistanceFieldNoGammaTextureEffect>();
327 334
328 const DistanceFieldNoGammaBatchTracker& local = 335 const DistanceFieldNoGammaBatchTracker& local =
329 args.fBT.cast<DistanceFieldNoGammaBatchTracker>(); 336 args.fBT.cast<DistanceFieldNoGammaBatchTracker>();
330 GrGLGPBuilder* pb = args.fPB; 337 GrGLGPBuilder* pb = args.fPB;
331 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); 338 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
332 SkAssertResult(fsBuilder->enableFeature( 339 SkAssertResult(fsBuilder->enableFeature(
333 GrGLFragmentShaderBuilder::kStandardDerivat ives_GLSLFeature)); 340 GrGLFragmentShaderBuilder::kStandardDerivat ives_GLSLFeature));
334 341
335 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); 342 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder();
343
344 // emit attributes
345 vsBuilder->emitAttributes(dfTexEffect);
346
336 GrGLVertToFrag v(kVec2f_GrSLType); 347 GrGLVertToFrag v(kVec2f_GrSLType);
337 args.fPB->addVarying("TextureCoords", &v); 348 args.fPB->addVarying("TextureCoords", &v);
338 349
339 // setup pass through color 350 // setup pass through color
340 this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputColor , 351 this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputColor ,
341 dfTexEffect.inColor(), &fColorUniform); 352 dfTexEffect.inColor(), &fColorUniform);
342 353
343 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoord s()->fName); 354 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoord s()->fName);
344 355
345 // setup coord outputs
346 vsBuilder->codeAppendf("%s = %s;", vsBuilder->positionCoords(),
347 dfTexEffect.inPosition()->fName);
348 vsBuilder->codeAppendf("%s = %s;", vsBuilder->localCoords(),
349 dfTexEffect.inPosition()->fName);
350
351 // setup uniform viewMatrix 356 // setup uniform viewMatrix
352 this->addUniformViewMatrix(pb); 357 this->addUniformViewMatrix(pb);
353 358
354 // setup position varying 359 // Setup position
355 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", vsBuilder->glPosition() , 360 const char* pos3 = "pos3";
356 this->uViewM(), dfTexEffect.inPosition()->fName); 361 vsBuilder->codeAppendf("vec3 %s;", pos3);
362 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", pos3, this->uViewM(),
363 dfTexEffect.inPosition()->fName);
364
365 // emit transforms
366 this->emitTransforms(args.fPB, pos3, dfTexEffect.inPosition()->fName,
367 dfTexEffect.localMatrix(), args.fTransformsIn, args .fTransformsOut);
368
369 vsBuilder->transformToNormalizedDeviceSpace(pos3);
357 370
358 const char* textureSizeUniName = NULL; 371 const char* textureSizeUniName = NULL;
359 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility, 372 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility,
360 kVec2f_GrSLType, kDefault_GrSLPrec ision, 373 kVec2f_GrSLType, kDefault_GrSLPrec ision,
361 "TextureSize", &textureSizeUniName ); 374 "TextureSize", &textureSizeUniName );
362 375
363 fsBuilder->codeAppend("vec4 texColor = "); 376 fsBuilder->codeAppend("vec4 texColor = ");
364 fsBuilder->appendTextureLookup(args.fSamplers[0], 377 fsBuilder->appendTextureLookup(args.fSamplers[0],
365 v.fsIn(), 378 v.fsIn(),
366 kVec2f_GrSLType); 379 kVec2f_GrSLType);
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 void GrDistanceFieldNoGammaTextureEffect::onGetInvariantOutputCoverage(GrInitInv ariantOutput* out) const{ 499 void GrDistanceFieldNoGammaTextureEffect::onGetInvariantOutputCoverage(GrInitInv ariantOutput* out) const{
487 out->setUnknownSingleComponent(); 500 out->setUnknownSingleComponent();
488 } 501 }
489 502
490 void GrDistanceFieldNoGammaTextureEffect::getGLProcessorKey(const GrBatchTracker & bt, 503 void GrDistanceFieldNoGammaTextureEffect::getGLProcessorKey(const GrBatchTracker & bt,
491 const GrGLCaps& caps , 504 const GrGLCaps& caps ,
492 GrProcessorKeyBuilde r* b) const { 505 GrProcessorKeyBuilde r* b) const {
493 GrGLDistanceFieldNoGammaTextureEffect::GenKey(*this, bt, caps, b); 506 GrGLDistanceFieldNoGammaTextureEffect::GenKey(*this, bt, caps, b);
494 } 507 }
495 508
496 GrGLGeometryProcessor* 509 GrGLPrimitiveProcessor*
497 GrDistanceFieldNoGammaTextureEffect::createGLInstance(const GrBatchTracker& bt) const { 510 GrDistanceFieldNoGammaTextureEffect::createGLInstance(const GrBatchTracker& bt,
511 const GrGLCaps&) const {
498 return SkNEW_ARGS(GrGLDistanceFieldNoGammaTextureEffect, (*this, bt)); 512 return SkNEW_ARGS(GrGLDistanceFieldNoGammaTextureEffect, (*this, bt));
499 } 513 }
500 514
501 void GrDistanceFieldNoGammaTextureEffect::initBatchTracker(GrBatchTracker* bt, 515 void GrDistanceFieldNoGammaTextureEffect::initBatchTracker(GrBatchTracker* bt,
502 const InitBT& init) c onst { 516 const InitBT& init) c onst {
503 DistanceFieldNoGammaBatchTracker* local = bt->cast<DistanceFieldNoGammaBatch Tracker>(); 517 DistanceFieldNoGammaBatchTracker* local = bt->cast<DistanceFieldNoGammaBatch Tracker>();
504 local->fInputColorType = GetColorInputType(&local->fColor, this->color(), in it, 518 local->fInputColorType = GetColorInputType(&local->fColor, this->color(), in it,
505 SkToBool(fInColor)); 519 SkToBool(fInColor));
506 local->fUsesLocalCoords = init.fUsesLocalCoords; 520 local->fUsesLocalCoords = init.fUsesLocalCoords;
507 } 521 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 }; 569 };
556 570
557 class GrGLDistanceFieldLCDTextureEffect : public GrGLGeometryProcessor { 571 class GrGLDistanceFieldLCDTextureEffect : public GrGLGeometryProcessor {
558 public: 572 public:
559 GrGLDistanceFieldLCDTextureEffect(const GrGeometryProcessor&, 573 GrGLDistanceFieldLCDTextureEffect(const GrGeometryProcessor&,
560 const GrBatchTracker&) 574 const GrBatchTracker&)
561 : fColor(GrColor_ILLEGAL) 575 : fColor(GrColor_ILLEGAL)
562 , fTextureSize(SkISize::Make(-1,-1)) 576 , fTextureSize(SkISize::Make(-1,-1))
563 , fTextColor(GrColor_ILLEGAL) {} 577 , fTextColor(GrColor_ILLEGAL) {}
564 578
565 virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { 579 virtual void emitCode(EmitArgs& args) SK_OVERRIDE {
566 const GrDistanceFieldLCDTextureEffect& dfTexEffect = 580 const GrDistanceFieldLCDTextureEffect& dfTexEffect =
567 args.fGP.cast<GrDistanceFieldLCDTextureEffect>(); 581 args.fGP.cast<GrDistanceFieldLCDTextureEffect>();
568 const DistanceFieldLCDBatchTracker& local = args.fBT.cast<DistanceFieldL CDBatchTracker>(); 582 const DistanceFieldLCDBatchTracker& local = args.fBT.cast<DistanceFieldL CDBatchTracker>();
569 GrGLGPBuilder* pb = args.fPB; 583 GrGLGPBuilder* pb = args.fPB;
570 584
571 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); 585 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder();
586
587 // emit attributes
588 vsBuilder->emitAttributes(dfTexEffect);
589
572 GrGLVertToFrag v(kVec2f_GrSLType); 590 GrGLVertToFrag v(kVec2f_GrSLType);
573 args.fPB->addVarying("TextureCoords", &v); 591 args.fPB->addVarying("TextureCoords", &v);
574 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoord s()->fName); 592 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoord s()->fName);
575 593
576 // setup pass through color 594 // setup pass through color
577 this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputColor , NULL, 595 this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputColor , NULL,
578 &fColorUniform); 596 &fColorUniform);
579 597
580 // setup coord outputs
581 vsBuilder->codeAppendf("%s = %s;", vsBuilder->positionCoords(),
582 dfTexEffect.inPosition()->fName);
583 vsBuilder->codeAppendf("%s = %s;", vsBuilder->localCoords(),
584 dfTexEffect.inPosition()->fName);
585
586 // setup uniform viewMatrix 598 // setup uniform viewMatrix
587 this->addUniformViewMatrix(pb); 599 this->addUniformViewMatrix(pb);
588 600
589 // setup position varying 601 // Setup position
590 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", vsBuilder->glPosition() , this->uViewM(), 602 const char* pos3 = "pos3";
603 vsBuilder->codeAppendf("vec3 %s;", pos3);
604 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", pos3, this->uViewM(),
591 dfTexEffect.inPosition()->fName); 605 dfTexEffect.inPosition()->fName);
592 606
607 // emit transforms
608 this->emitTransforms(args.fPB, pos3, dfTexEffect.inPosition()->fName,
609 dfTexEffect.localMatrix(), args.fTransformsIn, args .fTransformsOut);
610
611 vsBuilder->transformToNormalizedDeviceSpace(pos3);
612
593 const char* textureSizeUniName = NULL; 613 const char* textureSizeUniName = NULL;
594 // width, height, 1/(3*width) 614 // width, height, 1/(3*width)
595 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility, 615 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility,
596 kVec3f_GrSLType, kDefault_GrSLPrec ision, 616 kVec3f_GrSLType, kDefault_GrSLPrec ision,
597 "TextureSize", &textureSizeUniName ); 617 "TextureSize", &textureSizeUniName );
598 618
599 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); 619 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
600 620
601 SkAssertResult(fsBuilder->enableFeature( 621 SkAssertResult(fsBuilder->enableFeature(
602 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)); 622 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature));
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 out->setUnknownFourComponents(); 818 out->setUnknownFourComponents();
799 out->setUsingLCDCoverage(); 819 out->setUsingLCDCoverage();
800 } 820 }
801 821
802 void GrDistanceFieldLCDTextureEffect::getGLProcessorKey(const GrBatchTracker& bt , 822 void GrDistanceFieldLCDTextureEffect::getGLProcessorKey(const GrBatchTracker& bt ,
803 const GrGLCaps& caps, 823 const GrGLCaps& caps,
804 GrProcessorKeyBuilder* b ) const { 824 GrProcessorKeyBuilder* b ) const {
805 GrGLDistanceFieldLCDTextureEffect::GenKey(*this, bt, caps, b); 825 GrGLDistanceFieldLCDTextureEffect::GenKey(*this, bt, caps, b);
806 } 826 }
807 827
808 GrGLGeometryProcessor* 828 GrGLPrimitiveProcessor*
809 GrDistanceFieldLCDTextureEffect::createGLInstance(const GrBatchTracker& bt) cons t { 829 GrDistanceFieldLCDTextureEffect::createGLInstance(const GrBatchTracker& bt,
830 const GrGLCaps&) const {
810 return SkNEW_ARGS(GrGLDistanceFieldLCDTextureEffect, (*this, bt)); 831 return SkNEW_ARGS(GrGLDistanceFieldLCDTextureEffect, (*this, bt));
811 } 832 }
812 833
813 void GrDistanceFieldLCDTextureEffect::initBatchTracker(GrBatchTracker* bt, 834 void GrDistanceFieldLCDTextureEffect::initBatchTracker(GrBatchTracker* bt,
814 const InitBT& init) const { 835 const InitBT& init) const {
815 DistanceFieldLCDBatchTracker* local = bt->cast<DistanceFieldLCDBatchTracker> (); 836 DistanceFieldLCDBatchTracker* local = bt->cast<DistanceFieldLCDBatchTracker> ();
816 local->fInputColorType = GetColorInputType(&local->fColor, this->color(), in it, false); 837 local->fInputColorType = GetColorInputType(&local->fColor, this->color(), in it, false);
817 local->fUsesLocalCoords = init.fUsesLocalCoords; 838 local->fUsesLocalCoords = init.fUsesLocalCoords;
818 } 839 }
819 840
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; 881 uint32_t flags = kUseLCD_DistanceFieldEffectFlag;
861 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; 882 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0;
862 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; 883 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0;
863 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random), 884 return GrDistanceFieldLCDTextureEffect::Create(GrRandomColor(random),
864 GrProcessorUnitTest::TestMatr ix(random), 885 GrProcessorUnitTest::TestMatr ix(random),
865 textures[texIdx], params, 886 textures[texIdx], params,
866 textures[texIdx2], params2, 887 textures[texIdx2], params2,
867 textColor, 888 textColor,
868 flags); 889 flags);
869 } 890 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698