Index: dm/DM.cpp |
diff --git a/dm/DM.cpp b/dm/DM.cpp |
index 91a92ea76be496f5e04b62198310e14c4112620d..9021f3c7894097631cef8ac3a5303a5178dc6a70 100644 |
--- a/dm/DM.cpp |
+++ b/dm/DM.cpp |
@@ -17,7 +17,6 @@ |
#include "SkCommonFlags.h" |
#include "SkCommonFlagsConfig.h" |
#include "SkFontMgr.h" |
-#include "SkForceLinking.h" |
#include "SkGraphics.h" |
#include "SkMD5.h" |
#include "SkMutex.h" |
@@ -65,8 +64,8 @@ DEFINE_string(uninterestingHashesFile, "", |
DEFINE_int32(shards, 1, "We're splitting source data into this many shards."); |
DEFINE_int32(shard, 0, "Which shard do I run?"); |
+DEFINE_bool(simpleCodec, false, "Only decode images to native scale"); |
scroggo
2016/02/25 17:08:36
Alternatively, we can set this to true as the defa
msarett
2016/02/25 17:47:37
Acknowledged.
|
-__SK_FORCE_IMAGE_DECODER_LINKING; |
using namespace DM; |
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ |
@@ -239,6 +238,12 @@ static void push_src(const char* tag, ImplicitString options, Src* s) { |
static void push_codec_src(Path path, CodecSrc::Mode mode, CodecSrc::DstColorType dstColorType, |
SkAlphaType dstAlphaType, float scale) { |
+ if (FLAGS_simpleCodec) { |
+ if (mode != CodecSrc::kCodec_Mode || dstColorType != CodecSrc::kGetFromCanvas_DstColorType |
+ || scale != 1.0f) |
+ // Only decode in the simple case. |
+ return; |
+ } |
SkString folder; |
switch (mode) { |
case CodecSrc::kCodec_Mode: |
@@ -355,8 +360,6 @@ static void push_codec_srcs(Path path) { |
} |
// Native Scales |
- // TODO (msarett): Implement scaling tests for SkImageDecoder in order to compare with these |
- // tests. SkImageDecoder supports downscales by integer factors. |
// SkJpegCodec natively supports scaling to: 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875 |
const float nativeScales[] = { 0.125f, 0.25f, 0.375f, 0.5f, 0.625f, 0.750f, 0.875f, 1.0f }; |
@@ -434,6 +437,10 @@ static void push_codec_srcs(Path path) { |
} |
} |
+ if (FLAGS_simpleCodec) { |
+ return; |
+ } |
+ |
// https://bug.skia.org/4428 |
bool subset = false; |
// The following image types are supported by BitmapRegionDecoder, |
@@ -613,6 +620,10 @@ static bool gather_srcs() { |
for (auto image : images) { |
push_codec_srcs(image); |
+ if (FLAGS_simpleCodec) { |
+ continue; |
+ } |
+ |
const char* ext = strrchr(image.c_str(), '.'); |
if (ext && brd_supported(ext+1)) { |
push_brd_srcs(image); |