| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |