| Index: tests/ReadWriteAlphaTest.cpp
|
| diff --git a/tests/ReadWriteAlphaTest.cpp b/tests/ReadWriteAlphaTest.cpp
|
| index 16f43ea31070ab642ab238ad818da81e9efa5d38..e5240666aaeb747a0c20374471b98d31f270c10a 100644
|
| --- a/tests/ReadWriteAlphaTest.cpp
|
| +++ b/tests/ReadWriteAlphaTest.cpp
|
| @@ -41,12 +41,10 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadWriteAlpha, reporter, ctxInfo) {
|
|
|
| bool match;
|
| static const size_t kRowBytes[] = {0, X_SIZE, X_SIZE + 1, 2 * X_SIZE - 1};
|
| - for (int rt = 0; rt < 2; ++rt) {
|
| + {
|
| GrSurfaceDesc desc;
|
| - // let Skia know we will be using this texture as a render target
|
| - desc.fFlags = rt ? kRenderTarget_GrSurfaceFlag : kNone_GrSurfaceFlags;
|
| - // it is a single channel texture
|
| - desc.fConfig = kAlpha_8_GrPixelConfig;
|
| + desc.fFlags = kNone_GrSurfaceFlags;
|
| + desc.fConfig = kAlpha_8_GrPixelConfig; // it is a single channel texture
|
| desc.fWidth = X_SIZE;
|
| desc.fHeight = Y_SIZE;
|
|
|
| @@ -54,14 +52,16 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadWriteAlpha, reporter, ctxInfo) {
|
| memset(alphaData, 0, X_SIZE * Y_SIZE);
|
| SkAutoTUnref<GrTexture> texture(
|
| ctxInfo.grContext()->textureProvider()->createTexture(desc, SkBudgeted::kNo, alphaData,
|
| - 0));
|
| + 0));
|
| if (!texture) {
|
| - if (!rt) {
|
| - ERRORF(reporter, "Could not create alpha texture.");
|
| - }
|
| - continue;
|
| + ERRORF(reporter, "Could not create alpha texture.");
|
| + return;
|
| }
|
|
|
| + const SkImageInfo ii = SkImageInfo::MakeA8(X_SIZE, Y_SIZE);
|
| + sk_sp<SkSurface> surf(SkSurface::MakeRenderTarget(ctxInfo.grContext(),
|
| + SkBudgeted::kNo, ii));
|
| +
|
| // create a distinctive texture
|
| for (int y = 0; y < Y_SIZE; ++y) {
|
| for (int x = 0; x < X_SIZE; ++x) {
|
| @@ -87,14 +87,12 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadWriteAlpha, reporter, ctxInfo) {
|
|
|
| // make sure the original & read back versions match
|
| SkString msg;
|
| - msg.printf("rt:%d, rb:%d A8", rt, SkToU32(rowBytes));
|
| + msg.printf("rb:%d A8", SkToU32(rowBytes));
|
| validate_alpha_data(reporter, X_SIZE, Y_SIZE, readback.get(), nonZeroRowBytes,
|
| alphaData, msg);
|
|
|
| - // Now try writing on the single channel texture (if we could create as a RT).
|
| - if (texture->asRenderTarget()) {
|
| - sk_sp<SkSurface> surf(SkSurface::MakeRenderTargetDirect(texture->asRenderTarget(),
|
| - nullptr));
|
| + // Now try writing to a single channel surface (if we could create one).
|
| + if (surf) {
|
| SkCanvas* canvas = surf->getCanvas();
|
|
|
| SkPaint paint;
|
| @@ -106,8 +104,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadWriteAlpha, reporter, ctxInfo) {
|
| canvas->drawRect(rect, paint);
|
|
|
| memset(readback.get(), kClearValue, nonZeroRowBytes * Y_SIZE);
|
| - result = texture->readPixels(0, 0, desc.fWidth, desc.fHeight,
|
| - desc.fConfig, readback.get(), rowBytes);
|
| + result = surf->readPixels(ii, readback.get(), nonZeroRowBytes, 0, 0);
|
| REPORTER_ASSERT_MESSAGE(reporter, result, "A8 readPixels after clear failed");
|
|
|
| match = true;
|
|
|