| 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 "SkSweepGradient.h" | 9 #include "SkSweepGradient.h" |
| 10 | 10 |
| (...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 ///////////////////////////////////////////////////////////////////// | 384 ///////////////////////////////////////////////////////////////////// |
| 385 | 385 |
| 386 #if SK_SUPPORT_GPU | 386 #if SK_SUPPORT_GPU |
| 387 | 387 |
| 388 #include "GrTBackendEffectFactory.h" | 388 #include "GrTBackendEffectFactory.h" |
| 389 | 389 |
| 390 class GrGLSweepGradient : public GrGLGradientEffect { | 390 class GrGLSweepGradient : public GrGLGradientEffect { |
| 391 public: | 391 public: |
| 392 | 392 |
| 393 GrGLSweepGradient(const GrBackendEffectFactory& factory, | 393 GrGLSweepGradient(const GrBackendEffectFactory& factory, |
| 394 const GrEffectRef&) : INHERITED (factory) { } | 394 const GrDrawEffect&) : INHERITED (factory) { } |
| 395 virtual ~GrGLSweepGradient() { } | 395 virtual ~GrGLSweepGradient() { } |
| 396 | 396 |
| 397 virtual void emitCode(GrGLShaderBuilder*, | 397 virtual void emitCode(GrGLShaderBuilder*, |
| 398 const GrEffectStage&, | 398 const GrDrawEffect&, |
| 399 EffectKey, | 399 EffectKey, |
| 400 const char* vertexCoords, | |
| 401 const char* outputColor, | 400 const char* outputColor, |
| 402 const char* inputColor, | 401 const char* inputColor, |
| 403 const TextureSamplerArray&) SK_OVERRIDE; | 402 const TextureSamplerArray&) SK_OVERRIDE; |
| 404 | 403 |
| 405 static EffectKey GenKey(const GrEffectStage& stage, const GrGLCaps&) { | 404 static EffectKey GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&) { |
| 406 return GenMatrixKey(stage); | 405 return GenMatrixKey(drawEffect); |
| 407 } | 406 } |
| 408 | 407 |
| 409 private: | 408 private: |
| 410 | 409 |
| 411 typedef GrGLGradientEffect INHERITED; | 410 typedef GrGLGradientEffect INHERITED; |
| 412 | 411 |
| 413 }; | 412 }; |
| 414 | 413 |
| 415 ///////////////////////////////////////////////////////////////////// | 414 ///////////////////////////////////////////////////////////////////// |
| 416 | 415 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 int colorCount = RandomGradientParams(random, colors, &stops, &tmIgnored); | 456 int colorCount = RandomGradientParams(random, colors, &stops, &tmIgnored); |
| 458 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateSweep(center.fX, cente
r.fY, | 457 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateSweep(center.fX, cente
r.fY, |
| 459 colors, stops, c
olorCount)); | 458 colors, stops, c
olorCount)); |
| 460 SkPaint paint; | 459 SkPaint paint; |
| 461 return shader->asNewEffect(context, paint); | 460 return shader->asNewEffect(context, paint); |
| 462 } | 461 } |
| 463 | 462 |
| 464 ///////////////////////////////////////////////////////////////////// | 463 ///////////////////////////////////////////////////////////////////// |
| 465 | 464 |
| 466 void GrGLSweepGradient::emitCode(GrGLShaderBuilder* builder, | 465 void GrGLSweepGradient::emitCode(GrGLShaderBuilder* builder, |
| 467 const GrEffectStage&, | 466 const GrDrawEffect&, |
| 468 EffectKey key, | 467 EffectKey key, |
| 469 const char* vertexCoords, | |
| 470 const char* outputColor, | 468 const char* outputColor, |
| 471 const char* inputColor, | 469 const char* inputColor, |
| 472 const TextureSamplerArray& samplers) { | 470 const TextureSamplerArray& samplers) { |
| 473 this->emitYCoordUniform(builder); | 471 this->emitYCoordUniform(builder); |
| 474 const char* coords; | 472 const char* coords; |
| 475 this->setupMatrix(builder, key, vertexCoords, &coords); | 473 this->setupMatrix(builder, key, &coords); |
| 476 SkString t; | 474 SkString t; |
| 477 t.printf("atan(- %s.y, - %s.x) * 0.1591549430918 + 0.5", coords, coords); | 475 t.printf("atan(- %s.y, - %s.x) * 0.1591549430918 + 0.5", coords, coords); |
| 478 this->emitColorLookup(builder, t.c_str(), outputColor, inputColor, samplers[
0]); | 476 this->emitColorLookup(builder, t.c_str(), outputColor, inputColor, samplers[
0]); |
| 479 } | 477 } |
| 480 | 478 |
| 481 ///////////////////////////////////////////////////////////////////// | 479 ///////////////////////////////////////////////////////////////////// |
| 482 | 480 |
| 483 GrEffectRef* SkSweepGradient::asNewEffect(GrContext* context, const SkPaint&) co
nst { | 481 GrEffectRef* SkSweepGradient::asNewEffect(GrContext* context, const SkPaint&) co
nst { |
| 484 SkMatrix matrix; | 482 SkMatrix matrix; |
| 485 if (!this->getLocalMatrix().invert(&matrix)) { | 483 if (!this->getLocalMatrix().invert(&matrix)) { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 506 str->appendScalar(fCenter.fX); | 504 str->appendScalar(fCenter.fX); |
| 507 str->append(", "); | 505 str->append(", "); |
| 508 str->appendScalar(fCenter.fY); | 506 str->appendScalar(fCenter.fY); |
| 509 str->append(") "); | 507 str->append(") "); |
| 510 | 508 |
| 511 this->INHERITED::toString(str); | 509 this->INHERITED::toString(str); |
| 512 | 510 |
| 513 str->append(")"); | 511 str->append(")"); |
| 514 } | 512 } |
| 515 #endif | 513 #endif |
| OLD | NEW |