| Index: dm/DM.cpp
|
| diff --git a/dm/DM.cpp b/dm/DM.cpp
|
| index 25a12637887c8ecfc403c93ec1dac66948f321f9..d37b7b1d61aa3b4619bf2944646d59da59da0d03 100644
|
| --- a/dm/DM.cpp
|
| +++ b/dm/DM.cpp
|
| @@ -503,6 +503,20 @@ static bool brd_supported(const char* ext) {
|
| return false;
|
| }
|
|
|
| +static bool is_raw(const SkString& file) {
|
| + static const char* const exts[] = {
|
| + "arw", "cr2", "dng", "nef", "nrw", "orf", "raf", "rw2", "pef", "srw",
|
| + "ARW", "CR2", "DNG", "NEF", "NRW", "ORF", "RAF", "RW2", "PEF", "SRW",
|
| + };
|
| +
|
| + for (uint32_t i = 0; i < SK_ARRAY_COUNT(exts); i++) {
|
| + if (file.endsWith(exts[i])) {
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| +}
|
| +
|
| static void gather_srcs() {
|
| for (const skiagm::GMRegistry* r = skiagm::GMRegistry::Head(); r; r = r->next()) {
|
| push_src("gm", "", new GMSrc(r->factory()));
|
| @@ -521,6 +535,8 @@ static void gather_srcs() {
|
| static const char* const exts[] = {
|
| "bmp", "gif", "jpg", "jpeg", "png", "webp", "ktx", "astc", "wbmp", "ico",
|
| "BMP", "GIF", "JPG", "JPEG", "PNG", "WEBP", "KTX", "ASTC", "WBMP", "ICO",
|
| + "arw", "cr2", "dng", "nef", "nrw", "orf", "raf", "rw2", "pef", "srw",
|
| + "ARW", "CR2", "DNG", "NEF", "NRW", "ORF", "RAF", "RW2", "PEF", "SRW",
|
| };
|
| for (int i = 0; i < FLAGS_images.count(); i++) {
|
| const char* flag = FLAGS_images[i];
|
| @@ -529,7 +545,9 @@ static void gather_srcs() {
|
| SkOSFile::Iter it(flag, exts[j]);
|
| for (SkString file; it.next(&file); ) {
|
| SkString path = SkOSPath::Join(flag, file.c_str());
|
| - push_src("image", "decode", new ImageSrc(path)); // Decode entire image
|
| + if (!is_raw(file)) {
|
| + push_src("image", "decode", new ImageSrc(path)); // Decode entire image
|
| + }
|
| push_codec_srcs(path);
|
| if (brd_supported(exts[j])) {
|
| push_brd_srcs(path);
|
| @@ -538,7 +556,10 @@ static void gather_srcs() {
|
| }
|
| } else if (sk_exists(flag)) {
|
| // assume that FLAGS_images[i] is a valid image if it is a file.
|
| - push_src("image", "decode", new ImageSrc(flag)); // Decode entire image.
|
| + SkString file(flag);
|
| + if (!is_raw(file)) {
|
| + push_src("image", "decode", new ImageSrc(flag)); // Decode entire image.
|
| + }
|
| push_codec_srcs(flag);
|
| push_brd_srcs(flag);
|
| }
|
|
|