Index: gm/imagesource2.cpp |
diff --git a/gm/bitmapsource2.cpp b/gm/imagesource2.cpp |
similarity index 64% |
rename from gm/bitmapsource2.cpp |
rename to gm/imagesource2.cpp |
index f65bafd2bc46169bfd4b4fdd1db6752a145f86f4..7f9c2b5d433f7ef8bf5a46f56f4e600af6c91e5a 100644 |
--- a/gm/bitmapsource2.cpp |
+++ b/gm/imagesource2.cpp |
@@ -6,28 +6,30 @@ |
*/ |
#include "gm.h" |
-#include "SkBitmapSource.h" |
+#include "SkImage.h" |
+#include "SkImageSource.h" |
+#include "SkSurface.h" |
namespace skiagm { |
-// This GM reproduces the issue in crbug.com/472795. The SkBitmapSource image |
+// This GM reproduces the issue in crbug.com/472795. The SkImageSource image |
// is shifted for high quality mode between cpu and gpu. |
-class BitmapSourceGM : public GM { |
+class ImageSourceGM : public GM { |
public: |
- BitmapSourceGM(const char* suffix, SkFilterQuality filter) : fSuffix(suffix), fFilter(filter) { |
+ ImageSourceGM(const char* suffix, SkFilterQuality filter) : fSuffix(suffix), fFilter(filter) { |
this->setBGColor(0xFFFFFFFF); |
} |
protected: |
SkString onShortName() override { |
- SkString name("bitmapsrc2_"); |
+ SkString name("imagesrc2_"); |
name.append(fSuffix); |
return name; |
} |
SkISize onISize() override { return SkISize::Make(256, 256); } |
- // Create a bitmap with high frequency vertical stripes |
+ // Create an image with high frequency vertical stripes |
void onOnceBeforeDraw() override { |
static const SkPMColor gColors[] = { |
SK_ColorRED, SK_ColorGRAY, |
@@ -39,9 +41,8 @@ protected: |
SK_ColorWHITE, SK_ColorGRAY, |
}; |
- fBM.allocN32Pixels(kImageSize, kImageSize, true); |
- |
- SkCanvas canvas(fBM); |
+ SkAutoTUnref<SkSurface> surface(SkSurface::NewRasterN32Premul(kImageSize, kImageSize)); |
+ SkCanvas* canvas = surface->getCanvas(); |
int curColor = 0; |
@@ -50,10 +51,12 @@ protected: |
SkIntToScalar(3), SkIntToScalar(kImageSize)); |
SkPaint p; |
p.setColor(gColors[curColor]); |
- canvas.drawRect(r, p); |
+ canvas->drawRect(r, p); |
curColor = (curColor+1) % SK_ARRAY_COUNT(gColors); |
} |
+ |
+ fImage.reset(surface->newImageSnapshot()); |
} |
void onDraw(SkCanvas* canvas) override { |
@@ -61,7 +64,8 @@ protected: |
SkIntToScalar(kImageSize), SkIntToScalar(kImageSize)); |
SkRect dstRect = SkRect::MakeLTRB(0.75f, 0.75f, 225.75f, 225.75f); |
- SkAutoTUnref<SkImageFilter> filter(SkBitmapSource::Create(fBM, srcRect, dstRect, fFilter)); |
+ SkAutoTUnref<SkImageFilter> filter( |
+ SkImageSource::Create(fImage, srcRect, dstRect, fFilter)); |
SkPaint p; |
p.setImageFilter(filter); |
@@ -75,15 +79,15 @@ private: |
SkString fSuffix; |
SkFilterQuality fFilter; |
- SkBitmap fBM; |
+ SkAutoTUnref<SkImage> fImage; |
typedef GM INHERITED; |
}; |
////////////////////////////////////////////////////////////////////////////// |
-DEF_GM(return new BitmapSourceGM("none", kNone_SkFilterQuality);) |
-DEF_GM(return new BitmapSourceGM("low", kLow_SkFilterQuality);) |
-DEF_GM(return new BitmapSourceGM("med", kMedium_SkFilterQuality);) |
-DEF_GM(return new BitmapSourceGM("high", kHigh_SkFilterQuality);) |
+DEF_GM(return new ImageSourceGM("none", kNone_SkFilterQuality);) |
+DEF_GM(return new ImageSourceGM("low", kLow_SkFilterQuality);) |
+DEF_GM(return new ImageSourceGM("med", kMedium_SkFilterQuality);) |
+DEF_GM(return new ImageSourceGM("high", kHigh_SkFilterQuality);) |
} |