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

Side by Side Diff: gm/colortypexfermode.cpp

Issue 1832223002: switch xfermodes over to sk_sp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 4 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
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 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 #include "gm.h" 7 #include "gm.h"
8 #include "SkBitmap.h" 8 #include "SkBitmap.h"
9 #include "SkGradientShader.h" 9 #include "SkGradientShader.h"
10 #include "SkShader.h" 10 #include "SkShader.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 textP.setAntiAlias(true); 114 textP.setAntiAlias(true);
115 textP.setTypeface(fColorType); 115 textP.setTypeface(fColorType);
116 textP.setTextSize(SkIntToScalar(70)); 116 textP.setTextSize(SkIntToScalar(70));
117 117
118 const int W = 5; 118 const int W = 5;
119 119
120 SkScalar x0 = 0; 120 SkScalar x0 = 0;
121 SkScalar y0 = 0; 121 SkScalar y0 = 0;
122 SkScalar x = x0, y = y0; 122 SkScalar x = x0, y = y0;
123 for (size_t i = 0; i < SK_ARRAY_COUNT(gModes); i++) { 123 for (size_t i = 0; i < SK_ARRAY_COUNT(gModes); i++) {
124 SkXfermode* mode = SkXfermode::Create(gModes[i].fMode);
125 SkAutoUnref aur(mode);
126 SkRect r; 124 SkRect r;
127 r.set(x, y, x+w, y+h); 125 r.set(x, y, x+w, y+h);
128 126
129 SkPaint p; 127 SkPaint p;
130 p.setStyle(SkPaint::kFill_Style); 128 p.setStyle(SkPaint::kFill_Style);
131 p.setShader(s); 129 p.setShader(s);
132 canvas->drawRect(r, p); 130 canvas->drawRect(r, p);
133 131
134 r.inset(-SK_ScalarHalf, -SK_ScalarHalf); 132 r.inset(-SK_ScalarHalf, -SK_ScalarHalf);
135 p.setStyle(SkPaint::kStroke_Style); 133 p.setStyle(SkPaint::kStroke_Style);
136 p.setShader(nullptr); 134 p.setShader(nullptr);
137 canvas->drawRect(r, p); 135 canvas->drawRect(r, p);
138 136
139 textP.setXfermode(mode); 137 textP.setXfermode(SkXfermode::Make(gModes[i].fMode));
140 canvas->drawText("H", 1, x+ w/10.f, y + 7.f*h/8.f, textP); 138 canvas->drawText("H", 1, x+ w/10.f, y + 7.f*h/8.f, textP);
141 #if 1 139 #if 1
142 canvas->drawText(gModes[i].fLabel, strlen(gModes[i].fLabel), 140 canvas->drawText(gModes[i].fLabel, strlen(gModes[i].fLabel),
143 x + w/2, y - labelP.getTextSize()/2, labelP); 141 x + w/2, y - labelP.getTextSize()/2, labelP);
144 #endif 142 #endif
145 x += w + SkIntToScalar(10); 143 x += w + SkIntToScalar(10);
146 if ((i % W) == W - 1) { 144 if ((i % W) == W - 1) {
147 x = x0; 145 x = x0;
148 y += h + SkIntToScalar(30); 146 y += h + SkIntToScalar(30);
149 } 147 }
150 } 148 }
151 } 149 }
152 150
153 private: 151 private:
154 SkBitmap fBG; 152 SkBitmap fBG;
155 SkTypeface* fColorType; 153 SkTypeface* fColorType;
156 154
157 typedef GM INHERITED; 155 typedef GM INHERITED;
158 }; 156 };
159 157
160 ////////////////////////////////////////////////////////////////////////////// 158 //////////////////////////////////////////////////////////////////////////////
161 159
162 static GM* MyFactory(void*) { return new ColorTypeXfermodeGM; } 160 static GM* MyFactory(void*) { return new ColorTypeXfermodeGM; }
163 static GMRegistry reg(MyFactory); 161 static GMRegistry reg(MyFactory);
164 162
165 } 163 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698