Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1786)

Unified Diff: tests/ReadPixelsTest.cpp

Issue 2143003006: Remove unit test that tests subsetting texture backed bitmaps. (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: Delete more code Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/ReadPixelsTest.cpp
diff --git a/tests/ReadPixelsTest.cpp b/tests/ReadPixelsTest.cpp
index 1123d893dc2893e4ed6d03bd79c2bd68278ce032..6b6778d1ac39fdd8bb9075315d2afc575d224986 100644
--- a/tests/ReadPixelsTest.cpp
+++ b/tests/ReadPixelsTest.cpp
@@ -15,7 +15,6 @@
#if SK_SUPPORT_GPU
#include "GrContext.h"
#include "SkGr.h"
-#include "SkGrPriv.h"
#endif
#include <initializer_list>
@@ -460,171 +459,3 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadPixels_Texture, reporter, ctxInfo) {
}
}
#endif
-/////////////////////
-#if SK_SUPPORT_GPU
-
-// make_ringed_bitmap was lifted from gm/bleed.cpp, as that GM was what showed the following
-// bug when a change was made to SkImage_Raster.cpp. It is possible that other test bitmaps
-// would also tickle https://bug.skia.org/4351 but this one is know to do it, so I've pasted the code
-// here so we have a dependable repro case.
-
-// Create a black&white checked texture with 2 1-pixel rings
-// around the outside edge. The inner ring is red and the outer ring is blue.
-static void make_ringed_bitmap(SkBitmap* result, int width, int height) {
- SkASSERT(0 == width % 2 && 0 == height % 2);
-
- static const SkPMColor kRed = SkPreMultiplyColor(SK_ColorRED);
- static const SkPMColor kBlue = SkPreMultiplyColor(SK_ColorBLUE);
- static const SkPMColor kBlack = SkPreMultiplyColor(SK_ColorBLACK);
- static const SkPMColor kWhite = SkPreMultiplyColor(SK_ColorWHITE);
-
- result->allocN32Pixels(width, height, true);
-
- SkPMColor* scanline = result->getAddr32(0, 0);
- for (int x = 0; x < width; ++x) {
- scanline[x] = kBlue;
- }
- scanline = result->getAddr32(0, 1);
- scanline[0] = kBlue;
- for (int x = 1; x < width - 1; ++x) {
- scanline[x] = kRed;
- }
- scanline[width-1] = kBlue;
-
- for (int y = 2; y < height/2; ++y) {
- scanline = result->getAddr32(0, y);
- scanline[0] = kBlue;
- scanline[1] = kRed;
- for (int x = 2; x < width/2; ++x) {
- scanline[x] = kBlack;
- }
- for (int x = width/2; x < width-2; ++x) {
- scanline[x] = kWhite;
- }
- scanline[width-2] = kRed;
- scanline[width-1] = kBlue;
- }
-
- for (int y = height/2; y < height-2; ++y) {
- scanline = result->getAddr32(0, y);
- scanline[0] = kBlue;
- scanline[1] = kRed;
- for (int x = 2; x < width/2; ++x) {
- scanline[x] = kWhite;
- }
- for (int x = width/2; x < width-2; ++x) {
- scanline[x] = kBlack;
- }
- scanline[width-2] = kRed;
- scanline[width-1] = kBlue;
- }
-
- scanline = result->getAddr32(0, height-2);
- scanline[0] = kBlue;
- for (int x = 1; x < width - 1; ++x) {
- scanline[x] = kRed;
- }
- scanline[width-1] = kBlue;
-
- scanline = result->getAddr32(0, height-1);
- for (int x = 0; x < width; ++x) {
- scanline[x] = kBlue;
- }
- result->setImmutable();
-}
-
-static void compare_textures(skiatest::Reporter* reporter, GrTexture* txa, GrTexture* txb) {
- REPORTER_ASSERT(reporter, txa->width() == 2);
- REPORTER_ASSERT(reporter, txa->height() == 2);
- REPORTER_ASSERT(reporter, txb->width() == 2);
- REPORTER_ASSERT(reporter, txb->height() == 2);
- REPORTER_ASSERT(reporter, txa->config() == txb->config());
-
- SkPMColor pixelsA[4], pixelsB[4];
- REPORTER_ASSERT(reporter, txa->readPixels(0, 0, 2, 2, txa->config(), pixelsA));
- REPORTER_ASSERT(reporter, txb->readPixels(0, 0, 2, 2, txa->config(), pixelsB));
- REPORTER_ASSERT(reporter, 0 == memcmp(pixelsA, pixelsB, sizeof(pixelsA)));
-}
-
-static SkData* draw_into_surface(SkSurface* surf, const SkBitmap& bm, SkFilterQuality quality) {
- SkCanvas* canvas = surf->getCanvas();
- canvas->clear(SK_ColorBLUE);
-
- SkPaint paint;
- paint.setFilterQuality(quality);
-
- canvas->translate(40, 100);
- canvas->rotate(30);
- canvas->scale(20, 30);
- canvas->translate(-SkScalarHalf(bm.width()), -SkScalarHalf(bm.height()));
- canvas->drawBitmap(bm, 0, 0, &paint);
-
- return surf->makeImageSnapshot()->encode();
-}
-
-#include "SkStream.h"
-static void dump_to_file(const char name[], SkData* data) {
- SkFILEWStream file(name);
- file.write(data->data(), data->size());
-}
-
-/*
- * Test two different ways to turn a subset of a bitmap into a texture
- * - subset and then upload to a texture
- * - upload to a texture and then subset
- *
- * These two techniques result in the same pixels (ala readPixels)
- * but when we draw them (rotated+scaled) we don't always get the same results.
- *
- * https://bug.skia.org/4351
- */
-DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ReadPixels_Subset_Gpu, reporter, ctxInfo) {
- SkBitmap bitmap;
- make_ringed_bitmap(&bitmap, 6, 6);
- const SkIRect subset = SkIRect::MakeLTRB(2, 2, 4, 4);
-
- // make two textures...
- SkBitmap bm_subset, tx_subset;
-
- // ... one from a texture-subset
- SkAutoTUnref<GrTexture> fullTx(GrRefCachedBitmapTexture(ctxInfo.grContext(), bitmap,
- GrTextureParams::ClampNoFilter(),
- SkSourceGammaTreatment::kRespect));
- SkBitmap tx_full;
- GrWrapTextureInBitmap(fullTx, bitmap.width(), bitmap.height(), true, &tx_full);
- tx_full.extractSubset(&tx_subset, subset);
-
- // ... one from a bitmap-subset
- SkBitmap tmp_subset;
- bitmap.extractSubset(&tmp_subset, subset);
- SkAutoTUnref<GrTexture> subsetTx(GrRefCachedBitmapTexture(ctxInfo.grContext(), tmp_subset,
- GrTextureParams::ClampNoFilter(),
- SkSourceGammaTreatment::kRespect));
- GrWrapTextureInBitmap(subsetTx, tmp_subset.width(), tmp_subset.height(), true, &bm_subset);
-
- // did we get the same subset?
- compare_textures(reporter, bm_subset.getTexture(), tx_subset.getTexture());
-
- // do they draw the same?
- const SkImageInfo info = SkImageInfo::MakeN32Premul(128, 128);
- auto surfA(SkSurface::MakeRenderTarget(ctxInfo.grContext(), SkBudgeted::kNo, info));
- auto surfB(SkSurface::MakeRenderTarget(ctxInfo.grContext(), SkBudgeted::kNo, info));
-
- if (false) {
- //
- // BUG: depending on the driver, if we calls this with various quality settings, it
- // may fail.
- //
- SkFilterQuality quality = kLow_SkFilterQuality;
-
- SkAutoTUnref<SkData> dataA(draw_into_surface(surfA.get(), bm_subset, quality));
- SkAutoTUnref<SkData> dataB(draw_into_surface(surfB.get(), tx_subset, quality));
-
- REPORTER_ASSERT(reporter, dataA->equals(dataB));
- if (false) {
- dump_to_file("test_image_A.png", dataA);
- dump_to_file("test_image_B.png", dataB);
- }
- }
-}
-#endif
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698