OLD | NEW |
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 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 | 460 |
461 ///////////////////////////////////////////////////////////////////// | 461 ///////////////////////////////////////////////////////////////////// |
462 | 462 |
463 class GrGLLinearGradient : public GrGLGradientEffect { | 463 class GrGLLinearGradient : public GrGLGradientEffect { |
464 public: | 464 public: |
465 | 465 |
466 GrGLLinearGradient(const GrProcessor&) {} | 466 GrGLLinearGradient(const GrProcessor&) {} |
467 | 467 |
468 virtual ~GrGLLinearGradient() { } | 468 virtual ~GrGLLinearGradient() { } |
469 | 469 |
470 virtual void emitCode(GrGLFPBuilder*, | 470 virtual void emitCode(EmitArgs&) override; |
471 const GrFragmentProcessor&, | |
472 const char* outputColor, | |
473 const char* inputColor, | |
474 const TransformedCoordsArray&, | |
475 const TextureSamplerArray&) override; | |
476 | 471 |
477 static void GenKey(const GrProcessor& processor, const GrGLSLCaps&, GrProces
sorKeyBuilder* b) { | 472 static void GenKey(const GrProcessor& processor, const GrGLSLCaps&, GrProces
sorKeyBuilder* b) { |
478 b->add32(GenBaseGradientKey(processor)); | 473 b->add32(GenBaseGradientKey(processor)); |
479 } | 474 } |
480 | 475 |
481 private: | 476 private: |
482 | 477 |
483 typedef GrGLGradientEffect INHERITED; | 478 typedef GrGLGradientEffect INHERITED; |
484 }; | 479 }; |
485 | 480 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 GrColor paintColor; | 538 GrColor paintColor; |
544 GrFragmentProcessor* fp; | 539 GrFragmentProcessor* fp; |
545 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, | 540 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, |
546 GrTest::TestMatrix(d->fRandom), N
ULL, | 541 GrTest::TestMatrix(d->fRandom), N
ULL, |
547 &paintColor, d->fProcDataManager,
&fp)); | 542 &paintColor, d->fProcDataManager,
&fp)); |
548 return fp; | 543 return fp; |
549 } | 544 } |
550 | 545 |
551 ///////////////////////////////////////////////////////////////////// | 546 ///////////////////////////////////////////////////////////////////// |
552 | 547 |
553 void GrGLLinearGradient::emitCode(GrGLFPBuilder* builder, | 548 void GrGLLinearGradient::emitCode(EmitArgs& args) { |
554 const GrFragmentProcessor& fp, | 549 const GrLinearGradient& ge = args.fFp.cast<GrLinearGradient>(); |
555 const char* outputColor, | 550 this->emitUniforms(args.fBuilder, ge); |
556 const char* inputColor, | 551 SkString t = args.fBuilder->getFragmentShaderBuilder()->ensureFSCoords2D(arg
s.fCoords, 0); |
557 const TransformedCoordsArray& coords, | |
558 const TextureSamplerArray& samplers) { | |
559 const GrLinearGradient& ge = fp.cast<GrLinearGradient>(); | |
560 this->emitUniforms(builder, ge); | |
561 SkString t = builder->getFragmentShaderBuilder()->ensureFSCoords2D(coords, 0
); | |
562 t.append(".x"); | 552 t.append(".x"); |
563 this->emitColor(builder, ge, t.c_str(), outputColor, inputColor, samplers); | 553 this->emitColor(args.fBuilder, ge, t.c_str(), args.fOutputColor, args.fInput
Color, |
| 554 args.fSamplers); |
564 } | 555 } |
565 | 556 |
566 ///////////////////////////////////////////////////////////////////// | 557 ///////////////////////////////////////////////////////////////////// |
567 | 558 |
568 bool SkLinearGradient::asFragmentProcessor(GrContext* context, const SkPaint& pa
int, | 559 bool SkLinearGradient::asFragmentProcessor(GrContext* context, const SkPaint& pa
int, |
569 const SkMatrix& viewm, const SkMatrix
* localMatrix, | 560 const SkMatrix& viewm, const SkMatrix
* localMatrix, |
570 GrColor* paintColor, | 561 GrColor* paintColor, |
571 GrProcessorDataManager* procDataManag
er, | 562 GrProcessorDataManager* procDataManag
er, |
572 GrFragmentProcessor** fp) const { | 563 GrFragmentProcessor** fp) const { |
573 SkASSERT(context); | 564 SkASSERT(context); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 str->append("SkLinearGradient ("); | 598 str->append("SkLinearGradient ("); |
608 | 599 |
609 str->appendf("start: (%f, %f)", fStart.fX, fStart.fY); | 600 str->appendf("start: (%f, %f)", fStart.fX, fStart.fY); |
610 str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY); | 601 str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY); |
611 | 602 |
612 this->INHERITED::toString(str); | 603 this->INHERITED::toString(str); |
613 | 604 |
614 str->append(")"); | 605 str->append(")"); |
615 } | 606 } |
616 #endif | 607 #endif |
OLD | NEW |