| 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 |