Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: tools/render_pictures_main.cpp

Issue 17113004: Replace SkPicture(SkStream) constructors with a factory. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Remove a change in behavior Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/render_pdfs_main.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "CopyTilesRenderer.h" 8 #include "CopyTilesRenderer.h"
9 #include "SkBitmap.h" 9 #include "SkBitmap.h"
10 #include "SkDevice.h" 10 #include "SkDevice.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 SkString inputFilename; 142 SkString inputFilename;
143 sk_tools::get_basename(&inputFilename, inputPath); 143 sk_tools::get_basename(&inputFilename, inputPath);
144 144
145 SkFILEStream inputStream; 145 SkFILEStream inputStream;
146 inputStream.setPath(inputPath.c_str()); 146 inputStream.setPath(inputPath.c_str());
147 if (!inputStream.isValid()) { 147 if (!inputStream.isValid()) {
148 SkDebugf("Could not open file %s\n", inputPath.c_str()); 148 SkDebugf("Could not open file %s\n", inputPath.c_str());
149 return false; 149 return false;
150 } 150 }
151 151
152 bool success = false; 152 SkPicture::InstallPixelRefProc proc;
153 SkPicture* picture;
154 if (FLAGS_deferImageDecoding) { 153 if (FLAGS_deferImageDecoding) {
155 picture = SkNEW_ARGS(SkPicture, (&inputStream, &success, &lazy_decode_bi tmap)); 154 proc = &lazy_decode_bitmap;
156 } else if (FLAGS_writeEncodedImages) { 155 } else if (FLAGS_writeEncodedImages) {
157 SkASSERT(!FLAGS_writePath.isEmpty()); 156 SkASSERT(!FLAGS_writePath.isEmpty());
158 reset_image_file_base_name(inputFilename); 157 reset_image_file_base_name(inputFilename);
159 picture = SkNEW_ARGS(SkPicture, (&inputStream, &success, &write_image_to _file)); 158 proc = &write_image_to_file;
160 } else { 159 } else {
161 picture = SkNEW_ARGS(SkPicture, (&inputStream, &success, &SkImageDecoder ::DecodeMemory)); 160 proc = &SkImageDecoder::DecodeMemory;
162 } 161 }
163 162
164 if (!success) { 163 SkPicture* picture = SkPicture::CreateFromStream(&inputStream, proc);
164
165 if (NULL == picture) {
165 SkDebugf("Could not read an SkPicture from %s\n", inputPath.c_str()); 166 SkDebugf("Could not read an SkPicture from %s\n", inputPath.c_str());
166 return false; 167 return false;
167 } 168 }
168 169
169 for (int i = 0; i < FLAGS_clone; ++i) { 170 for (int i = 0; i < FLAGS_clone; ++i) {
170 SkPicture* clone = picture->clone(); 171 SkPicture* clone = picture->clone();
171 SkDELETE(picture); 172 SkDELETE(picture);
172 picture = clone; 173 picture = clone;
173 } 174 }
174 175
175 SkDebugf("drawing... [%i %i] %s\n", picture->width(), picture->height(), 176 SkDebugf("drawing... [%i %i] %s\n", picture->width(), picture->height(),
176 inputPath.c_str()); 177 inputPath.c_str());
177 178
178 renderer.init(picture); 179 renderer.init(picture);
179 renderer.setup(); 180 renderer.setup();
180 181
181 SkString* outputPath = NULL; 182 SkString* outputPath = NULL;
182 if (NULL != outputDir && outputDir->size() > 0 && !FLAGS_writeEncodedImages) { 183 if (NULL != outputDir && outputDir->size() > 0 && !FLAGS_writeEncodedImages) {
183 outputPath = SkNEW(SkString); 184 outputPath = SkNEW(SkString);
184 make_output_filepath(outputPath, *outputDir, inputFilename); 185 make_output_filepath(outputPath, *outputDir, inputFilename);
185 } 186 }
186 187
187 success = renderer.render(outputPath, out); 188 bool success = renderer.render(outputPath, out);
188 if (outputPath) { 189 if (outputPath) {
189 if (!success) { 190 if (!success) {
190 SkDebugf("Could not write to file %s\n", outputPath->c_str()); 191 SkDebugf("Could not write to file %s\n", outputPath->c_str());
191 } 192 }
192 SkDELETE(outputPath); 193 SkDELETE(outputPath);
193 } 194 }
194 195
195 renderer.end(); 196 renderer.end();
196 197
197 SkDELETE(picture); 198 SkDELETE(picture);
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 #endif 441 #endif
441 #endif 442 #endif
442 return 0; 443 return 0;
443 } 444 }
444 445
445 #if !defined SK_BUILD_FOR_IOS 446 #if !defined SK_BUILD_FOR_IOS
446 int main(int argc, char * const argv[]) { 447 int main(int argc, char * const argv[]) {
447 return tool_main(argc, (char**) argv); 448 return tool_main(argc, (char**) argv);
448 } 449 }
449 #endif 450 #endif
OLDNEW
« no previous file with comments | « tools/render_pdfs_main.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698