Index: dm/DM.cpp |
diff --git a/dm/DM.cpp b/dm/DM.cpp |
index c7c3628d8a82e8236c83a6991a402f5ee194cb2b..75f4753b3273d3451959fbb8f9f6046597e1b8f6 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,21 @@ 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) { |
+ SkString folder; |
+ switch (mode) { |
+ case ImageGenSrc::kCodec_Mode: |
+ folder.append("gen_codec"); |
+ break; |
+ case ImageGenSrc::kCG_Mode: |
+ folder.append("gen_cg"); |
+ break; |
+ } |
+ |
+ ImageGenSrc* src = new ImageGenSrc(path, mode); |
+ push_src("image", folder, src); |
+} |
+ |
static void push_codec_srcs(Path path) { |
SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); |
if (!encoded) { |
@@ -352,7 +364,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 +405,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 +450,17 @@ static void push_codec_srcs(Path path) { |
} |
} |
} |
+ |
+ // Push image generator tests. |
+ // 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); |
+#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) |
+ if (kWEBP_SkEncodedFormat != codec->getEncodedFormat()) { |
+ push_image_gen_src(path, ImageGenSrc::kCG_Mode); |
+ } |
+#endif |
+ } |
} |
static bool brd_color_type_supported(SkBitmapRegionDecoder::Strategy strategy, |