| Index: dm/DMPDFTask.cpp
|
| diff --git a/dm/DMPDFTask.cpp b/dm/DMPDFTask.cpp
|
| deleted file mode 100644
|
| index 3102478c2fe5af2fb92bd568da1fed0bb413c284..0000000000000000000000000000000000000000
|
| --- a/dm/DMPDFTask.cpp
|
| +++ /dev/null
|
| @@ -1,106 +0,0 @@
|
| -/*
|
| - * Copyright 2014 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#include "DMPDFTask.h"
|
| -#include "DMPDFRasterizeTask.h"
|
| -#include "DMUtil.h"
|
| -#include "DMWriteTask.h"
|
| -#include "SkCommandLineFlags.h"
|
| -#include "SkDocument.h"
|
| -
|
| -// The PDF backend is not threadsafe. If you run dm with --pdf repeatedly, you
|
| -// will quickly find yourself crashed. (while catchsegv out/Release/dm;; end).
|
| -//
|
| -// TODO(mtklein): re-enable by default, maybe moving to its own single thread.
|
| -DEFINE_bool(pdf, false, "PDF backend master switch.");
|
| -
|
| -namespace DM {
|
| -
|
| -PDFTask::PDFTask(const char* config,
|
| - Reporter* reporter,
|
| - TaskRunner* taskRunner,
|
| - skiagm::GMRegistry::Factory factory,
|
| - RasterizePdfProc rasterizePdfProc)
|
| - : CpuTask(reporter, taskRunner)
|
| - , fGM(factory(NULL))
|
| - , fName(UnderJoin(fGM->getName(), config))
|
| - , fRasterize(rasterizePdfProc) {}
|
| -
|
| -PDFTask::PDFTask(Reporter* reporter,
|
| - TaskRunner* taskRunner,
|
| - const SkPicture* picture,
|
| - SkString filename,
|
| - RasterizePdfProc rasterizePdfProc)
|
| - : CpuTask(reporter, taskRunner)
|
| - , fPicture(SkRef(picture))
|
| - , fName(UnderJoin(FileToTaskName(filename).c_str(), "pdf"))
|
| - , fRasterize(rasterizePdfProc) {}
|
| -
|
| -namespace {
|
| -
|
| -class SinglePagePDF {
|
| -public:
|
| - SinglePagePDF(SkScalar width, SkScalar height)
|
| - : fDocument(SkDocument::CreatePDF(&fWriteStream))
|
| - , fCanvas(fDocument->beginPage(width, height)) {}
|
| -
|
| - SkCanvas* canvas() { return fCanvas; }
|
| -
|
| - SkStreamAsset* end() {
|
| - fCanvas->flush();
|
| - fDocument->endPage();
|
| - fDocument->close();
|
| - return fWriteStream.detachAsStream();
|
| - }
|
| -
|
| -private:
|
| - SkDynamicMemoryWStream fWriteStream;
|
| - SkAutoTUnref<SkDocument> fDocument;
|
| - SkCanvas* fCanvas;
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -void PDFTask::draw() {
|
| - SkAutoTDelete<SkStreamAsset> pdfData;
|
| - bool rasterize = true;
|
| - if (fGM.get()) {
|
| - rasterize = 0 == (fGM->getFlags() & skiagm::GM::kSkipPDFRasterization_Flag);
|
| - SinglePagePDF pdf(fGM->width(), fGM->height());
|
| - CanvasPreflight(pdf.canvas());
|
| - //TODO(mtklein): GM doesn't do this. Why not?
|
| - //pdf.canvas()->concat(fGM->getInitialTransform());
|
| - fGM->draw(pdf.canvas());
|
| - pdfData.reset(pdf.end());
|
| - } else {
|
| - SinglePagePDF pdf(fPicture->cullRect().width(), fPicture->cullRect().height());
|
| - CanvasPreflight(pdf.canvas());
|
| - fPicture->playback(pdf.canvas());
|
| - pdfData.reset(pdf.end());
|
| - }
|
| -
|
| - SkASSERT(pdfData.get());
|
| - if (rasterize) {
|
| - this->spawnChild(SkNEW_ARGS(PDFRasterizeTask,
|
| - (*this, pdfData->duplicate(), fRasterize)));
|
| - }
|
| - const char* sourceType = fGM.get() ? "GM" : "SKP";
|
| - this->spawnChild(SkNEW_ARGS(WriteTask,
|
| - (*this, sourceType, pdfData->duplicate(), ".pdf")));
|
| -}
|
| -
|
| -bool PDFTask::shouldSkip() const {
|
| - if (!FLAGS_pdf) {
|
| - return true;
|
| - }
|
| - if (fGM.get() && 0 != (fGM->getFlags() & skiagm::GM::kSkipPDF_Flag)) {
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -} // namespace DM
|
|
|