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

Unified Diff: tools/render_pdfs_main.cpp

Issue 1461633002: Clean up dead code: render_pdfs. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gyp/tools.gyp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/render_pdfs_main.cpp
diff --git a/tools/render_pdfs_main.cpp b/tools/render_pdfs_main.cpp
deleted file mode 100644
index b182d8b408a25752b1fd5e38dd78ee165ac92040..0000000000000000000000000000000000000000
--- a/tools/render_pdfs_main.cpp
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkCanvas.h"
-#include "SkCommandLineFlags.h"
-#include "SkDocument.h"
-#include "SkForceLinking.h"
-#include "SkGraphics.h"
-#include "SkImageEncoder.h"
-#include "SkOSFile.h"
-#include "SkPicture.h"
-#include "SkStream.h"
-#include "SkTArray.h"
-#include "SkTSort.h"
-#include "ProcStats.h"
-
-__SK_FORCE_IMAGE_DECODER_LINKING;
-
-#ifdef SK_USE_CDB
-#include "win_dbghelp.h"
-#endif
-
-/**
- * render_pdfs
- *
- * Given list of directories and files to use as input, expects to find .skp
- * files and it will convert them to .pdf files writing them in the output
- * directory.
- *
- * Returns zero exit code if all .skp files were converted successfully,
- * otherwise returns error code 1.
- */
-
-static const char PDF_FILE_EXTENSION[] = "pdf";
-static const char SKP_FILE_EXTENSION[] = "skp";
-
-
-DEFINE_string2(inputPaths, r, "",
- "A list of directories and files to use as input. "
- "Files are expected to have the .skp extension.");
-
-DEFINE_string2(outputDir, w, "",
- "Directory to write the rendered pdfs.");
-
-DEFINE_string2(match, m, "",
- "[~][^]substring[$] [...] of filenames to run.\n"
- "Multiple matches may be separated by spaces.\n"
- "~ causes a matching file to always be skipped\n"
- "^ requires the start of the file to match\n"
- "$ requires the end of the file to match\n"
- "^ and $ requires an exact match\n"
- "If a file does not match any list entry,\n"
- "it is skipped unless some list entry starts with ~");
-
-/** Replaces the extension of a file.
- * @param path File name whose extension will be changed.
- * @param old_extension The old extension.
- * @param new_extension The new extension.
- * @returns false if the file did not has the expected extension.
- * if false is returned, contents of path are undefined.
- */
-static bool replace_filename_extension(SkString* path,
- const char old_extension[],
- const char new_extension[]) {
- if (path->endsWith(old_extension)) {
- path->remove(path->size() - strlen(old_extension),
- strlen(old_extension));
- if (!path->endsWith(".")) {
- return false;
- }
- path->append(new_extension);
- return true;
- }
- return false;
-}
-
-/** Builds the output filename. path = dir/name, and it replaces expected
- * .skp extension with .pdf extention.
- * @param path Output filename.
- * @param name The name of the file.
- * @returns false if the file did not has the expected extension.
- * if false is returned, contents of path are undefined.
- */
-static bool make_output_filepath(SkString* path, const SkString& dir,
- const SkString& name) {
- *path = SkOSPath::Join(dir.c_str(), name.c_str());
- return replace_filename_extension(path,
- SKP_FILE_EXTENSION,
- PDF_FILE_EXTENSION);
-}
-
-namespace {
-// This is a write-only stream.
-class NullWStream : public SkWStream {
-public:
- NullWStream() : fBytesWritten(0) { }
- bool write(const void*, size_t size) override {
- fBytesWritten += size;
- return true;
- }
- size_t bytesWritten() const override { return fBytesWritten; }
- size_t fBytesWritten;
-};
-} // namespace
-
-/** Write the output of pdf renderer to a file.
- * @param outputDir Output dir.
- * @param inputFilename The skp file that was read.
- * @param renderer The object responsible to write the pdf file.
- */
-static SkWStream* open_stream(const SkString& outputDir,
- const SkString& inputFilename) {
- if (outputDir.isEmpty()) {
- return new NullWStream;
- }
-
- SkString outputPath;
- if (!make_output_filepath(&outputPath, outputDir, inputFilename)) {
- return nullptr;
- }
-
- SkAutoTDelete<SkFILEWStream> stream(new SkFILEWStream(outputPath.c_str()));
- if (!stream.get() || !stream->isValid()) {
- SkDebugf("Could not write to file %s\n", outputPath.c_str());
- return nullptr;
- }
-
- return stream.detach();
-}
-
-/**
- * Given a SkPicture, write a one-page PDF document to the given
- * output, using the provided encoder.
- */
-static bool pdf_to_stream(SkPicture* picture,
- SkWStream* output) {
- SkAutoTUnref<SkDocument> pdfDocument(
- SkDocument::CreatePDF(output));
- SkCanvas* canvas = pdfDocument->beginPage(picture->cullRect().width(),
- picture->cullRect().height());
- canvas->drawPicture(picture);
- canvas->flush();
- return pdfDocument->close();
-}
-
-static bool operator<(const SkString& a, const SkString& b) {
- return strcmp(a.c_str(), b.c_str()) < 0;
-}
-
-/**
- * @param A list of directories or a skp files.
- * @returns an alphabetical list of skp files.
- */
-static void process_input_files(
- const SkCommandLineFlags::StringArray& inputs,
- SkTArray<SkString>* files) {
- for (int i = 0; i < inputs.count(); i ++) {
- const char* input = inputs[i];
- if (sk_isdir(input)) {
- SkOSFile::Iter iter(input, SKP_FILE_EXTENSION);
- SkString inputFilename;
- while (iter.next(&inputFilename)) {
- if (!SkCommandLineFlags::ShouldSkip(
- FLAGS_match, inputFilename.c_str())) {
- files->push_back(
- SkOSPath::Join(input, inputFilename.c_str()));
- }
- }
- } else {
- if (!SkCommandLineFlags::ShouldSkip(FLAGS_match, input)) {
- files->push_back(SkString(input));
- }
- }
- }
- if (files->count() > 0) {
- SkTQSort<SkString>(files->begin(), files->end() - 1);
- }
-}
-
-/** For each input skp file, read it, render it to pdf and write. the
- * output to a pdf file
- */
-int tool_main_core(int argc, char** argv);
-int tool_main_core(int argc, char** argv) {
- SkCommandLineFlags::Parse(argc, argv);
-
- SkAutoGraphics ag;
-
- SkString outputDir;
- if (FLAGS_outputDir.count() > 0) {
- outputDir = FLAGS_outputDir[0];
- if (!sk_mkdir(outputDir.c_str())) {
- SkDebugf("Unable to mkdir '%s'\n", outputDir.c_str());
- return 1;
- }
- }
-
- SkTArray<SkString> files;
- process_input_files(FLAGS_inputPaths, &files);
-
- size_t maximumPathLength = 0;
- for (int i = 0; i < files.count(); i ++) {
- SkString basename = SkOSPath::Basename(files[i].c_str());
- maximumPathLength = SkTMax(maximumPathLength, basename.size());
- }
-
- int failures = 0;
- for (int i = 0; i < files.count(); i ++) {
- SkString basename = SkOSPath::Basename(files[i].c_str());
-
- SkFILEStream inputStream;
- inputStream.setPath(files[i].c_str());
- if (!inputStream.isValid()) {
- SkDebugf("Could not open file %s\n", files[i].c_str());
- ++failures;
- continue;
- }
-
- SkAutoTUnref<SkPicture> picture(
- SkPicture::CreateFromStream(&inputStream));
- if (nullptr == picture.get()) {
- SkDebugf("Could not read an SkPicture from %s\n",
- files[i].c_str());
- ++failures;
- continue;
- }
- SkDebugf("[%6g %6g %6g %6g] %-*s",
- picture->cullRect().fLeft, picture->cullRect().fTop,
- picture->cullRect().fRight, picture->cullRect().fBottom,
- maximumPathLength, basename.c_str());
-
- SkAutoTDelete<SkWStream> stream(open_stream(outputDir, files[i]));
- if (!stream.get()) {
- ++failures;
- continue;
- }
- if (!pdf_to_stream(picture, stream.get())) {
- SkDebugf("Error in PDF Serialization.");
- ++failures;
- }
-
- int max_rss_mb = sk_tools::getMaxResidentSetSizeMB();
- if (max_rss_mb >= 0) {
- SkDebugf(" %4dM peak rss", max_rss_mb);
- }
-
- SkDebugf("\n");
- }
- if (failures != 0) {
- SkDebugf("Failed to render %i of %i PDFs.\n", failures, files.count());
- return 1;
- }
-
- return 0;
-}
-
-int tool_main(int argc, char** argv);
-int tool_main(int argc, char** argv) {
-#ifdef SK_USE_CDB
- setUpDebuggingFromArgs(argv[0]);
- __try {
-#endif
- return tool_main_core(argc, argv);
-#ifdef SK_USE_CDB
- }
- __except(GenerateDumpAndPrintCallstack(GetExceptionInformation()))
- {
- return -1;
- }
-#endif
- return 0;
-}
-#if !defined SK_BUILD_FOR_IOS
-int main(int argc, char * const argv[]) {
- return tool_main(argc, (char**) argv);
-}
-#endif
« no previous file with comments | « gyp/tools.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698