diff options
author | Mike Reed <reed@google.com> | 2018-02-08 14:10:40 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-08 19:34:50 +0000 |
commit | 4c790bd7dd8a6edacfc39b65b7043742331ab4da (patch) | |
tree | 1d66da0bfa6b7627315388b0d3f712897ea03bbd /tests/WritePixelsTest.cpp | |
parent | b9fc24e465767db8bd9dbddfd67c905392346e66 (diff) |
add writePixels to SkSurface --> so we can remove it from canvas
Bug: skia:
Change-Id: Ib35d7bdc113c3fd9f6dfacb42ec61aaa448cb165
Reviewed-on: https://skia-review.googlesource.com/105623
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'tests/WritePixelsTest.cpp')
-rw-r--r-- | tests/WritePixelsTest.cpp | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp index 2a2ee397ef..f2ad10c4f3 100644 --- a/tests/WritePixelsTest.cpp +++ b/tests/WritePixelsTest.cpp @@ -25,8 +25,6 @@ static const int DEV_W = 100, DEV_H = 100; static const SkIRect DEV_RECT = SkIRect::MakeWH(DEV_W, DEV_H); -static const SkRect DEV_RECT_S = SkRect::MakeWH(DEV_W * SK_Scalar1, - DEV_H * SK_Scalar1); static const U8CPU DEV_PAD = 0xee; static SkPMColor get_canvas_color(int x, int y) { @@ -113,23 +111,15 @@ static uint32_t get_bitmap_color(int x, int y, int w, SkColorType ct, SkAlphaTyp return pack_color_type(ct, a, r, g , b); } -static void fill_canvas(SkCanvas* canvas) { +static void fill_surface(SkSurface* surface) { SkBitmap bmp; - if (bmp.isNull()) { - bmp.allocN32Pixels(DEV_W, DEV_H); - for (int y = 0; y < DEV_H; ++y) { - for (int x = 0; x < DEV_W; ++x) { - *bmp.getAddr32(x, y) = get_canvas_color(x, y); - } + bmp.allocN32Pixels(DEV_W, DEV_H); + for (int y = 0; y < DEV_H; ++y) { + for (int x = 0; x < DEV_W; ++x) { + *bmp.getAddr32(x, y) = get_canvas_color(x, y); } } - canvas->save(); - canvas->setMatrix(SkMatrix::I()); - canvas->clipRect(DEV_RECT_S, kReplace_SkClipOp); - SkPaint paint; - paint.setBlendMode(SkBlendMode::kSrc); - canvas->drawBitmap(bmp, 0, 0, &paint); - canvas->restore(); + surface->writePixels(bmp, 0, 0); } /** @@ -288,17 +278,17 @@ static bool setup_bitmap(SkBitmap* bm, SkColorType ct, SkAlphaType at, int w, in return true; } -static void call_writepixels(SkCanvas* canvas) { +static void call_writepixels(SkSurface* surface) { const SkImageInfo info = SkImageInfo::MakeN32Premul(1, 1); SkPMColor pixel = 0; - canvas->writePixels(info, &pixel, sizeof(SkPMColor), 0, 0); + surface->writePixels({info, &pixel, sizeof(SkPMColor)}, 0, 0); } DEF_TEST(WritePixelsSurfaceGenID, reporter) { const SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100); auto surface(SkSurface::MakeRaster(info)); uint32_t genID1 = surface->generationID(); - call_writepixels(surface->getCanvas()); + call_writepixels(surface.get()); uint32_t genID2 = surface->generationID(); REPORTER_ASSERT(reporter, genID1 != genID2); } @@ -369,14 +359,14 @@ static void test_write_pixels(skiatest::Reporter* reporter, SkSurface* surface) const SkColorType ct = gSrcConfigs[c].fColorType; const SkAlphaType at = gSrcConfigs[c].fAlphaType; - fill_canvas(canvas); + fill_surface(surface); SkBitmap bmp; REPORTER_ASSERT(reporter, setup_bitmap(&bmp, ct, at, rect.width(), rect.height(), SkToBool(tightBmp))); uint32_t idBefore = surface->generationID(); // sk_tool_utils::write_pixels(&canvas, bmp, rect.fLeft, rect.fTop, ct, at); - canvas->writePixels(bmp, rect.fLeft, rect.fTop); + surface->writePixels(bmp, rect.fLeft, rect.fTop); uint32_t idAfter = surface->generationID(); REPORTER_ASSERT(reporter, check_write(reporter, surface, bmp, @@ -469,7 +459,7 @@ static sk_sp<SkImage> upload(const sk_sp<SkSurface>& surf, SkColor color) { bm.allocPixels(smII); bm.eraseColor(color); - surf->getCanvas()->writePixels(bm, 0, 0); + surf->writePixels(bm, 0, 0); return surf->makeImageSnapshot(); } |