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

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

Issue 491673002: Initial refactor of shaderbuilder (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Rebase Created 6 years, 4 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
OLDNEW
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 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 dstX += SK_Scalar1; 450 dstX += SK_Scalar1;
451 } while (--count != 0); 451 } while (--count != 0);
452 } 452 }
453 } 453 }
454 454
455 ///////////////////////////////////////////////////////////////////// 455 /////////////////////////////////////////////////////////////////////
456 456
457 #if SK_SUPPORT_GPU 457 #if SK_SUPPORT_GPU
458 458
459 #include "GrTBackendEffectFactory.h" 459 #include "GrTBackendEffectFactory.h"
460 #include "gl/GrGLShaderBuilder.h" 460 #include "gl/builders/GrGLProgramBuilder.h"
461 #include "SkGr.h" 461 #include "SkGr.h"
462 462
463 class GrGLRadialGradient : public GrGLGradientEffect { 463 class GrGLRadialGradient : public GrGLGradientEffect {
464 public: 464 public:
465 465
466 GrGLRadialGradient(const GrBackendEffectFactory& factory, 466 GrGLRadialGradient(const GrBackendEffectFactory& factory,
467 const GrDrawEffect&) : INHERITED (factory) { } 467 const GrDrawEffect&) : INHERITED (factory) { }
468 virtual ~GrGLRadialGradient() { } 468 virtual ~GrGLRadialGradient() { }
469 469
470 virtual void emitCode(GrGLShaderBuilder*, 470 virtual void emitCode(GrGLProgramBuilder*,
471 const GrDrawEffect&, 471 const GrDrawEffect&,
472 const GrEffectKey&, 472 const GrEffectKey&,
473 const char* outputColor, 473 const char* outputColor,
474 const char* inputColor, 474 const char* inputColor,
475 const TransformedCoordsArray&, 475 const TransformedCoordsArray&,
476 const TextureSamplerArray&) SK_OVERRIDE; 476 const TextureSamplerArray&) SK_OVERRIDE;
477 477
478 static void GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffect KeyBuilder* b) { 478 static void GenKey(const GrDrawEffect& drawEffect, const GrGLCaps&, GrEffect KeyBuilder* b) {
479 b->add32(GenBaseGradientKey(drawEffect)); 479 b->add32(GenBaseGradientKey(drawEffect));
480 } 480 }
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 tm)); 539 tm));
540 SkPaint paint; 540 SkPaint paint;
541 GrColor paintColor; 541 GrColor paintColor;
542 GrEffect* effect; 542 GrEffect* effect;
543 SkAssertResult(shader->asNewEffect(context, paint, NULL, &paintColor, &effec t)); 543 SkAssertResult(shader->asNewEffect(context, paint, NULL, &paintColor, &effec t));
544 return effect; 544 return effect;
545 } 545 }
546 546
547 ///////////////////////////////////////////////////////////////////// 547 /////////////////////////////////////////////////////////////////////
548 548
549 void GrGLRadialGradient::emitCode(GrGLShaderBuilder* builder, 549 void GrGLRadialGradient::emitCode(GrGLProgramBuilder* builder,
550 const GrDrawEffect&, 550 const GrDrawEffect&,
551 const GrEffectKey& key, 551 const GrEffectKey& key,
552 const char* outputColor, 552 const char* outputColor,
553 const char* inputColor, 553 const char* inputColor,
554 const TransformedCoordsArray& coords, 554 const TransformedCoordsArray& coords,
555 const TextureSamplerArray& samplers) { 555 const TextureSamplerArray& samplers) {
556 uint32_t baseKey = key.get32(0); 556 uint32_t baseKey = key.get32(0);
557 this->emitUniforms(builder, baseKey); 557 this->emitUniforms(builder, baseKey);
558 SkString t("length("); 558 SkString t("length(");
559 t.append(builder->ensureFSCoords2D(coords, 0)); 559 t.append(builder->getFragmentShaderBuilder()->ensureFSCoords2D(coords, 0));
560 t.append(")"); 560 t.append(")");
561 this->emitColor(builder, t.c_str(), baseKey, outputColor, inputColor, sample rs); 561 this->emitColor(builder, t.c_str(), baseKey, outputColor, inputColor, sample rs);
562 } 562 }
563 563
564 ///////////////////////////////////////////////////////////////////// 564 /////////////////////////////////////////////////////////////////////
565 565
566 bool SkRadialGradient::asNewEffect(GrContext* context, const SkPaint& paint, 566 bool SkRadialGradient::asNewEffect(GrContext* context, const SkPaint& paint,
567 const SkMatrix* localMatrix, GrColor* paintCo lor, 567 const SkMatrix* localMatrix, GrColor* paintCo lor,
568 GrEffect** effect) const { 568 GrEffect** effect) const {
569 SkASSERT(NULL != context); 569 SkASSERT(NULL != context);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 str->appendScalar(fCenter.fY); 608 str->appendScalar(fCenter.fY);
609 str->append(") radius: "); 609 str->append(") radius: ");
610 str->appendScalar(fRadius); 610 str->appendScalar(fRadius);
611 str->append(" "); 611 str->append(" ");
612 612
613 this->INHERITED::toString(str); 613 this->INHERITED::toString(str);
614 614
615 str->append(")"); 615 str->append(")");
616 } 616 }
617 #endif 617 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698