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: 24a4c6094177ebde18c706cbcfbd2013d0a088e0eehalcanary // takes ownership of SkStreamAsset. 2530bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein PDFRasterizeTask(const Task& parent, 26a4c6094177ebde18c706cbcfbd2013d0a088e0eehalcanary SkStreamAsset* pdf, 2730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein RasterizePdfProc); 2830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 2930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual void draw() SK_OVERRIDE; 3030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual bool shouldSkip() const SK_OVERRIDE { return NULL == fRasterize; } 3130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein virtual SkString name() const SK_OVERRIDE { return fName; } 3230bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 3330bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtkleinprivate: 3430bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein const SkString fName; 35a4c6094177ebde18c706cbcfbd2013d0a088e0eehalcanary SkAutoTDelete<SkStreamAsset> fPdf; 3630bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein RasterizePdfProc fRasterize; 3730bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein}; 3830bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 3930bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein} // namespace DM 4030bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein 4130bf3e2ffcb78fc76e5a62b2ca67638e0411cba9mtklein#endif // DMPDFRasterizeTask_DEFINED 42