130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein/* 230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein * Copyright 2014 Google Inc. 330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein * 430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein * Use of this source code is governed by a BSD-style license that can be 530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein * found in the LICENSE file. 630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein */ 730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#ifndef DMPDFRasterizeTask_DEFINED 930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#define DMPDFRasterizeTask_DEFINED 1030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 1130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "DMTask.h" 1230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkBitmap.h" 1330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkData.h" 1430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkStream.h" 1530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkString.h" 1630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#include "SkTemplates.h" 1730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 1830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinnamespace DM { 1930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 2030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleintypedef bool (*RasterizePdfProc)(SkStream* pdf, SkBitmap* output); 2130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 2230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinclass PDFRasterizeTask : public CpuTask { 2330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinpublic: 2430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein PDFRasterizeTask(const Task& parent, 2530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkData* pdf, 2630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein RasterizePdfProc); 2730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 2830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual void draw() SK_OVERRIDE; 2930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual bool shouldSkip() const SK_OVERRIDE { return NULL == fRasterize; } 3030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual SkString name() const SK_OVERRIDE { return fName; } 3130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 3230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinprivate: 3330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein const SkString fName; 3430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein SkAutoTUnref<SkData> fPdf; 3530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein RasterizePdfProc fRasterize; 3630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein}; 3730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 3830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein} // namespace DM 3930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 4030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#endif // DMPDFRasterizeTask_DEFINED 41