OLD | NEW |
1 // Main binary for DM. | 1 // Main binary for DM. |
2 // For a high-level overview, please see dm/README. | 2 // For a high-level overview, please see dm/README. |
3 | 3 |
4 #include "CrashHandler.h" | 4 #include "CrashHandler.h" |
5 #include "LazyDecodeBitmap.h" | 5 #include "LazyDecodeBitmap.h" |
6 #include "SkCommonFlags.h" | 6 #include "SkCommonFlags.h" |
7 #include "SkForceLinking.h" | 7 #include "SkForceLinking.h" |
8 #include "SkGraphics.h" | 8 #include "SkGraphics.h" |
9 #include "SkOSFile.h" | 9 #include "SkOSFile.h" |
10 #include "SkPicture.h" | 10 #include "SkPicture.h" |
11 #include "SkString.h" | 11 #include "SkString.h" |
12 #include "SkTaskGroup.h" | 12 #include "SkTaskGroup.h" |
13 #include "Test.h" | 13 #include "Test.h" |
14 #include "gm.h" | 14 #include "gm.h" |
15 #include "sk_tool_utils.h" | 15 #include "sk_tool_utils.h" |
16 #include "sk_tool_utils_flags.h" | 16 #include "sk_tool_utils_flags.h" |
17 | 17 |
18 #include "DMCpuGMTask.h" | 18 #include "DMCpuGMTask.h" |
19 #include "DMGpuGMTask.h" | 19 #include "DMGpuGMTask.h" |
20 #include "DMGpuSupport.h" | 20 #include "DMGpuSupport.h" |
21 #include "DMImageTask.h" | 21 #include "DMImageTask.h" |
22 #include "DMJsonWriter.h" | 22 #include "DMJsonWriter.h" |
23 #include "DMPDFTask.h" | 23 #include "DMPDFTask.h" |
| 24 #include "DMPDFRasterizeTask.h" |
24 #include "DMReporter.h" | 25 #include "DMReporter.h" |
25 #include "DMSKPTask.h" | 26 #include "DMSKPTask.h" |
26 #include "DMTask.h" | 27 #include "DMTask.h" |
27 #include "DMTaskRunner.h" | 28 #include "DMTaskRunner.h" |
28 #include "DMTestTask.h" | 29 #include "DMTestTask.h" |
29 | 30 |
30 #ifdef SK_BUILD_POPPLER | 31 #ifdef SK_BUILD_POPPLER |
31 # include "SkPDFRasterizer.h" | 32 # include "SkPDFRasterizer.h" |
32 # define RASTERIZE_PDF_PROC SkPopplerRasterizePDF | 33 # define RASTERIZE_PDF_PROC SkPopplerRasterizePDF |
33 #elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) | 34 #elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) |
(...skipping 11 matching lines...) Expand all Loading... |
45 using skiatest::TestRegistry; | 46 using skiatest::TestRegistry; |
46 | 47 |
47 static const char kGpuAPINameGL[] = "gl"; | 48 static const char kGpuAPINameGL[] = "gl"; |
48 static const char kGpuAPINameGLES[] = "gles"; | 49 static const char kGpuAPINameGLES[] = "gles"; |
49 | 50 |
50 DEFINE_bool(gms, true, "Run GMs?"); | 51 DEFINE_bool(gms, true, "Run GMs?"); |
51 DEFINE_bool(tests, true, "Run tests?"); | 52 DEFINE_bool(tests, true, "Run tests?"); |
52 DEFINE_bool(reportUsedChars, false, "Output test font construction data to be pa
sted into" | 53 DEFINE_bool(reportUsedChars, false, "Output test font construction data to be pa
sted into" |
53 " create_test_font.cpp."); | 54 " create_test_font.cpp."); |
54 DEFINE_string(images, "resources", "Path to directory containing images to decod
e."); | 55 DEFINE_string(images, "resources", "Path to directory containing images to decod
e."); |
| 56 DEFINE_bool(rasterPDF, true, "Rasterize PDFs?"); |
55 | 57 |
56 __SK_FORCE_IMAGE_DECODER_LINKING; | 58 __SK_FORCE_IMAGE_DECODER_LINKING; |
57 | 59 |
| 60 static DM::RasterizePdfProc get_pdf_rasterizer_proc() { |
| 61 return reinterpret_cast<DM::RasterizePdfProc>( |
| 62 FLAGS_rasterPDF ? RASTERIZE_PDF_PROC : NULL); |
| 63 } |
| 64 |
58 // "FooBar" -> "foobar". Obviously, ASCII only. | 65 // "FooBar" -> "foobar". Obviously, ASCII only. |
59 static SkString lowercase(SkString s) { | 66 static SkString lowercase(SkString s) { |
60 for (size_t i = 0; i < s.size(); i++) { | 67 for (size_t i = 0; i < s.size(); i++) { |
61 s[i] = tolower(s[i]); | 68 s[i] = tolower(s[i]); |
62 } | 69 } |
63 return s; | 70 return s; |
64 } | 71 } |
65 | 72 |
66 static const GrContextFactory::GLContextType native = GrContextFactory::kNative_
GLContextType; | 73 static const GrContextFactory::GLContextType native = GrContextFactory::kNative_
GLContextType; |
67 static const GrContextFactory::GLContextType nvpr = GrContextFactory::kNVPR_GL
ContextType; | 74 static const GrContextFactory::GLContextType nvpr = GrContextFactory::kNVPR_GL
ContextType; |
(...skipping 27 matching lines...) Expand all Loading... |
95 START("nvprmsaa16", GpuGMTask, nvpr, gpuAPI, 16, false); | 102 START("nvprmsaa16", GpuGMTask, nvpr, gpuAPI, 16, false); |
96 START("gpudft", GpuGMTask, native, gpuAPI, 0, true); | 103 START("gpudft", GpuGMTask, native, gpuAPI, 0, true); |
97 START("gpunull", GpuGMTask, null, gpuAPI, 0, false); | 104 START("gpunull", GpuGMTask, null, gpuAPI, 0, false); |
98 START("gpudebug", GpuGMTask, debug, gpuAPI, 0, false); | 105 START("gpudebug", GpuGMTask, debug, gpuAPI, 0, false); |
99 #if SK_ANGLE | 106 #if SK_ANGLE |
100 START("angle", GpuGMTask, angle, gpuAPI, 0, false); | 107 START("angle", GpuGMTask, angle, gpuAPI, 0, false); |
101 #endif | 108 #endif |
102 #if SK_MESA | 109 #if SK_MESA |
103 START("mesa", GpuGMTask, mesa, gpuAPI, 0, false); | 110 START("mesa", GpuGMTask, mesa, gpuAPI, 0, false); |
104 #endif | 111 #endif |
105 START("pdf", PDFTask, RASTERIZE_PDF_PROC); | 112 START("pdf", PDFTask, get_pdf_rasterizer_proc()); |
106 } | 113 } |
107 } | 114 } |
108 #undef START | 115 #undef START |
109 } | 116 } |
110 | 117 |
111 static void kick_off_tests(const SkTDArray<TestRegistry::Factory>& tests, | 118 static void kick_off_tests(const SkTDArray<TestRegistry::Factory>& tests, |
112 DM::Reporter* reporter, | 119 DM::Reporter* reporter, |
113 DM::TaskRunner* tasks) { | 120 DM::TaskRunner* tasks) { |
114 for (int i = 0; i < tests.count(); i++) { | 121 for (int i = 0; i < tests.count(); i++) { |
115 SkAutoTDelete<Test> test(tests[i](NULL)); | 122 SkAutoTDelete<Test> test(tests[i](NULL)); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 } | 158 } |
152 SkAutoTUnref<SkPicture> pic( | 159 SkAutoTUnref<SkPicture> pic( |
153 SkPicture::CreateFromStream(stream.get(), &sk_tools::LazyDecodeB
itmap)); | 160 SkPicture::CreateFromStream(stream.get(), &sk_tools::LazyDecodeB
itmap)); |
154 if (pic.get() == NULL) { | 161 if (pic.get() == NULL) { |
155 SkDebugf("Could not read %s as an SkPicture.\n", skps[i].c_str()); | 162 SkDebugf("Could not read %s as an SkPicture.\n", skps[i].c_str()); |
156 exit(1); | 163 exit(1); |
157 } | 164 } |
158 | 165 |
159 SkString filename = SkOSPath::Basename(skps[i].c_str()); | 166 SkString filename = SkOSPath::Basename(skps[i].c_str()); |
160 tasks->add(SkNEW_ARGS(DM::SKPTask, (reporter, tasks, pic, filename))); | 167 tasks->add(SkNEW_ARGS(DM::SKPTask, (reporter, tasks, pic, filename))); |
161 tasks->add(SkNEW_ARGS(DM::PDFTask, (reporter, tasks, pic, filename, RAST
ERIZE_PDF_PROC))); | 168 tasks->add(SkNEW_ARGS(DM::PDFTask, (reporter, tasks, pic, filename, |
| 169 get_pdf_rasterizer_proc()))); |
162 } | 170 } |
163 } | 171 } |
164 | 172 |
165 static void kick_off_images(const SkTArray<SkString>& images, | 173 static void kick_off_images(const SkTArray<SkString>& images, |
166 DM::Reporter* reporter, | 174 DM::Reporter* reporter, |
167 DM::TaskRunner* tasks) { | 175 DM::TaskRunner* tasks) { |
168 for (int i = 0; i < images.count(); i++) { | 176 for (int i = 0; i < images.count(); i++) { |
169 SkAutoTUnref<SkData> image(SkData::NewFromFileName(images[i].c_str())); | 177 SkAutoTUnref<SkData> image(SkData::NewFromFileName(images[i].c_str())); |
170 if (!image) { | 178 if (!image) { |
171 SkDebugf("Could not read %s.\n", images[i].c_str()); | 179 SkDebugf("Could not read %s.\n", images[i].c_str()); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 report_failures(failures); | 289 report_failures(failures); |
282 return failures.count() > 0; | 290 return failures.count() > 0; |
283 } | 291 } |
284 | 292 |
285 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) | 293 #if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) |
286 int main(int argc, char** argv) { | 294 int main(int argc, char** argv) { |
287 SkCommandLineFlags::Parse(argc, argv); | 295 SkCommandLineFlags::Parse(argc, argv); |
288 return dm_main(); | 296 return dm_main(); |
289 } | 297 } |
290 #endif | 298 #endif |
OLD | NEW |