• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2015 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef SkSVGCanvas_DEFINED
9 #define SkSVGCanvas_DEFINED
10 
11 #include "SkCanvas.h"
12 
13 class SkWStream;
14 class SkXMLWriter;
15 
16 class SK_API SkSVGCanvas {
17 public:
18     /**
19      *  Returns a new canvas that will generate SVG commands from its draw calls, and send
20      *  them to the provided xmlwriter. Ownership of the xmlwriter is not transfered to the canvas,
21      *  but it must stay valid during the lifetime of the returned canvas.
22      *
23      *  The canvas may buffer some drawing calls, so the output is not guaranteed to be valid
24      *  or complete until the canvas instance is deleted.
25      *
26      *  The 'bounds' parameter defines an initial SVG viewport (viewBox attribute on the root
27      *  SVG element).
28      */
29     static std::unique_ptr<SkCanvas> Make(const SkRect& bounds, SkWStream*);
30 
31     // Internal only.
32     static std::unique_ptr<SkCanvas> Make(const SkRect& bounds, SkXMLWriter*);
33 };
34 
35 #endif
36