From 747636f6b9e64fbf845d93cfbaf1275b643691f6 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 14 Apr 2017 17:56:08 +0000 Subject: Revert "Reduce read/write-SurfacePixels call sites" This reverts commit 74d5a1470378dc7dae9eec38d46f9f802fc5c249. Reason for revert: erg Original change's description: > Reduce read/write-SurfacePixels call sites > > Change-Id: I657c489c56b93765567be69076fb4c3d526e55a5 > Reviewed-on: https://skia-review.googlesource.com/13068 > Reviewed-by: Brian Osman > Commit-Queue: Robert Phillips > TBR=robertphillips@google.com,brianosman@google.com,egdaniel@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: If80f36ddae9d695ee2e5413f3eb49a1f5c32f8a4 Reviewed-on: https://skia-review.googlesource.com/13506 Reviewed-by: Robert Phillips Commit-Queue: Robert Phillips --- tests/ReadPixelsTest.cpp | 50 +++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 22 deletions(-) (limited to 'tests/ReadPixelsTest.cpp') diff --git a/tests/ReadPixelsTest.cpp b/tests/ReadPixelsTest.cpp index 10462c9140..c67e62b090 100644 --- a/tests/ReadPixelsTest.cpp +++ b/tests/ReadPixelsTest.cpp @@ -123,6 +123,21 @@ static void fill_src_canvas(SkCanvas* canvas) { canvas->restore(); } +#if SK_SUPPORT_GPU +static void fill_src_texture(GrContext* context, GrTextureProxy* proxy) { + SkBitmap bmp = make_src_bitmap(); + bmp.lockPixels(); + + SkDEBUGCODE(bool result =) context->contextPriv().writeSurfacePixels( + proxy, nullptr, + 0, 0, DEV_W, DEV_H, + kSkia8888_GrPixelConfig, nullptr, + bmp.getPixels(), bmp.rowBytes()); + SkASSERT(result); + bmp.unlockPixels(); +} +#endif + static void fill_dst_bmp_with_init_data(SkBitmap* bitmap) { SkAutoLockPixels alp(*bitmap); int w = bitmap->width(); @@ -428,7 +443,8 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadPixels_Gpu, reporter, ctxInfo) { #if SK_SUPPORT_GPU static void test_readpixels_texture(skiatest::Reporter* reporter, - sk_sp sContext) { + GrContext* context, sk_sp proxy) { + fill_src_texture(context, proxy.get()); for (size_t rect = 0; rect < SK_ARRAY_COUNT(gReadPixelsTestRects); ++rect) { const SkIRect& srcRect = gReadPixelsTestRects[rect]; for (BitmapInit bmi = kFirstBitmapInit; bmi <= kLast_BitmapInit; bmi = nextBMI(bmi)) { @@ -443,14 +459,18 @@ static void test_readpixels_texture(skiatest::Reporter* reporter, // Try doing the read directly from a non-renderable texture if (startsWithPixels) { fill_dst_bmp_with_init_data(&bmp); + GrPixelConfig dstConfig = SkImageInfo2GrPixelConfig(bmp.info(), + *context->caps()); uint32_t flags = 0; if (gReadPixelsConfigs[c].fAlphaType == kUnpremul_SkAlphaType) { flags = GrContextPriv::kUnpremul_PixelOpsFlag; } bmp.lockPixels(); - bool success = sContext->readPixels(bmp.info(), bmp.getPixels(), - bmp.rowBytes(), - srcRect.fLeft, srcRect.fTop, flags); + bool success = context->contextPriv().readSurfacePixels( + proxy.get(), nullptr, + srcRect.fLeft, srcRect.fTop, bmp.width(), + bmp.height(), dstConfig, nullptr, + bmp.getPixels(), bmp.rowBytes(), flags); bmp.unlockPixels(); check_read(reporter, bmp, srcRect.fLeft, srcRect.fTop, success, true, @@ -460,13 +480,7 @@ static void test_readpixels_texture(skiatest::Reporter* reporter, } } } - DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadPixels_Texture, reporter, ctxInfo) { - GrContext* context = ctxInfo.grContext(); - - SkBitmap bmp = make_src_bitmap(); - bmp.lockPixels(); - // On the GPU we will also try reading back from a non-renderable texture. for (auto origin : {kBottomLeft_GrSurfaceOrigin, kTopLeft_GrSurfaceOrigin}) { for (auto flags : {kNone_GrSurfaceFlags, kRenderTarget_GrSurfaceFlag}) { @@ -476,20 +490,12 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadPixels_Texture, reporter, ctxInfo) { desc.fHeight = DEV_H; desc.fConfig = kSkia8888_GrPixelConfig; desc.fOrigin = origin; - - sk_sp proxy = GrSurfaceProxy::MakeDeferred(context->resourceProvider(), - desc, SkBudgeted::kNo, - bmp.getPixels(), - bmp.rowBytes()); - - sk_sp sContext = context->contextPriv().makeWrappedSurfaceContext( - std::move(proxy), nullptr); - - test_readpixels_texture(reporter, std::move(sContext)); + sk_sp texture = + ctxInfo.grContext()->resourceProvider()->createTexture(desc, SkBudgeted::kNo); + test_readpixels_texture(reporter, ctxInfo.grContext(), + GrSurfaceProxy::MakeWrapped(std::move(texture))); } } - - bmp.unlockPixels(); } #endif -- cgit v1.2.3