DEF_TEST(SpecialImage_Raster, reporter) { SkBitmap bm = create_bm(); sk_sp<SkSpecialImage> fullSImage(SkSpecialImage::MakeFromRaster( SkIRect::MakeWH(kFullSize, kFullSize), bm)); const SkIRect& subset = SkIRect::MakeXYWH(kPad, kPad, kSmallerSize, kSmallerSize); { sk_sp<SkSpecialImage> subSImg1(SkSpecialImage::MakeFromRaster(subset, bm)); test_image(subSImg1, reporter, nullptr, false, kPad, kFullSize); } { sk_sp<SkSpecialImage> subSImg2(fullSImage->makeSubset(subset)); test_image(subSImg2, reporter, nullptr, false, 0, kSmallerSize); } }
static void test_specialimage_image(skiatest::Reporter* reporter, SkColorSpace* dstColorSpace) { SkBitmap bm = create_bm(); sk_sp<SkImage> fullImage(SkImage::MakeFromBitmap(bm)); sk_sp<SkSpecialImage> fullSImage(SkSpecialImage::MakeFromImage( SkIRect::MakeWH(kFullSize, kFullSize), fullImage, dstColorSpace)); const SkIRect& subset = SkIRect::MakeXYWH(kPad, kPad, kSmallerSize, kSmallerSize); { sk_sp<SkSpecialImage> subSImg1(SkSpecialImage::MakeFromImage(subset, fullImage, dstColorSpace)); test_image(subSImg1, reporter, nullptr, false, kPad, kFullSize); } { sk_sp<SkSpecialImage> subSImg2(fullSImage->makeSubset(subset)); test_image(subSImg2, reporter, nullptr, false, 0, kSmallerSize); } }