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

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

Issue 1266633003: Added registerChild; transforms, textures, glKey automatically handled. (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: refactored to onGetGLProcessorKey; removed emitSamplers specialized template; fixed nits Created 5 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
« no previous file with comments | « src/effects/SkTableColorFilter.cpp ('k') | src/effects/gradients/SkRadialGradient.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 const SkLinearGradient& shader, 488 const SkLinearGradient& shader,
489 const SkMatrix& matrix, 489 const SkMatrix& matrix,
490 SkShader::TileMode tm) { 490 SkShader::TileMode tm) {
491 return SkNEW_ARGS(GrLinearGradient, (ctx, procDataManager, shader, matri x, tm)); 491 return SkNEW_ARGS(GrLinearGradient, (ctx, procDataManager, shader, matri x, tm));
492 } 492 }
493 493
494 virtual ~GrLinearGradient() { } 494 virtual ~GrLinearGradient() { }
495 495
496 const char* name() const override { return "Linear Gradient"; } 496 const char* name() const override { return "Linear Gradient"; }
497 497
498 virtual void getGLProcessorKey(const GrGLSLCaps& caps,
499 GrProcessorKeyBuilder* b) const override {
500 GrGLLinearGradient::GenKey(*this, caps, b);
501 }
502
503 GrGLFragmentProcessor* createGLInstance() const override { 498 GrGLFragmentProcessor* createGLInstance() const override {
504 return SkNEW_ARGS(GrGLLinearGradient, (*this)); 499 return SkNEW_ARGS(GrGLLinearGradient, (*this));
505 } 500 }
506 501
507 private: 502 private:
508 GrLinearGradient(GrContext* ctx, 503 GrLinearGradient(GrContext* ctx,
509 GrProcessorDataManager* procDataManager, 504 GrProcessorDataManager* procDataManager,
510 const SkLinearGradient& shader, 505 const SkLinearGradient& shader,
511 const SkMatrix& matrix, 506 const SkMatrix& matrix,
512 SkShader::TileMode tm) 507 SkShader::TileMode tm)
513 : INHERITED(ctx, procDataManager, shader, matrix, tm) { 508 : INHERITED(ctx, procDataManager, shader, matrix, tm) {
514 this->initClassID<GrLinearGradient>(); 509 this->initClassID<GrLinearGradient>();
515 } 510 }
511
512 virtual void onGetGLProcessorKey(const GrGLSLCaps& caps,
513 GrProcessorKeyBuilder* b) const override {
514 GrGLLinearGradient::GenKey(*this, caps, b);
515 }
516
516 GR_DECLARE_FRAGMENT_PROCESSOR_TEST; 517 GR_DECLARE_FRAGMENT_PROCESSOR_TEST;
517 518
518 typedef GrGradientEffect INHERITED; 519 typedef GrGradientEffect INHERITED;
519 }; 520 };
520 521
521 ///////////////////////////////////////////////////////////////////// 522 /////////////////////////////////////////////////////////////////////
522 523
523 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrLinearGradient); 524 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrLinearGradient);
524 525
525 GrFragmentProcessor* GrLinearGradient::TestCreate(GrProcessorTestData* d) { 526 GrFragmentProcessor* GrLinearGradient::TestCreate(GrProcessorTestData* d) {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 str->append("SkLinearGradient ("); 599 str->append("SkLinearGradient (");
599 600
600 str->appendf("start: (%f, %f)", fStart.fX, fStart.fY); 601 str->appendf("start: (%f, %f)", fStart.fX, fStart.fY);
601 str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY); 602 str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY);
602 603
603 this->INHERITED::toString(str); 604 this->INHERITED::toString(str);
604 605
605 str->append(")"); 606 str->append(")");
606 } 607 }
607 #endif 608 #endif
OLDNEW
« no previous file with comments | « src/effects/SkTableColorFilter.cpp ('k') | src/effects/gradients/SkRadialGradient.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698