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

Unified Diff: dm/DM.cpp

Issue 1175993005: DM testing for skipping and scaling (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Added error checking Created 5 years, 6 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 | dm/DMSrcSink.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dm/DM.cpp
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 0174b7314d3ab91bfa4a2ced1d12f138cb6a124c..684ae8051e848f54fc9546aa00cdc7ed3ca0a237 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -205,38 +205,54 @@ static void push_codec_srcs(Path path) {
return;
}
- // Build additional test cases for images that decode natively to non-canvas types
- switch(codec->getInfo().colorType()) {
- case kGray_8_SkColorType:
- push_src("image", "codec_kGray8", new CodecSrc(path, CodecSrc::kNormal_Mode,
- CodecSrc::kGrayscale_Always_DstColorType));
- push_src("image", "scanline_kGray8", new CodecSrc(path, CodecSrc::kScanline_Mode,
- CodecSrc::kGrayscale_Always_DstColorType));
- push_src("image", "scanline_subset_kGray8", new CodecSrc(path,
- CodecSrc::kScanline_Subset_Mode, CodecSrc::kGrayscale_Always_DstColorType));
- // Intentional fall through
- // FIXME: Is this a long term solution for testing wbmps decodes to kIndex8?
- // Further discussion on this topic is at skbug.com/3683
- case kIndex_8_SkColorType:
- push_src("image", "codec_kIndex8", new CodecSrc(path, CodecSrc::kNormal_Mode,
- CodecSrc::kIndex8_Always_DstColorType));
- push_src("image", "scanline_kIndex8", new CodecSrc(path, CodecSrc::kScanline_Mode,
- CodecSrc::kIndex8_Always_DstColorType));
- push_src("image", "scanline_subset_kIndex8", new CodecSrc(path,
- CodecSrc::kScanline_Subset_Mode, CodecSrc::kIndex8_Always_DstColorType));
- break;
- default:
- // Do nothing
- break;
- }
-
- // Decode all images to the canvas color type
- push_src("image", "codec", new CodecSrc(path, CodecSrc::kNormal_Mode,
- CodecSrc::kGetFromCanvas_DstColorType));
- push_src("image", "scanline", new CodecSrc(path, CodecSrc::kScanline_Mode,
- CodecSrc::kGetFromCanvas_DstColorType));
- push_src("image", "scanline_subset", new CodecSrc(path, CodecSrc::kScanline_Subset_Mode,
- CodecSrc::kGetFromCanvas_DstColorType));
+ // Choose scales for scaling tests.
+ // TODO (msarett): Add more scaling tests as we implement more flexible scaling.
+ // TODO (msarett): Implement scaling tests for SkImageDecoder in order to compare with these
+ // tests. SkImageDecoder supports downscales by integer factors.
+ const float scales[] = { 0.125f, 0.25f, 0.5f, 1.0f };
+
+ for (float scale : scales) {
+ // Build additional test cases for images that decode natively to non-canvas types
+ switch(codec->getInfo().colorType()) {
+ case kGray_8_SkColorType:
+ push_src("image", "codec_kGray8", new CodecSrc(path, CodecSrc::kNormal_Mode,
+ CodecSrc::kGrayscale_Always_DstColorType, scale));
+ push_src("image", "scanline_kGray8", new CodecSrc(path, CodecSrc::kScanline_Mode,
+ CodecSrc::kGrayscale_Always_DstColorType, scale));
+ push_src("image", "scanline_subset_kGray8", new CodecSrc(path,
+ CodecSrc::kScanline_Subset_Mode, CodecSrc::kGrayscale_Always_DstColorType,
+ scale));
+ push_src("image", "stripe_kGray8", new CodecSrc(path, CodecSrc::kStripe_Mode,
+ CodecSrc::kGrayscale_Always_DstColorType, scale));
+ // Intentional fall through
+ // FIXME: Is this a long term solution for testing wbmps decodes to kIndex8?
+ // Further discussion on this topic is at skbug.com/3683
+ case kIndex_8_SkColorType:
+ push_src("image", "codec_kIndex8", new CodecSrc(path, CodecSrc::kNormal_Mode,
+ CodecSrc::kIndex8_Always_DstColorType, scale));
+ push_src("image", "scanline_kIndex8", new CodecSrc(path, CodecSrc::kScanline_Mode,
+ CodecSrc::kIndex8_Always_DstColorType, scale));
+ push_src("image", "scanline_subset_kIndex8", new CodecSrc(path,
+ CodecSrc::kScanline_Subset_Mode, CodecSrc::kIndex8_Always_DstColorType,
+ scale));
+ push_src("image", "stripe_kIndex8", new CodecSrc(path, CodecSrc::kStripe_Mode,
+ CodecSrc::kIndex8_Always_DstColorType, scale));
+ break;
+ default:
+ // Do nothing
+ break;
+ }
+
+ // Decode all images to the canvas color type
+ push_src("image", "codec", new CodecSrc(path, CodecSrc::kNormal_Mode,
+ CodecSrc::kGetFromCanvas_DstColorType, scale));
+ push_src("image", "scanline", new CodecSrc(path, CodecSrc::kScanline_Mode,
+ CodecSrc::kGetFromCanvas_DstColorType, scale));
+ push_src("image", "scanline_subset", new CodecSrc(path, CodecSrc::kScanline_Subset_Mode,
+ CodecSrc::kGetFromCanvas_DstColorType, scale));
+ push_src("image", "stripe", new CodecSrc(path, CodecSrc::kStripe_Mode,
+ CodecSrc::kGetFromCanvas_DstColorType, scale));
+ }
}
static bool codec_supported(const char* ext) {
« no previous file with comments | « no previous file | dm/DMSrcSink.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698