OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "LazyDecodeBitmap.h" | 8 #include "LazyDecodeBitmap.h" |
9 #include "CopyTilesRenderer.h" | 9 #include "CopyTilesRenderer.h" |
10 #include "SkBitmap.h" | 10 #include "SkBitmap.h" |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 | 138 |
139 /** | 139 /** |
140 * Called only by render_picture(). | 140 * Called only by render_picture(). |
141 */ | 141 */ |
142 static bool render_picture_internal(const SkString& inputPath, const SkString* w
ritePath, | 142 static bool render_picture_internal(const SkString& inputPath, const SkString* w
ritePath, |
143 const SkString* mismatchPath, | 143 const SkString* mismatchPath, |
144 sk_tools::PictureRenderer& renderer, | 144 sk_tools::PictureRenderer& renderer, |
145 SkBitmap** out) { | 145 SkBitmap** out) { |
146 SkString inputFilename = SkOSPath::Basename(inputPath.c_str()); | 146 SkString inputFilename = SkOSPath::Basename(inputPath.c_str()); |
147 SkString writePathString; | 147 SkString writePathString; |
148 if (NULL != writePath && writePath->size() > 0 && !FLAGS_writeEncodedImages)
{ | 148 if (writePath && writePath->size() > 0 && !FLAGS_writeEncodedImages) { |
149 writePathString.set(*writePath); | 149 writePathString.set(*writePath); |
150 } | 150 } |
151 SkString mismatchPathString; | 151 SkString mismatchPathString; |
152 if (NULL != mismatchPath && mismatchPath->size() > 0) { | 152 if (mismatchPath && mismatchPath->size() > 0) { |
153 mismatchPathString.set(*mismatchPath); | 153 mismatchPathString.set(*mismatchPath); |
154 } | 154 } |
155 | 155 |
156 SkFILEStream inputStream; | 156 SkFILEStream inputStream; |
157 inputStream.setPath(inputPath.c_str()); | 157 inputStream.setPath(inputPath.c_str()); |
158 if (!inputStream.isValid()) { | 158 if (!inputStream.isValid()) { |
159 SkDebugf("Could not open file %s\n", inputPath.c_str()); | 159 SkDebugf("Could not open file %s\n", inputPath.c_str()); |
160 return false; | 160 return false; |
161 } | 161 } |
162 | 162 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 | 200 |
201 SkDebugf("drawing... [%f %f %f %f] %s\n", | 201 SkDebugf("drawing... [%f %f %f %f] %s\n", |
202 picture->cullRect().fLeft, picture->cullRect().fTop, | 202 picture->cullRect().fLeft, picture->cullRect().fTop, |
203 picture->cullRect().fRight, picture->cullRect().fBottom, | 203 picture->cullRect().fRight, picture->cullRect().fBottom, |
204 inputPath.c_str()); | 204 inputPath.c_str()); |
205 | 205 |
206 renderer.init(picture, &writePathString, &mismatchPathString, &inputFilename
, | 206 renderer.init(picture, &writePathString, &mismatchPathString, &inputFilename
, |
207 FLAGS_writeChecksumBasedFilenames); | 207 FLAGS_writeChecksumBasedFilenames); |
208 | 208 |
209 if (FLAGS_preprocess) { | 209 if (FLAGS_preprocess) { |
210 if (NULL != renderer.getCanvas()) { | 210 if (renderer.getCanvas()) { |
211 renderer.getCanvas()->EXPERIMENTAL_optimize(renderer.getPicture()); | 211 renderer.getCanvas()->EXPERIMENTAL_optimize(renderer.getPicture()); |
212 } | 212 } |
213 } | 213 } |
214 | 214 |
215 renderer.setup(); | 215 renderer.setup(); |
216 renderer.enableWrites(); | 216 renderer.enableWrites(); |
217 | 217 |
218 bool success = renderer.render(out); | 218 bool success = renderer.render(out); |
219 if (!success) { | 219 if (!success) { |
220 SkDebugf("Failed to render %s\n", inputFilename.c_str()); | 220 SkDebugf("Failed to render %s\n", inputFilename.c_str()); |
(...skipping 22 matching lines...) Expand all Loading... |
243 } | 243 } |
244 | 244 |
245 void set(sk_tools::PictureRenderer* renderer, | 245 void set(sk_tools::PictureRenderer* renderer, |
246 sk_tools::PictureRenderer::BBoxHierarchyType bbhType) { | 246 sk_tools::PictureRenderer::BBoxHierarchyType bbhType) { |
247 fRenderer = renderer; | 247 fRenderer = renderer; |
248 fSavedBbhType = renderer->getBBoxHierarchyType(); | 248 fSavedBbhType = renderer->getBBoxHierarchyType(); |
249 renderer->setBBoxHierarchyType(bbhType); | 249 renderer->setBBoxHierarchyType(bbhType); |
250 } | 250 } |
251 | 251 |
252 ~AutoRestoreBbhType() { | 252 ~AutoRestoreBbhType() { |
253 if (NULL != fRenderer) { | 253 if (fRenderer) { |
254 fRenderer->setBBoxHierarchyType(fSavedBbhType); | 254 fRenderer->setBBoxHierarchyType(fSavedBbhType); |
255 } | 255 } |
256 } | 256 } |
257 | 257 |
258 private: | 258 private: |
259 sk_tools::PictureRenderer* fRenderer; | 259 sk_tools::PictureRenderer* fRenderer; |
260 sk_tools::PictureRenderer::BBoxHierarchyType fSavedBbhType; | 260 sk_tools::PictureRenderer::BBoxHierarchyType fSavedBbhType; |
261 }; | 261 }; |
262 | 262 |
263 /** | 263 /** |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 } | 362 } |
363 | 363 |
364 if (FLAGS_writeWholeImage) { | 364 if (FLAGS_writeWholeImage) { |
365 sk_tools::force_all_opaque(*bitmap); | 365 sk_tools::force_all_opaque(*bitmap); |
366 | 366 |
367 SkString inputFilename = SkOSPath::Basename(inputPath.c_str()); | 367 SkString inputFilename = SkOSPath::Basename(inputPath.c_str()); |
368 SkString outputFilename(inputFilename); | 368 SkString outputFilename(inputFilename); |
369 sk_tools::replace_char(&outputFilename, '.', '_'); | 369 sk_tools::replace_char(&outputFilename, '.', '_'); |
370 outputFilename.append(".png"); | 370 outputFilename.append(".png"); |
371 | 371 |
372 if (NULL != jsonSummaryPtr) { | 372 if (jsonSummaryPtr) { |
373 sk_tools::ImageDigest imageDigest(*bitmap); | 373 sk_tools::ImageDigest imageDigest(*bitmap); |
374 jsonSummaryPtr->add(inputFilename.c_str(), outputFilename.c_str(), i
mageDigest); | 374 jsonSummaryPtr->add(inputFilename.c_str(), outputFilename.c_str(), i
mageDigest); |
375 if ((NULL != mismatchPath) && !mismatchPath->isEmpty() && | 375 if ((mismatchPath) && !mismatchPath->isEmpty() && |
376 !jsonSummaryPtr->getExpectation(inputFilename.c_str()).matches(i
mageDigest)) { | 376 !jsonSummaryPtr->getExpectation(inputFilename.c_str()).matches(i
mageDigest)) { |
377 success &= sk_tools::write_bitmap_to_disk(*bitmap, *mismatchPath
, NULL, | 377 success &= sk_tools::write_bitmap_to_disk(*bitmap, *mismatchPath
, NULL, |
378 outputFilename); | 378 outputFilename); |
379 } | 379 } |
380 } | 380 } |
381 | 381 |
382 if ((NULL != writePath) && !writePath->isEmpty()) { | 382 if ((writePath) && !writePath->isEmpty()) { |
383 success &= sk_tools::write_bitmap_to_disk(*bitmap, *writePath, NULL,
outputFilename); | 383 success &= sk_tools::write_bitmap_to_disk(*bitmap, *writePath, NULL,
outputFilename); |
384 } | 384 } |
385 } | 385 } |
386 SkDELETE(bitmap); | 386 SkDELETE(bitmap); |
387 | 387 |
388 return success; | 388 return success; |
389 } | 389 } |
390 | 390 |
391 | 391 |
392 static int process_input(const char* input, const SkString* writePath, | 392 static int process_input(const char* input, const SkString* writePath, |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 jsonSummary.writeToFile(FLAGS_writeJsonSummaryPath[0]); | 511 jsonSummary.writeToFile(FLAGS_writeJsonSummaryPath[0]); |
512 } | 512 } |
513 return 0; | 513 return 0; |
514 } | 514 } |
515 | 515 |
516 #if !defined SK_BUILD_FOR_IOS | 516 #if !defined SK_BUILD_FOR_IOS |
517 int main(int argc, char * const argv[]) { | 517 int main(int argc, char * const argv[]) { |
518 return tool_main(argc, (char**) argv); | 518 return tool_main(argc, (char**) argv); |
519 } | 519 } |
520 #endif | 520 #endif |
OLD | NEW |