/* * Copyright 2012 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef PdfRenderer_DEFINED #define PdfRenderer_DEFINED // // PdfRender takes a SkPicture and writes it to a PDF file. // An SkPicture can be built manually, or read from an SKP file. // #include "SkMath.h" #include "SkPicture.h" #include "SkTypes.h" #include "SkTDArray.h" #include "SkRefCnt.h" #include "SkString.h" class SkBitmap; class SkCanvas; class SkGLContext; class SkPDFDevice; namespace sk_tools { class PdfRenderer : public SkRefCnt { public: virtual void init(SkPicture* pict); virtual void setup() {} virtual void render() = 0; virtual void end(); PdfRenderer() : fPicture(NULL) , fPDFDevice(NULL) {} void write(SkWStream* stream) const; protected: SkCanvas* setupCanvas(); SkCanvas* setupCanvas(int width, int height); SkAutoTUnref fCanvas; SkPicture* fPicture; SkPDFDevice* fPDFDevice; private: typedef SkRefCnt INHERITED; }; class SimplePdfRenderer : public PdfRenderer { public: virtual void render() SK_OVERRIDE; private: typedef PdfRenderer INHERITED; }; } #endif // PdfRenderer_DEFINED