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

Side by Side Diff: src/utils/debugger/SkDebugCanvas.cpp

Issue 240533003: Orphan ProcXfermode, with an eye towards removing it (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
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 9
10 #include "SkColorPriv.h" 10 #include "SkColorPriv.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 fCommandVector[i]->execute(&canvas); 85 fCommandVector[i]->execute(&canvas);
86 } 86 }
87 if (prev != bitmap.getColor(0,0)) { 87 if (prev != bitmap.getColor(0,0)) {
88 layer = i; 88 layer = i;
89 } 89 }
90 prev = bitmap.getColor(0,0); 90 prev = bitmap.getColor(0,0);
91 } 91 }
92 return layer; 92 return layer;
93 } 93 }
94 94
95 static SkPMColor OverdrawXferModeProc(SkPMColor src, SkPMColor dst) { 95 class OverdrawXfermode : public SkXfermode {
96 // This table encodes the color progression of the overdraw visualization 96 public:
97 static const SkPMColor gTable[] = { 97 virtual SkPMColor xferColor(SkPMColor src, SkPMColor dst) const SK_OVERRIDE {
98 SkPackARGB32(0x00, 0x00, 0x00, 0x00), 98 // This table encodes the color progression of the overdraw visualizatio n
99 SkPackARGB32(0xFF, 128, 158, 255), 99 static const SkPMColor gTable[] = {
100 SkPackARGB32(0xFF, 170, 185, 212), 100 SkPackARGB32(0x00, 0x00, 0x00, 0x00),
101 SkPackARGB32(0xFF, 213, 195, 170), 101 SkPackARGB32(0xFF, 128, 158, 255),
102 SkPackARGB32(0xFF, 255, 192, 127), 102 SkPackARGB32(0xFF, 170, 185, 212),
103 SkPackARGB32(0xFF, 255, 185, 85), 103 SkPackARGB32(0xFF, 213, 195, 170),
104 SkPackARGB32(0xFF, 255, 165, 42), 104 SkPackARGB32(0xFF, 255, 192, 127),
105 SkPackARGB32(0xFF, 255, 135, 0), 105 SkPackARGB32(0xFF, 255, 185, 85),
106 SkPackARGB32(0xFF, 255, 95, 0), 106 SkPackARGB32(0xFF, 255, 165, 42),
107 SkPackARGB32(0xFF, 255, 50, 0), 107 SkPackARGB32(0xFF, 255, 135, 0),
108 SkPackARGB32(0xFF, 255, 0, 0) 108 SkPackARGB32(0xFF, 255, 95, 0),
109 }; 109 SkPackARGB32(0xFF, 255, 50, 0),
110 110 SkPackARGB32(0xFF, 255, 0, 0)
111 for (size_t i = 0; i < SK_ARRAY_COUNT(gTable)-1; ++i) { 111 };
112 if (gTable[i] == dst) { 112
113 return gTable[i+1]; 113 for (size_t i = 0; i < SK_ARRAY_COUNT(gTable)-1; ++i) {
114 if (gTable[i] == dst) {
115 return gTable[i+1];
116 }
114 } 117 }
118
119 return gTable[SK_ARRAY_COUNT(gTable)-1];
115 } 120 }
116 121
117 return gTable[SK_ARRAY_COUNT(gTable)-1]; 122 virtual Factory getFactory() const SK_OVERRIDE { return NULL; }
118 } 123 virtual void toString(SkString* str) const { str->set("OverdrawXfermode"); }
scroggo 2014/04/16 22:02:04 I'm not very familiar with toString. Does this nee
124 };
119 125
120 // The OverdrawFilter modifies every paint to use an SkProcXfermode which 126 // The OverdrawFilter modifies every paint to use an SkProcXfermode which
121 // in turn invokes OverdrawXferModeProc 127 // in turn invokes OverdrawXferModeProc
122 class SkOverdrawFilter : public SkDrawFilter { 128 class SkOverdrawFilter : public SkDrawFilter {
123 public: 129 public:
124 SkOverdrawFilter() { 130 SkOverdrawFilter() {
125 fXferMode = SkProcXfermode::Create(OverdrawXferModeProc); 131 fXferMode = SkNEW(OverdrawXfermode);
126 } 132 }
127 133
128 virtual ~SkOverdrawFilter() { 134 virtual ~SkOverdrawFilter() {
129 delete fXferMode; 135 delete fXferMode;
130 } 136 }
131 137
132 virtual bool filter(SkPaint* p, Type) SK_OVERRIDE { 138 virtual bool filter(SkPaint* p, Type) SK_OVERRIDE {
133 p->setXfermode(fXferMode); 139 p->setXfermode(fXferMode);
134 return true; 140 return true;
135 } 141 }
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 581
576 void SkDebugCanvas::didSetMatrix(const SkMatrix& matrix) { 582 void SkDebugCanvas::didSetMatrix(const SkMatrix& matrix) {
577 this->addDrawCommand(new SkSetMatrixCommand(matrix)); 583 this->addDrawCommand(new SkSetMatrixCommand(matrix));
578 this->INHERITED::didSetMatrix(matrix); 584 this->INHERITED::didSetMatrix(matrix);
579 } 585 }
580 586
581 void SkDebugCanvas::toggleCommand(int index, bool toggle) { 587 void SkDebugCanvas::toggleCommand(int index, bool toggle) {
582 SkASSERT(index < fCommandVector.count()); 588 SkASSERT(index < fCommandVector.count());
583 fCommandVector[index]->setVisible(toggle); 589 fCommandVector[index]->setVisible(toggle);
584 } 590 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698