Rm readPixels from GrSurface & move read/writeSurfacePixels to GrContextPriv (take 3)
This is in service of: https://skia-review.googlesource.com/c/11125/ (Add parallel proxyID to StencilOps & RenderTargetOpList) where I want a better choke point for texture creation to improve discard handling.
This is a re-reland of: https://skia-review.googlesource.com/c/11200/ (Rm readPixels from GrSurface & move read/writeSurfacePixels to GrContextPriv)
Change-Id: Icfb9dd223418dd460405efd2bfd9d1c356beed1a
Reviewed-on: https://skia-review.googlesource.com/11412
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp
index b8691f2..3eb4e16 100644
--- a/tests/ProcessorTest.cpp
+++ b/tests/ProcessorTest.cpp
@@ -146,12 +146,12 @@
desc,
SkBackingFit::kExact,
SkBudgeted::kYes));
- sk_sp<GrTexture> texture2(
- context->resourceProvider()->createTexture(desc, SkBudgeted::kYes));
- sk_sp<GrTexture> texture3(
- context->resourceProvider()->createTexture(desc, SkBudgeted::kYes));
- sk_sp<GrTexture> texture4(
- context->resourceProvider()->createTexture(desc, SkBudgeted::kYes));
+ sk_sp<GrTexture> texture2 =
+ context->resourceProvider()->createTexture(desc, SkBudgeted::kYes);
+ sk_sp<GrTexture> texture3 =
+ context->resourceProvider()->createTexture(desc, SkBudgeted::kYes);
+ sk_sp<GrTexture> texture4 =
+ context->resourceProvider()->createTexture(desc, SkBudgeted::kYes);
sk_sp<GrBuffer> buffer(texelBufferSupport
? context->resourceProvider()->createBuffer(
1024, GrBufferType::kTexel_GrBufferType,
@@ -298,6 +298,8 @@
desc.fFlags = kRenderTarget_GrSurfaceFlag;
desc.fConfig = kRGBA_8888_GrPixelConfig;
+ sk_sp<GrTextureProxy> proxies[2];
+
// Put premul data into the RGBA texture that the test FPs can optionally use.
std::unique_ptr<GrColor[]> rgbaData(new GrColor[256 * 256]);
for (int y = 0; y < 256; ++y) {
@@ -306,8 +308,8 @@
texel_color(random.nextULessThan(256), random.nextULessThan(256));
}
}
- sk_sp<GrTexture> tex0(context->resourceProvider()->createTexture(
- desc, SkBudgeted::kYes, rgbaData.get(), 256 * sizeof(GrColor)));
+ proxies[0] = GrSurfaceProxy::MakeDeferred(context->resourceProvider(), desc, SkBudgeted::kYes,
+ rgbaData.get(), 256 * sizeof(GrColor));
// Put random values into the alpha texture that the test FPs can optionally use.
desc.fConfig = kAlpha_8_GrPixelConfig;
@@ -317,10 +319,9 @@
alphaData.get()[256 * y + x] = random.nextULessThan(256);
}
}
- sk_sp<GrTexture> tex1(context->resourceProvider()->createTexture(desc, SkBudgeted::kYes,
- alphaData.get(), 256));
- GrTexture* textures[] = {tex0.get(), tex1.get()};
- GrProcessorTestData testData(&random, context, rtc.get(), textures);
+ proxies[1] = GrSurfaceProxy::MakeDeferred(context->resourceProvider(), desc, SkBudgeted::kYes,
+ alphaData.get(), 256);
+ GrProcessorTestData testData(&random, context, rtc.get(), proxies);
// Use a different array of premul colors for the output of the fragment processor that preceeds
// the fragment processor under test.