Chromium Code Reviews| Index: gm/imagefilterscropexpand.cpp |
| diff --git a/gm/imagefilterscropexpand.cpp b/gm/imagefilterscropexpand.cpp |
| index cfbf13a759fb53d0fc506ed1d121a1d1ed83f1c8..8014e3ae25525805bd40253f7e57461023a32660 100644 |
| --- a/gm/imagefilterscropexpand.cpp |
| +++ b/gm/imagefilterscropexpand.cpp |
| @@ -11,16 +11,17 @@ |
| #include "SkColorPriv.h" |
| #include "SkShader.h" |
| -#include "SkBitmapSource.h" |
| #include "SkBlurImageFilter.h" |
| #include "SkColorMatrixFilter.h" |
| #include "SkDisplacementMapEffect.h" |
| #include "SkDropShadowImageFilter.h" |
| #include "SkGradientShader.h" |
| +#include "SkImageSource.h" |
| #include "SkMorphologyImageFilter.h" |
| #include "SkColorFilterImageFilter.h" |
| #include "SkMergeImageFilter.h" |
| #include "SkOffsetImageFilter.h" |
| +#include "SkSurface.h" |
| /////////////////////////////////////////////////////////////////////////////// |
| @@ -57,13 +58,13 @@ protected: |
| } |
| } |
|
robertphillips
2015/09/15 17:43:52
static SkImage* MakeGradientCircle(int width, int
f(malita)
2015/09/15 18:12:53
Done.
|
| - void make_gradient_circle(int width, int height, SkBitmap* bitmap) { |
| + SkImage* make_gradient_circle(int width, int height) { |
| SkScalar x = SkIntToScalar(width / 2); |
| SkScalar y = SkIntToScalar(height / 2); |
| SkScalar radius = SkMinScalar(x, y) * 0.8f; |
| - bitmap->allocN32Pixels(width, height); |
| - SkCanvas canvas(*bitmap); |
| - canvas.clear(0x00000000); |
| + SkAutoTUnref<SkSurface> surface(SkSurface::NewRasterN32Premul(width, height)); |
| + SkCanvas* canvas = surface->getCanvas(); |
| + canvas->clear(0x00000000); |
| SkColor colors[2]; |
| colors[0] = SK_ColorWHITE; |
| colors[1] = SK_ColorBLACK; |
| @@ -73,7 +74,9 @@ protected: |
| ); |
| SkPaint paint; |
| paint.setShader(shader); |
| - canvas.drawCircle(x, y, radius, paint); |
| + canvas->drawCircle(x, y, radius, paint); |
| + |
| + return surface->newImageSnapshot(); |
| } |
| static void draw(SkCanvas* canvas, const SkBitmap& bitmap, const SkRect& rect, SkImageFilter* filter) { |
| @@ -98,12 +101,12 @@ protected: |
| SkRect::Make(SkIRect::MakeXYWH(10, 10, 44, 44)), |
| SkImageFilter::CropRect::kHasAll_CropEdge); |
|
robertphillips
2015/09/15 17:43:52
gradientCircle ?
f(malita)
2015/09/15 18:12:53
Done.
|
| - SkBitmap gradient_circle, checkerboard; |
| - make_gradient_circle(64, 64, &gradient_circle); |
| + SkAutoTUnref<SkImage> gradient_circle(make_gradient_circle(64, 64)); |
| + SkBitmap checkerboard; |
| make_checkerboard(&checkerboard); |
| SkAutoTUnref<SkImageFilter> gradient_circle_source( |
| - SkBitmapSource::Create(gradient_circle)); |
| + SkImageSource::Create(gradient_circle)); |
| SkAutoTUnref<SkImageFilter> noop_cropped( |
| SkOffsetImageFilter::Create(0, 0, nullptr, &crop_rect)); |
| SkScalar sk255 = SkIntToScalar(255); |