| 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) {
|
|
|