130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#ifndef DMPDFTask_DEFINED 230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#define DMPDFTask_DEFINED 330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 4e4d3e605f74a23d050abad29909af421d8b1cf1amtklein#include "DMPDFRasterizeTask.h" 530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "DMTask.h" 630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkBitmap.h" 7e4d3e605f74a23d050abad29909af421d8b1cf1amtklein#include "SkPicture.h" 830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkString.h" 930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkTemplates.h" 1030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "gm.h" 1130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 1230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinnamespace DM { 1330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 14e4d3e605f74a23d050abad29909af421d8b1cf1amtklein// This task renders a GM or SKP using Skia's PDF backend. 1530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein// If rasterizePdfProc is non-NULL, it will spawn a PDFRasterizeTask. 1630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinclass PDFTask : public CpuTask { 1730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinpublic: 18e4d3e605f74a23d050abad29909af421d8b1cf1amtklein PDFTask(const char*, 1930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein Reporter*, 2030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein TaskRunner*, 2130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein skiagm::GMRegistry::Factory, 2230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein RasterizePdfProc); 2330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 24e4d3e605f74a23d050abad29909af421d8b1cf1amtklein PDFTask(Reporter*, 25e4d3e605f74a23d050abad29909af421d8b1cf1amtklein TaskRunner*, 26d3e474e20c6f0f24ddb6b2643e92975d60190daamtklein const SkPicture*, 27e4d3e605f74a23d050abad29909af421d8b1cf1amtklein SkString name, 28e4d3e605f74a23d050abad29909af421d8b1cf1amtklein RasterizePdfProc); 29e4d3e605f74a23d050abad29909af421d8b1cf1amtklein 3030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual void draw() SK_OVERRIDE; 3130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 3230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual bool shouldSkip() const SK_OVERRIDE; 3330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 3430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual SkString name() const SK_OVERRIDE { return fName; } 3530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 3630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinprivate: 37e4d3e605f74a23d050abad29909af421d8b1cf1amtklein // One of these two will be set. 3830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkAutoTDelete<skiagm::GM> fGM; 39d3e474e20c6f0f24ddb6b2643e92975d60190daamtklein SkAutoTUnref<const SkPicture> fPicture; 40e4d3e605f74a23d050abad29909af421d8b1cf1amtklein 4130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein const SkString fName; 4230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein RasterizePdfProc fRasterize; 4330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein}; 4430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 4530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein} // namespace DM 4630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 4730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#endif // DMPDFTask_DEFINED 48