diff options
-rw-r--r-- | tests/ApplyGammaTest.cpp | 2 | ||||
-rw-r--r-- | tests/BlurTest.cpp | 46 | ||||
-rw-r--r-- | tests/DrawPathTest.cpp | 4 | ||||
-rw-r--r-- | tests/ImageFilterTest.cpp | 24 | ||||
-rw-r--r-- | tests/ImageNewShaderTest.cpp | 6 | ||||
-rw-r--r-- | tests/PremulAlphaRoundTripTest.cpp | 4 | ||||
-rw-r--r-- | tests/ReadPixelsTest.cpp | 2 | ||||
-rw-r--r-- | tests/ResourceCacheTest.cpp | 2 | ||||
-rw-r--r-- | tests/SkImageTest.cpp | 6 | ||||
-rw-r--r-- | tests/SurfaceSemaphoreTest.cpp | 2 | ||||
-rw-r--r-- | tests/WritePixelsTest.cpp | 21 | ||||
-rw-r--r-- | tests/skbug6653.cpp | 2 |
12 files changed, 40 insertions, 81 deletions
diff --git a/tests/ApplyGammaTest.cpp b/tests/ApplyGammaTest.cpp index 83b5968a9b..f2049e7ccc 100644 --- a/tests/ApplyGammaTest.cpp +++ b/tests/ApplyGammaTest.cpp @@ -129,7 +129,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ApplyGamma, reporter, ctxInfo) { dstCanvas->flush(); sk_memset32(read.get(), 0, kW * kH); - if (!dstCanvas->readPixels(ii, read.get(), kRowBytes, 0, 0)) { + if (!dst->readPixels(ii, read.get(), kRowBytes, 0, 0)) { ERRORF(reporter, "Error calling readPixels"); continue; } diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp index 5d957185bb..d287642c0a 100644 --- a/tests/BlurTest.cpp +++ b/tests/BlurTest.cpp @@ -236,12 +236,14 @@ static void blur_path(SkCanvas* canvas, const SkPath& path, } // Readback the blurred draw results from the canvas -static void readback(SkCanvas* canvas, int* result, int resultCount) { +static void readback(const SkBitmap& src, int* result, int resultCount) { SkBitmap readback; readback.allocN32Pixels(resultCount, 30); - canvas->readPixels(readback, 0, 0); + SkPixmap pm; + readback.peekPixels(&pm); + src.readPixels(pm, 0, 0); - SkPMColor* pixels = (SkPMColor*) readback.getAddr32(0, 15); + const SkPMColor* pixels = pm.addr32(0, 15); for (int i = 0; i < resultCount; ++i) { result[i] = SkColorGetR(pixels[i]); @@ -258,33 +260,9 @@ static void cpu_blur_path(const SkPath& path, SkScalar gaussianSigma, SkCanvas canvas(bitmap); blur_path(&canvas, path, gaussianSigma); - readback(&canvas, result, resultCount); + readback(bitmap, result, resultCount); } -#if SK_SUPPORT_GPU -#if 0 -// temporary disable; see below for explanation -static bool gpu_blur_path(GrContext* context, const SkPath& path, - SkScalar gaussianSigma, - int* result, int resultCount) { - GrSurfaceDesc desc; - desc.fConfig = kSkia8888_GrPixelConfig; - desc.fFlags = kRenderTarget_GrSurfaceFlag; - desc.fWidth = resultCount; - desc.fHeight = 30; - desc.fSampleCnt = 0; - - sk_sp<GrTexture> texture(grContext->createTexture(desc, false, nullptr, 0)); - sk_sp<SkGpuDevice> device(new SkGpuDevice(grContext, texture.get())); - SkCanvas canvas(device.get()); - - blur_path(&canvas, path, gaussianSigma); - readback(&canvas, result, resultCount); - return true; -} -#endif -#endif - #if WRITE_CSV static void write_as_csv(const char* label, SkScalar scale, int* data, int count) { SkDebugf("%s_%.2f,", label, scale); @@ -343,18 +321,6 @@ DEF_TEST(BlurSigmaRange, reporter) { REPORTER_ASSERT(reporter, match(rectSpecialCaseResult, bruteForce1DResult, kSize, 5)); REPORTER_ASSERT(reporter, match(generalCaseResult, bruteForce1DResult, kSize, 15)); -#if SK_SUPPORT_GPU -#if 0 - int gpuResult[kSize]; - bool haveGPUResult = gpu_blur_path(context, rectPath, sigma, gpuResult, kSize); - // Disabling this test for now -- I don't think it's a legit comparison. - // Will continue to investigate this. - if (haveGPUResult) { - // 1 works everywhere but: Ubuntu13 & Nexus4 - REPORTER_ASSERT(reporter, match(gpuResult, bruteForce1DResult, kSize, 10)); - } -#endif -#endif REPORTER_ASSERT(reporter, match(groundTruthResult, bruteForce1DResult, kSize, 1)); #if WRITE_CSV diff --git a/tests/DrawPathTest.cpp b/tests/DrawPathTest.cpp index 2434bdfccd..3893981c00 100644 --- a/tests/DrawPathTest.cpp +++ b/tests/DrawPathTest.cpp @@ -26,7 +26,7 @@ static void test_big_aa_rect(skiatest::Reporter* reporter) { int y = SkScalarRoundToInt(r.top()); // check that the pixel in question starts as transparent (by the surface) - if (canvas->readPixels(output, x, y)) { + if (surf->readPixels(output, x, y)) { REPORTER_ASSERT(reporter, 0 == pixel[0]); } else { REPORTER_ASSERT_MESSAGE(reporter, false, "readPixels failed"); @@ -39,7 +39,7 @@ static void test_big_aa_rect(skiatest::Reporter* reporter) { canvas->drawRect(r, paint); // Now check that it is BLACK - if (canvas->readPixels(output, x, y)) { + if (surf->readPixels(output, x, y)) { // don't know what swizzling PMColor did, but white should always // appear the same. REPORTER_ASSERT(reporter, 0xFFFFFFFF == pixel[0]); diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp index 69b31f184c..93389b3db2 100644 --- a/tests/ImageFilterTest.cpp +++ b/tests/ImageFilterTest.cpp @@ -1413,7 +1413,8 @@ DEF_TEST(ImageFilterMatrixConvolutionSanityTest, reporter) { REPORTER_ASSERT(reporter, nullptr == conv.get()); } -static void test_xfermode_cropped_input(SkCanvas* canvas, skiatest::Reporter* reporter) { +static void test_xfermode_cropped_input(SkSurface* surf, skiatest::Reporter* reporter) { + auto canvas = surf->getCanvas(); canvas->clear(0); SkBitmap bitmap; @@ -1442,17 +1443,17 @@ static void test_xfermode_cropped_input(SkCanvas* canvas, skiatest::Reporter* re uint32_t pixel; SkImageInfo info = SkImageInfo::Make(1, 1, kBGRA_8888_SkColorType, kUnpremul_SkAlphaType); - canvas->readPixels(info, &pixel, 4, 0, 0); + surf->readPixels(info, &pixel, 4, 0, 0); REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); paint.setImageFilter(std::move(xfermodeNoBg)); canvas->drawBitmap(bitmap, 0, 0, &paint); // drawSprite - canvas->readPixels(info, &pixel, 4, 0, 0); + surf->readPixels(info, &pixel, 4, 0, 0); REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); paint.setImageFilter(std::move(xfermodeNoFgNoBg)); canvas->drawBitmap(bitmap, 0, 0, &paint); // drawSprite - canvas->readPixels(info, &pixel, 4, 0, 0); + surf->readPixels(info, &pixel, 4, 0, 0); REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); } @@ -1491,26 +1492,23 @@ DEF_TEST(ImageFilterNestedSaveLayer, reporter) { SkImageInfo info = SkImageInfo::Make(1, 1, kBGRA_8888_SkColorType, kUnpremul_SkAlphaType); uint32_t pixel; - canvas.readPixels(info, &pixel, 4, 25, 25); + temp.readPixels(info, &pixel, 4, 25, 25); REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); // Test that drawSprite() with a filter nested inside a saveLayer() applies the // correct offset to the filter matrix. canvas.clear(0x0); - canvas.readPixels(info, &pixel, 4, 25, 25); + temp.readPixels(info, &pixel, 4, 25, 25); canvas.saveLayer(&bounds1, nullptr); canvas.drawBitmap(bitmap, 20, 20, &filterPaint); // drawSprite canvas.restore(); - canvas.readPixels(info, &pixel, 4, 25, 25); + temp.readPixels(info, &pixel, 4, 25, 25); REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); } DEF_TEST(XfermodeImageFilterCroppedInput, reporter) { - SkBitmap temp; - temp.allocN32Pixels(100, 100); - SkCanvas canvas(temp); - test_xfermode_cropped_input(&canvas, reporter); + test_xfermode_cropped_input(SkSurface::MakeRasterN32Premul(100, 100).get(), reporter); } static void test_composed_imagefilter_offset(skiatest::Reporter* reporter, GrContext* context) { @@ -1834,9 +1832,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(XfermodeImageFilterCroppedInput_Gpu, reporter SkBudgeted::kNo, SkImageInfo::Make(1, 1, kRGBA_8888_SkColorType, kPremul_SkAlphaType))); - SkCanvas* canvas = surf->getCanvas(); - - test_xfermode_cropped_input(canvas, reporter); + test_xfermode_cropped_input(surf.get(), reporter); } DEF_GPUTEST_FOR_ALL_CONTEXTS(ImageFilterBlurLargeImage_Gpu, reporter, ctxInfo) { diff --git a/tests/ImageNewShaderTest.cpp b/tests/ImageNewShaderTest.cpp index fe01f04c94..638fa078f0 100644 --- a/tests/ImageNewShaderTest.cpp +++ b/tests/ImageNewShaderTest.cpp @@ -56,12 +56,12 @@ static void run_shader_test(skiatest::Reporter* reporter, SkSurface* sourceSurfa SkBitmap bmOrig; bmOrig.allocN32Pixels(info.width(), info.height()); - sourceSurface->getCanvas()->readPixels(bmOrig, 0, 0); + sourceSurface->readPixels(bmOrig, 0, 0); SkBitmap bm; bm.allocN32Pixels(info.width(), info.height()); - destinationCanvas->readPixels(bm, 0, 0); + destinationSurface->readPixels(bm, 0, 0); test_bitmap_equality(reporter, bmOrig, bm); @@ -83,7 +83,7 @@ static void run_shader_test(skiatest::Reporter* reporter, SkSurface* sourceSurfa SkBitmap bmt; bmt.allocN32Pixels(info.width(), info.height()); - destinationCanvas->readPixels(bmt, 0, 0); + destinationSurface->readPixels(bmt, 0, 0); // Test correctness { diff --git a/tests/PremulAlphaRoundTripTest.cpp b/tests/PremulAlphaRoundTripTest.cpp index 7719ad88ab..2c3cb005b5 100644 --- a/tests/PremulAlphaRoundTripTest.cpp +++ b/tests/PremulAlphaRoundTripTest.cpp @@ -76,10 +76,10 @@ static void test_premul_alpha_roundtrip(skiatest::Reporter* reporter, SkSurface* readBmp1.eraseColor(0); readBmp2.eraseColor(0); - canvas->readPixels(readBmp1, 0, 0); + surf->readPixels(readBmp1, 0, 0); sk_tool_utils::write_pixels(canvas, readBmp1, 0, 0, gUnpremul[upmaIdx].fColorType, kUnpremul_SkAlphaType); - canvas->readPixels(readBmp2, 0, 0); + surf->readPixels(readBmp2, 0, 0); bool success = true; for (int y = 0; y < 256 && success; ++y) { diff --git a/tests/ReadPixelsTest.cpp b/tests/ReadPixelsTest.cpp index f426e5ffff..ce01004afa 100644 --- a/tests/ReadPixelsTest.cpp +++ b/tests/ReadPixelsTest.cpp @@ -359,7 +359,7 @@ static void test_readpixels(skiatest::Reporter* reporter, const sk_sp<SkSurface> fill_dst_bmp_with_init_data(&bmp); } uint32_t idBefore = surface->generationID(); - bool success = canvas->readPixels(bmp, srcRect.fLeft, srcRect.fTop); + bool success = surface->readPixels(bmp, srcRect.fLeft, srcRect.fTop); uint32_t idAfter = surface->generationID(); // we expect to succeed when the read isn't fully clipped diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index 3cfa157924..b018b8f33a 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -67,7 +67,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ResourceCacheCache, reporter, ctxInfo) { for (int i = 0; i < 100; ++i) { canvas->drawBitmap(src, 0, 0); - canvas->readPixels(readback, 0, 0); + surface->readPixels(readback, 0, 0); // "modify" the src texture src.notifyPixelsChanged(); diff --git a/tests/SkImageTest.cpp b/tests/SkImageTest.cpp index 4a05b44be1..426883ba2e 100644 --- a/tests/SkImageTest.cpp +++ b/tests/SkImageTest.cpp @@ -37,11 +37,11 @@ DEF_TEST(SkImageFromBitmap_extractSubset, reporter) { uint32_t pixel = 0; SkImageInfo info = SkImageInfo::Make(1, 1, kBGRA_8888_SkColorType, kUnpremul_SkAlphaType); - canvas.readPixels(info, &pixel, 4, 0, 0); + tgt.readPixels(info, &pixel, 4, 0, 0); REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); - canvas.readPixels(info, &pixel, 4, gWidth - 6, gWidth - 6); + tgt.readPixels(info, &pixel, 4, gWidth - 6, gWidth - 6); REPORTER_ASSERT(reporter, pixel == SK_ColorGREEN); - canvas.readPixels(info, &pixel, 4, gWidth - 5, gWidth - 5); + tgt.readPixels(info, &pixel, 4, gWidth - 5, gWidth - 5); REPORTER_ASSERT(reporter, pixel == SK_ColorTRANSPARENT); } diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp index b13c5d955a..cd3b8e587b 100644 --- a/tests/SurfaceSemaphoreTest.cpp +++ b/tests/SurfaceSemaphoreTest.cpp @@ -100,7 +100,7 @@ void draw_child(skiatest::Reporter* reporter, // read pixels SkBitmap bitmap; bitmap.allocPixels(childII); - childCanvas->readPixels(bitmap, 0, 0); + childSurface->readPixels(bitmap, 0, 0); check_pixels(reporter, bitmap); } diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp index e876c8ff05..6e8b7d6ee5 100644 --- a/tests/WritePixelsTest.cpp +++ b/tests/WritePixelsTest.cpp @@ -184,9 +184,8 @@ static bool check_pixel(SkPMColor a, SkPMColor b, bool didPremulConversion) { SkAbs32(aB - bB) <= 1; } -static bool check_write(skiatest::Reporter* reporter, SkCanvas* canvas, const SkBitmap& bitmap, +static bool check_write(skiatest::Reporter* reporter, SkSurface* surf, const SkBitmap& bitmap, int writeX, int writeY) { - const SkImageInfo canvasInfo = canvas->imageInfo(); size_t canvasRowBytes; const uint32_t* canvasPixels; @@ -194,8 +193,8 @@ static bool check_write(skiatest::Reporter* reporter, SkCanvas* canvas, const Sk // At some point this will be unsupported, as we won't allow accessBitmap() to magically call // readPixels for the client. SkBitmap secretDevBitmap; - secretDevBitmap.allocN32Pixels(canvasInfo.width(), canvasInfo.height()); - if (!canvas->readPixels(secretDevBitmap, 0, 0)) { + secretDevBitmap.allocN32Pixels(surf->width(), surf->height()); + if (!surf->readPixels(secretDevBitmap, 0, 0)) { return false; } @@ -206,9 +205,7 @@ static bool check_write(skiatest::Reporter* reporter, SkCanvas* canvas, const Sk return false; } - if (canvasInfo.width() != DEV_W || - canvasInfo.height() != DEV_H || - canvasInfo.colorType() != kN32_SkColorType) { + if (surf->width() != DEV_W || surf->height() != DEV_H) { return false; } @@ -352,7 +349,7 @@ static void test_write_pixels(skiatest::Reporter* reporter, SkSurface* surface) SkIRect::MakeLTRB(3 * DEV_W / 4, -10, DEV_W + 10, DEV_H + 10), }; - SkCanvas& canvas = *surface->getCanvas(); + SkCanvas* canvas = surface->getCanvas(); static const struct { SkColorType fColorType; @@ -370,21 +367,21 @@ 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_canvas(canvas); 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); + canvas->writePixels(bmp, rect.fLeft, rect.fTop); uint32_t idAfter = surface->generationID(); - REPORTER_ASSERT(reporter, check_write(reporter, &canvas, bmp, + REPORTER_ASSERT(reporter, check_write(reporter, surface, bmp, rect.fLeft, rect.fTop)); // we should change the genID iff pixels were actually written. - SkIRect canvasRect = SkIRect::MakeSize(canvas.getBaseLayerSize()); + SkIRect canvasRect = SkIRect::MakeSize(canvas->getBaseLayerSize()); SkIRect writeRect = SkIRect::MakeXYWH(rect.fLeft, rect.fTop, bmp.width(), bmp.height()); bool intersects = SkIRect::Intersects(canvasRect, writeRect) ; diff --git a/tests/skbug6653.cpp b/tests/skbug6653.cpp index d200e14f4c..dbd288eb1b 100644 --- a/tests/skbug6653.cpp +++ b/tests/skbug6653.cpp @@ -19,7 +19,7 @@ static SkBitmap read_pixels(sk_sp<SkSurface> surface) { SkBitmap bmp; bmp.allocN32Pixels(surface->width(), surface->height()); - if (!surface->getCanvas()->readPixels(bmp, 0, 0)) { + if (!surface->readPixels(bmp, 0, 0)) { SkDebugf("readPixels failed\n"); } return bmp; |