Index: gm/offsetimagefilter.cpp |
diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp |
index fcf2b9843fedc34955be342fd23b89b9f7427b66..6b3794962953166999e0f618618b3b3956e1297f 100644 |
--- a/gm/offsetimagefilter.cpp |
+++ b/gm/offsetimagefilter.cpp |
@@ -6,8 +6,10 @@ |
*/ |
#include "sk_tool_utils.h" |
-#include "SkBitmapSource.h" |
+#include "SkImage.h" |
+#include "SkImageSource.h" |
#include "SkOffsetImageFilter.h" |
+#include "SkSurface.h" |
#include "gm.h" |
#define WIDTH 600 |
@@ -29,14 +31,14 @@ protected: |
return SkISize::Make(WIDTH, HEIGHT); |
} |
robertphillips
2015/09/15 17:43:52
can this be static ?
f(malita)
2015/09/15 18:12:53
Done.
|
- void drawClippedBitmap(SkCanvas* canvas, const SkBitmap& bitmap, const SkPaint& paint, |
- SkScalar scale, const SkIRect& cropRect) { |
- SkRect clipRect = SkRect::MakeIWH(bitmap.width(), bitmap.height()); |
+ void drawClippedImage(SkCanvas* canvas, const SkImage* image, const SkPaint& paint, |
+ SkScalar scale, const SkIRect& cropRect) { |
+ SkRect clipRect = SkRect::MakeIWH(image->width(), image->height()); |
canvas->save(); |
canvas->clipRect(clipRect); |
canvas->scale(scale, scale); |
- canvas->drawBitmap(bitmap, 0, 0, &paint); |
+ canvas->drawImage(image, 0, 0, &paint); |
canvas->restore(); |
// Draw a boundary rect around the intersection of the clip rect and crop rect. |
@@ -52,13 +54,14 @@ protected: |
} |
void onOnceBeforeDraw() override { |
- fBitmap = sk_tool_utils::create_string_bitmap(80, 80, 0xD000D000, 15, 65, 96, "e"); |
+ fBitmap.reset(SkImage::NewFromBitmap( |
+ sk_tool_utils::create_string_bitmap(80, 80, 0xD000D000, 15, 65, 96, "e"))); |
- fCheckerboard = sk_tool_utils::create_checkerboard_bitmap( |
- 80, 80, |
- sk_tool_utils::color_to_565(0xFFA0A0A0), |
- sk_tool_utils::color_to_565(0xFF404040), |
- 8); |
+ fCheckerboard.reset(SkImage::NewFromBitmap( |
+ sk_tool_utils::create_checkerboard_bitmap(80, 80, |
+ sk_tool_utils::color_to_565(0xFFA0A0A0), |
+ sk_tool_utils::color_to_565(0xFF404040), |
+ 8))); |
} |
void onDraw(SkCanvas* canvas) override { |
@@ -66,30 +69,30 @@ protected: |
SkPaint paint; |
for (int i = 0; i < 4; i++) { |
- const SkBitmap* bitmap = (i & 0x01) ? &fCheckerboard : &fBitmap; |
+ const SkImage* image = (i & 0x01) ? fCheckerboard : fBitmap; |
SkIRect cropRect = SkIRect::MakeXYWH(i * 12, |
i * 8, |
- bitmap->width() - i * 8, |
- bitmap->height() - i * 12); |
+ image->width() - i * 8, |
+ image->height() - i * 12); |
SkImageFilter::CropRect rect(SkRect::Make(cropRect)); |
- SkAutoTUnref<SkImageFilter> tileInput(SkBitmapSource::Create(*bitmap)); |
+ SkAutoTUnref<SkImageFilter> tileInput(SkImageSource::Create(image)); |
SkScalar dx = SkIntToScalar(i*5); |
SkScalar dy = SkIntToScalar(i*10); |
SkAutoTUnref<SkImageFilter> filter(SkOffsetImageFilter::Create(dx, dy, tileInput, |
&rect)); |
paint.setImageFilter(filter); |
- drawClippedBitmap(canvas, *bitmap, paint, 1, cropRect); |
- canvas->translate(SkIntToScalar(bitmap->width() + MARGIN), 0); |
+ drawClippedImage(canvas, image, paint, 1, cropRect); |
+ canvas->translate(SkIntToScalar(image->width() + MARGIN), 0); |
} |
SkIRect cropRect = SkIRect::MakeXYWH(0, 0, 100, 100); |
SkImageFilter::CropRect rect(SkRect::Make(cropRect)); |
SkAutoTUnref<SkImageFilter> filter(SkOffsetImageFilter::Create(-5, -10, nullptr, &rect)); |
paint.setImageFilter(filter); |
- drawClippedBitmap(canvas, fBitmap, paint, 2, cropRect); |
+ drawClippedImage(canvas, fBitmap, paint, 2, cropRect); |
} |
private: |
- SkBitmap fBitmap, fCheckerboard; |
+ SkAutoTUnref<SkImage> fBitmap, fCheckerboard; |
typedef skiagm::GM INHERITED; |
}; |