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

Side by Side Diff: gm/texteffects.cpp

Issue 1821533002: guard rasterizer and drawlooper setters (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update android sdk Created 4 years, 9 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 2011 Google Inc. 2 * Copyright 2011 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 "gm.h" 8 #include "gm.h"
9 #include "SkBlurMask.h" 9 #include "SkBlurMask.h"
10 #include "SkBlurMaskFilter.h" 10 #include "SkBlurMaskFilter.h"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 p.setXfermodeMode(SkXfermode::kSrcOut_Mode); 81 p.setXfermodeMode(SkXfermode::kSrcOut_Mode);
82 rastBuilder->addLayer(p); 82 rastBuilder->addLayer(p);
83 } 83 }
84 84
85 static void r6(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) { 85 static void r6(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) {
86 rastBuilder->addLayer(p); 86 rastBuilder->addLayer(p);
87 87
88 p.setAntiAlias(false); 88 p.setAntiAlias(false);
89 SkLayerRasterizer::Builder rastBuilder2; 89 SkLayerRasterizer::Builder rastBuilder2;
90 r5(&rastBuilder2, p); 90 r5(&rastBuilder2, p);
91 p.setRasterizer(rastBuilder2.detachRasterizer())->unref(); 91 p.setRasterizer(rastBuilder2.detach());
92 p.setXfermodeMode(SkXfermode::kClear_Mode); 92 p.setXfermodeMode(SkXfermode::kClear_Mode);
93 rastBuilder->addLayer(p); 93 rastBuilder->addLayer(p);
94 } 94 }
95 95
96 #include "Sk2DPathEffect.h" 96 #include "Sk2DPathEffect.h"
97 97
98 static sk_sp<SkPathEffect> MakeDotEffect(SkScalar radius, const SkMatrix& matrix ) { 98 static sk_sp<SkPathEffect> MakeDotEffect(SkScalar radius, const SkMatrix& matrix ) {
99 SkPath path; 99 SkPath path;
100 path.addCircle(0, 0, radius); 100 path.addCircle(0, 0, radius);
101 return SkPath2DPathEffect::Make(matrix, path); 101 return SkPath2DPathEffect::Make(matrix, path);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 typedef void (*raster_proc)(SkLayerRasterizer::Builder*, SkPaint&); 146 typedef void (*raster_proc)(SkLayerRasterizer::Builder*, SkPaint&);
147 147
148 static const raster_proc gRastProcs[] = { 148 static const raster_proc gRastProcs[] = {
149 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9 149 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9
150 }; 150 };
151 151
152 #include "SkXfermode.h" 152 #include "SkXfermode.h"
153 153
154 static void apply_shader(SkPaint* paint, int index) { 154 static void apply_shader(SkPaint* paint, int index) {
155 raster_proc proc = gRastProcs[index]; 155 raster_proc proc = gRastProcs[index];
156 if (proc) 156 if (proc) {
157 {
158 SkPaint p; 157 SkPaint p;
159 SkLayerRasterizer::Builder rastBuilder; 158 SkLayerRasterizer::Builder rastBuilder;
160 159
161 p.setAntiAlias(true); 160 p.setAntiAlias(true);
162 proc(&rastBuilder, p); 161 proc(&rastBuilder, p);
163 paint->setRasterizer(rastBuilder.detachRasterizer())->unref(); 162 paint->setRasterizer(rastBuilder.detach());
164 } 163 }
165 164
166 #if 0 165 #if 0
167 SkScalar dir[] = { SK_Scalar1, SK_Scalar1, SK_Scalar1 }; 166 SkScalar dir[] = { SK_Scalar1, SK_Scalar1, SK_Scalar1 };
168 paint->setMaskFilter(SkBlurMaskFilter::CreateEmboss(dir, SK_Scalar1/4, SkInt ToScalar(4), SkIntToScalar(3)))->unref(); 167 paint->setMaskFilter(SkBlurMaskFilter::CreateEmboss(dir, SK_Scalar1/4, SkInt ToScalar(4), SkIntToScalar(3)))->unref();
169 #endif 168 #endif
170 paint->setColor(SK_ColorBLUE); 169 paint->setColor(SK_ColorBLUE);
171 } 170 }
172 171
173 DEF_SIMPLE_GM(texteffects, canvas, 460, 680) { 172 DEF_SIMPLE_GM(texteffects, canvas, 460, 680) {
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 380
382 SkScalar start = textPt.fX; 381 SkScalar start = textPt.fX;
383 SkScalar end = posX; 382 SkScalar end = posX;
384 SkScalar uPos = pos[0].fY + uWidth; 383 SkScalar uPos = pos[0].fY + uWidth;
385 SkPath underline = create_underline(intersections, start, end, uPos, uWi dth, textSize); 384 SkPath underline = create_underline(intersections, start, end, uPos, uWi dth, textSize);
386 paint.setStyle(SkPaint::kStroke_Style); 385 paint.setStyle(SkPaint::kStroke_Style);
387 canvas->drawPath(underline, paint); 386 canvas->drawPath(underline, paint);
388 canvas->translate(0, textSize * 1.3f); 387 canvas->translate(0, textSize * 1.3f);
389 } 388 }
390 } 389 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698