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

Side by Side Diff: src/effects/gradients/SkLinearGradient.cpp

Issue 1228683002: rename GrShaderDataManager -> GrProcessorDataManager (Closed) Base URL: https://skia.googlesource.com/skia.git@grfixuptests
Patch Set: rebase onto origin/master Created 5 years, 5 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/effects/gradients/SkLinearGradient.h ('k') | src/effects/gradients/SkRadialGradient.h » ('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 2012 Google Inc. 2 * Copyright 2012 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 "SkLinearGradient.h" 8 #include "SkLinearGradient.h"
9 9
10 static inline int repeat_bits(int x, const int bits) { 10 static inline int repeat_bits(int x, const int bits) {
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 482
483 typedef GrGLGradientEffect INHERITED; 483 typedef GrGLGradientEffect INHERITED;
484 }; 484 };
485 485
486 ///////////////////////////////////////////////////////////////////// 486 /////////////////////////////////////////////////////////////////////
487 487
488 class GrLinearGradient : public GrGradientEffect { 488 class GrLinearGradient : public GrGradientEffect {
489 public: 489 public:
490 490
491 static GrFragmentProcessor* Create(GrContext* ctx, 491 static GrFragmentProcessor* Create(GrContext* ctx,
492 GrShaderDataManager* shaderDataManager, 492 GrProcessorDataManager* procDataManager,
493 const SkLinearGradient& shader, 493 const SkLinearGradient& shader,
494 const SkMatrix& matrix, 494 const SkMatrix& matrix,
495 SkShader::TileMode tm) { 495 SkShader::TileMode tm) {
496 return SkNEW_ARGS(GrLinearGradient, (ctx, shaderDataManager, shader, mat rix, tm)); 496 return SkNEW_ARGS(GrLinearGradient, (ctx, procDataManager, shader, matri x, tm));
497 } 497 }
498 498
499 virtual ~GrLinearGradient() { } 499 virtual ~GrLinearGradient() { }
500 500
501 const char* name() const override { return "Linear Gradient"; } 501 const char* name() const override { return "Linear Gradient"; }
502 502
503 virtual void getGLProcessorKey(const GrGLSLCaps& caps, 503 virtual void getGLProcessorKey(const GrGLSLCaps& caps,
504 GrProcessorKeyBuilder* b) const override { 504 GrProcessorKeyBuilder* b) const override {
505 GrGLLinearGradient::GenKey(*this, caps, b); 505 GrGLLinearGradient::GenKey(*this, caps, b);
506 } 506 }
507 507
508 GrGLFragmentProcessor* createGLInstance() const override { 508 GrGLFragmentProcessor* createGLInstance() const override {
509 return SkNEW_ARGS(GrGLLinearGradient, (*this)); 509 return SkNEW_ARGS(GrGLLinearGradient, (*this));
510 } 510 }
511 511
512 private: 512 private:
513 GrLinearGradient(GrContext* ctx, 513 GrLinearGradient(GrContext* ctx,
514 GrShaderDataManager* shaderDataManager, 514 GrProcessorDataManager* procDataManager,
515 const SkLinearGradient& shader, 515 const SkLinearGradient& shader,
516 const SkMatrix& matrix, 516 const SkMatrix& matrix,
517 SkShader::TileMode tm) 517 SkShader::TileMode tm)
518 : INHERITED(ctx, shaderDataManager, shader, matrix, tm) { 518 : INHERITED(ctx, procDataManager, shader, matrix, tm) {
519 this->initClassID<GrLinearGradient>(); 519 this->initClassID<GrLinearGradient>();
520 } 520 }
521 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; 521 GR_DECLARE_FRAGMENT_PROCESSOR_TEST;
522 522
523 typedef GrGradientEffect INHERITED; 523 typedef GrGradientEffect INHERITED;
524 }; 524 };
525 525
526 ///////////////////////////////////////////////////////////////////// 526 /////////////////////////////////////////////////////////////////////
527 527
528 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrLinearGradient); 528 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrLinearGradient);
529 529
530 GrFragmentProcessor* GrLinearGradient::TestCreate(GrProcessorTestData* d) { 530 GrFragmentProcessor* GrLinearGradient::TestCreate(GrProcessorTestData* d) {
531 SkPoint points[] = {{d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()} , 531 SkPoint points[] = {{d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()} ,
532 {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()} }; 532 {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()} };
533 533
534 SkColor colors[kMaxRandomGradientColors]; 534 SkColor colors[kMaxRandomGradientColors];
535 SkScalar stopsArray[kMaxRandomGradientColors]; 535 SkScalar stopsArray[kMaxRandomGradientColors];
536 SkScalar* stops = stopsArray; 536 SkScalar* stops = stopsArray;
537 SkShader::TileMode tm; 537 SkShader::TileMode tm;
538 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); 538 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm);
539 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateLinear(points, 539 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateLinear(points,
540 colors, stops, colorCount, 540 colors, stops, colorCount,
541 tm)); 541 tm));
542 SkPaint paint; 542 SkPaint paint;
543 GrColor paintColor; 543 GrColor paintColor;
544 GrFragmentProcessor* fp; 544 GrFragmentProcessor* fp;
545 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, 545 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint,
546 GrTest::TestMatrix(d->fRandom), N ULL, 546 GrTest::TestMatrix(d->fRandom), N ULL,
547 &paintColor, d->fShaderDataManage r, &fp)); 547 &paintColor, d->fProcDataManager, &fp));
548 return fp; 548 return fp;
549 } 549 }
550 550
551 ///////////////////////////////////////////////////////////////////// 551 /////////////////////////////////////////////////////////////////////
552 552
553 void GrGLLinearGradient::emitCode(GrGLFPBuilder* builder, 553 void GrGLLinearGradient::emitCode(GrGLFPBuilder* builder,
554 const GrFragmentProcessor& fp, 554 const GrFragmentProcessor& fp,
555 const char* outputColor, 555 const char* outputColor,
556 const char* inputColor, 556 const char* inputColor,
557 const TransformedCoordsArray& coords, 557 const TransformedCoordsArray& coords,
558 const TextureSamplerArray& samplers) { 558 const TextureSamplerArray& samplers) {
559 const GrLinearGradient& ge = fp.cast<GrLinearGradient>(); 559 const GrLinearGradient& ge = fp.cast<GrLinearGradient>();
560 this->emitUniforms(builder, ge); 560 this->emitUniforms(builder, ge);
561 SkString t = builder->getFragmentShaderBuilder()->ensureFSCoords2D(coords, 0 ); 561 SkString t = builder->getFragmentShaderBuilder()->ensureFSCoords2D(coords, 0 );
562 t.append(".x"); 562 t.append(".x");
563 this->emitColor(builder, ge, t.c_str(), outputColor, inputColor, samplers); 563 this->emitColor(builder, ge, t.c_str(), outputColor, inputColor, samplers);
564 } 564 }
565 565
566 ///////////////////////////////////////////////////////////////////// 566 /////////////////////////////////////////////////////////////////////
567 567
568 bool SkLinearGradient::asFragmentProcessor(GrContext* context, const SkPaint& pa int, 568 bool SkLinearGradient::asFragmentProcessor(GrContext* context, const SkPaint& pa int,
569 const SkMatrix& viewm, const SkMatrix * localMatrix, 569 const SkMatrix& viewm, const SkMatrix * localMatrix,
570 GrColor* paintColor, 570 GrColor* paintColor,
571 GrShaderDataManager* shaderDataManage r, 571 GrProcessorDataManager* procDataManag er,
572 GrFragmentProcessor** fp) const { 572 GrFragmentProcessor** fp) const {
573 SkASSERT(context); 573 SkASSERT(context);
574 574
575 SkMatrix matrix; 575 SkMatrix matrix;
576 if (!this->getLocalMatrix().invert(&matrix)) { 576 if (!this->getLocalMatrix().invert(&matrix)) {
577 return false; 577 return false;
578 } 578 }
579 if (localMatrix) { 579 if (localMatrix) {
580 SkMatrix inv; 580 SkMatrix inv;
581 if (!localMatrix->invert(&inv)) { 581 if (!localMatrix->invert(&inv)) {
582 return false; 582 return false;
583 } 583 }
584 matrix.postConcat(inv); 584 matrix.postConcat(inv);
585 } 585 }
586 matrix.postConcat(fPtsToUnit); 586 matrix.postConcat(fPtsToUnit);
587 587
588 *paintColor = SkColor2GrColorJustAlpha(paint.getColor()); 588 *paintColor = SkColor2GrColorJustAlpha(paint.getColor());
589 *fp = GrLinearGradient::Create(context, shaderDataManager, *this, matrix, fT ileMode); 589 *fp = GrLinearGradient::Create(context, procDataManager, *this, matrix, fTil eMode);
590 590
591 return true; 591 return true;
592 } 592 }
593 593
594 #else 594 #else
595 595
596 bool SkLinearGradient::asFragmentProcessor(GrContext*, const SkPaint&, const SkM atrix&, 596 bool SkLinearGradient::asFragmentProcessor(GrContext*, const SkPaint&, const SkM atrix&,
597 const SkMatrix*, GrColor*, GrShaderDa taManager*, 597 const SkMatrix*, GrColor*, GrProcesso rDataManager*,
598 GrFragmentProcessor**) const { 598 GrFragmentProcessor**) const {
599 SkDEBUGFAIL("Should not call in GPU-less build"); 599 SkDEBUGFAIL("Should not call in GPU-less build");
600 return false; 600 return false;
601 } 601 }
602 602
603 #endif 603 #endif
604 604
605 #ifndef SK_IGNORE_TO_STRING 605 #ifndef SK_IGNORE_TO_STRING
606 void SkLinearGradient::toString(SkString* str) const { 606 void SkLinearGradient::toString(SkString* str) const {
607 str->append("SkLinearGradient ("); 607 str->append("SkLinearGradient (");
608 608
609 str->appendf("start: (%f, %f)", fStart.fX, fStart.fY); 609 str->appendf("start: (%f, %f)", fStart.fX, fStart.fY);
610 str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY); 610 str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY);
611 611
612 this->INHERITED::toString(str); 612 this->INHERITED::toString(str);
613 613
614 str->append(")"); 614 str->append(")");
615 } 615 }
616 #endif 616 #endif
OLDNEW
« no previous file with comments | « src/effects/gradients/SkLinearGradient.h ('k') | src/effects/gradients/SkRadialGradient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698