Chromium Code Reviews| Index: dm/DM.cpp |
| diff --git a/dm/DM.cpp b/dm/DM.cpp |
| index c7c3628d8a82e8236c83a6991a402f5ee194cb2b..1fbc9535a91af3d38b0f54348de832d5600e8a15 100644 |
| --- a/dm/DM.cpp |
| +++ b/dm/DM.cpp |
| @@ -248,9 +248,6 @@ static void push_codec_src(Path path, CodecSrc::Mode mode, CodecSrc::DstColorTyp |
| case CodecSrc::kSubset_Mode: |
| folder.append("codec_subset"); |
| break; |
| - case CodecSrc::kGen_Mode: |
| - folder.append("gen"); |
| - break; |
| } |
| switch (dstColorType) { |
| @@ -331,6 +328,39 @@ static void push_android_codec_src(Path path, AndroidCodecSrc::Mode mode, |
| push_src("image", folder, src); |
| } |
| +static void push_image_gen_src(Path path, ImageGenSrc::Mode mode, SkAlphaType alphaType, bool isGpu) { |
|
scroggo
2016/03/07 13:04:30
nit: 100 chars
msarett
2016/03/08 23:20:17
Done.
|
| + SkString folder; |
| + switch (mode) { |
| + case ImageGenSrc::kCodec_Mode: |
| + folder.append("gen_codec"); |
| + break; |
| + case ImageGenSrc::kCG_Mode: |
| + folder.append("gen_cg"); |
| + break; |
| + } |
| + |
| + if (isGpu) { |
| + folder.append("_gpu"); |
| + } else { |
| + switch (alphaType) { |
| + case kOpaque_SkAlphaType: |
| + folder.append("_opaque"); |
| + break; |
| + case kPremul_SkAlphaType: |
| + folder.append("_premul"); |
| + break; |
| + case kUnpremul_SkAlphaType: |
| + folder.append("_unpremul"); |
| + break; |
| + default: |
| + break; |
| + } |
| + } |
| + |
| + ImageGenSrc* src = new ImageGenSrc(path, mode, alphaType, isGpu); |
| + push_src("image", folder, src); |
| +} |
| + |
| static void push_codec_srcs(Path path) { |
| SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); |
| if (!encoded) { |
| @@ -352,7 +382,6 @@ static void push_codec_srcs(Path path) { |
| SkTArray<CodecSrc::Mode> nativeModes; |
| nativeModes.push_back(CodecSrc::kCodec_Mode); |
| nativeModes.push_back(CodecSrc::kCodecZeroInit_Mode); |
| - nativeModes.push_back(CodecSrc::kGen_Mode); |
| switch (codec->getEncodedFormat()) { |
| case SkEncodedFormat::kJPEG_SkEncodedFormat: |
| nativeModes.push_back(CodecSrc::kScanline_Mode); |
| @@ -394,19 +423,6 @@ static void push_codec_srcs(Path path) { |
| } |
| for (CodecSrc::Mode mode : nativeModes) { |
| - // SkCodecImageGenerator only runs for the default colorType |
| - // recommended by SkCodec. There is no need to generate multiple |
| - // tests for different colorTypes. |
| - // TODO (msarett): Add scaling support to SkCodecImageGenerator. |
| - if (CodecSrc::kGen_Mode == mode) { |
| - // FIXME: The gpu backend does not draw kGray sources correctly. (skbug.com/4822) |
| - if (kGray_8_SkColorType != codec->getInfo().colorType()) { |
| - push_codec_src(path, mode, CodecSrc::kGetFromCanvas_DstColorType, |
| - codec->getInfo().alphaType(), 1.0f); |
| - } |
| - continue; |
| - } |
| - |
| for (float scale : nativeScales) { |
| for (CodecSrc::DstColorType colorType : colorTypes) { |
| for (SkAlphaType alphaType : alphaModes) { |
| @@ -452,6 +468,26 @@ static void push_codec_srcs(Path path) { |
| } |
| } |
| } |
| + |
| + // Push image generator GPU test. |
| + // FIXME: The gpu backend does not draw kGray sources correctly. (skbug.com/4822) |
| + if (kGray_8_SkColorType != codec->getInfo().colorType()) { |
| + push_image_gen_src(path, ImageGenSrc::kCodec_Mode, codec->getInfo().alphaType(), true); |
| + } |
| + |
| + // Push image generator CPU tests. |
| + for (SkAlphaType alphaType : alphaModes) { |
| + push_image_gen_src(path, ImageGenSrc::kCodec_Mode, alphaType, false); |
| + |
| +#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) |
| + if (kWEBP_SkEncodedFormat != codec->getEncodedFormat() && |
| + kWBMP_SkEncodedFormat != codec->getEncodedFormat() && |
| + kUnpremul_SkAlphaType != alphaType) |
| + { |
| + push_image_gen_src(path, ImageGenSrc::kCG_Mode, alphaType, false); |
| + } |
| +#endif |
| + } |
| } |
| static bool brd_color_type_supported(SkBitmapRegionDecoder::Strategy strategy, |