OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "SkRadialGradient.h" | 9 #include "SkRadialGradient.h" |
10 #include "SkRadialGradient_Table.h" | 10 #include "SkRadialGradient_Table.h" |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 *dstC++ = cache[fi >> SkGradientShaderBase::kCache32Shift]; | 454 *dstC++ = cache[fi >> SkGradientShaderBase::kCache32Shift]; |
455 dstX += SK_Scalar1; | 455 dstX += SK_Scalar1; |
456 } while (--count != 0); | 456 } while (--count != 0); |
457 } | 457 } |
458 } | 458 } |
459 | 459 |
460 ///////////////////////////////////////////////////////////////////// | 460 ///////////////////////////////////////////////////////////////////// |
461 | 461 |
462 #if SK_SUPPORT_GPU | 462 #if SK_SUPPORT_GPU |
463 | 463 |
464 #include "GrTBackendProcessorFactory.h" | 464 #include "SkGr.h" |
465 #include "gl/builders/GrGLProgramBuilder.h" | 465 #include "gl/builders/GrGLProgramBuilder.h" |
466 #include "SkGr.h" | |
467 | 466 |
468 class GrGLRadialGradient : public GrGLGradientEffect { | 467 class GrGLRadialGradient : public GrGLGradientEffect { |
469 public: | 468 public: |
470 | 469 |
471 GrGLRadialGradient(const GrBackendProcessorFactory& factory, | 470 GrGLRadialGradient(const GrProcessor&) {} |
472 const GrProcessor&) : INHERITED (factory) { } | |
473 virtual ~GrGLRadialGradient() { } | 471 virtual ~GrGLRadialGradient() { } |
474 | 472 |
475 virtual void emitCode(GrGLFPBuilder*, | 473 virtual void emitCode(GrGLFPBuilder*, |
476 const GrFragmentProcessor&, | 474 const GrFragmentProcessor&, |
477 const char* outputColor, | 475 const char* outputColor, |
478 const char* inputColor, | 476 const char* inputColor, |
479 const TransformedCoordsArray&, | 477 const TransformedCoordsArray&, |
480 const TextureSamplerArray&) SK_OVERRIDE; | 478 const TextureSamplerArray&) SK_OVERRIDE; |
481 | 479 |
482 static void GenKey(const GrProcessor& processor, const GrGLCaps&, GrProcesso
rKeyBuilder* b) { | 480 static void GenKey(const GrProcessor& processor, const GrGLCaps&, GrProcesso
rKeyBuilder* b) { |
(...skipping 12 matching lines...) Expand all Loading... |
495 public: | 493 public: |
496 static GrFragmentProcessor* Create(GrContext* ctx, | 494 static GrFragmentProcessor* Create(GrContext* ctx, |
497 const SkRadialGradient& shader, | 495 const SkRadialGradient& shader, |
498 const SkMatrix& matrix, | 496 const SkMatrix& matrix, |
499 SkShader::TileMode tm) { | 497 SkShader::TileMode tm) { |
500 return SkNEW_ARGS(GrRadialGradient, (ctx, shader, matrix, tm)); | 498 return SkNEW_ARGS(GrRadialGradient, (ctx, shader, matrix, tm)); |
501 } | 499 } |
502 | 500 |
503 virtual ~GrRadialGradient() { } | 501 virtual ~GrRadialGradient() { } |
504 | 502 |
505 static const char* Name() { return "Radial Gradient"; } | 503 virtual const char* name() const SK_OVERRIDE { return "Radial Gradient"; } |
506 virtual const GrBackendFragmentProcessorFactory& getFactory() const SK_OVERR
IDE { | 504 |
507 return GrTBackendFragmentProcessorFactory<GrRadialGradient>::getInstance
(); | 505 virtual void getGLProcessorKey(const GrGLCaps& caps, |
| 506 GrProcessorKeyBuilder* b) const SK_OVERRIDE { |
| 507 GrGLRadialGradient::GenKey(*this, caps, b); |
508 } | 508 } |
509 | 509 |
510 typedef GrGLRadialGradient GLProcessor; | 510 virtual GrGLFragmentProcessor* createGLInstance() const SK_OVERRIDE { |
| 511 return SkNEW_ARGS(GrGLRadialGradient, (*this)); |
| 512 } |
| 513 |
| 514 virtual uint32_t classID() const { |
| 515 static uint32_t id = GenClassID(); |
| 516 return id; |
| 517 } |
511 | 518 |
512 private: | 519 private: |
513 GrRadialGradient(GrContext* ctx, | 520 GrRadialGradient(GrContext* ctx, |
514 const SkRadialGradient& shader, | 521 const SkRadialGradient& shader, |
515 const SkMatrix& matrix, | 522 const SkMatrix& matrix, |
516 SkShader::TileMode tm) | 523 SkShader::TileMode tm) |
517 : INHERITED(ctx, shader, matrix, tm) { | 524 : INHERITED(ctx, shader, matrix, tm) { |
518 } | 525 } |
519 | 526 |
520 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; | 527 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; |
(...skipping 28 matching lines...) Expand all Loading... |
549 } | 556 } |
550 | 557 |
551 ///////////////////////////////////////////////////////////////////// | 558 ///////////////////////////////////////////////////////////////////// |
552 | 559 |
553 void GrGLRadialGradient::emitCode(GrGLFPBuilder* builder, | 560 void GrGLRadialGradient::emitCode(GrGLFPBuilder* builder, |
554 const GrFragmentProcessor& fp, | 561 const GrFragmentProcessor& fp, |
555 const char* outputColor, | 562 const char* outputColor, |
556 const char* inputColor, | 563 const char* inputColor, |
557 const TransformedCoordsArray& coords, | 564 const TransformedCoordsArray& coords, |
558 const TextureSamplerArray& samplers) { | 565 const TextureSamplerArray& samplers) { |
559 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); | 566 const GrRadialGradient& ge = fp.cast<GrRadialGradient>(); |
560 this->emitUniforms(builder, ge); | 567 this->emitUniforms(builder, ge); |
561 SkString t("length("); | 568 SkString t("length("); |
562 t.append(builder->getFragmentShaderBuilder()->ensureFSCoords2D(coords, 0)); | 569 t.append(builder->getFragmentShaderBuilder()->ensureFSCoords2D(coords, 0)); |
563 t.append(")"); | 570 t.append(")"); |
564 this->emitColor(builder, ge, t.c_str(), outputColor, inputColor, samplers); | 571 this->emitColor(builder, ge, t.c_str(), outputColor, inputColor, samplers); |
565 } | 572 } |
566 | 573 |
567 ///////////////////////////////////////////////////////////////////// | 574 ///////////////////////////////////////////////////////////////////// |
568 | 575 |
569 bool SkRadialGradient::asFragmentProcessor(GrContext* context, const SkPaint& pa
int, | 576 bool SkRadialGradient::asFragmentProcessor(GrContext* context, const SkPaint& pa
int, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
610 str->appendScalar(fCenter.fY); | 617 str->appendScalar(fCenter.fY); |
611 str->append(") radius: "); | 618 str->append(") radius: "); |
612 str->appendScalar(fRadius); | 619 str->appendScalar(fRadius); |
613 str->append(" "); | 620 str->append(" "); |
614 | 621 |
615 this->INHERITED::toString(str); | 622 this->INHERITED::toString(str); |
616 | 623 |
617 str->append(")"); | 624 str->append(")"); |
618 } | 625 } |
619 #endif | 626 #endif |
OLD | NEW |