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 "include/core/SkCanvas.h" |
12 | |
13 | class SkWStream; |
14 | |
15 | class SK_API SkSVGCanvas { |
16 | public: |
17 | enum { |
18 | kConvertTextToPaths_Flag = 0x01, // emit text as <path>s |
19 | kNoPrettyXML_Flag = 0x02, // suppress newlines and tabs in output |
20 | }; |
21 | |
22 | /** |
23 | * Returns a new canvas that will generate SVG commands from its draw calls, and send |
24 | * them to the provided stream. Ownership of the stream is not transfered, and it must |
25 | * remain valid for the lifetime of the returned canvas. |
26 | * |
27 | * The canvas may buffer some drawing calls, so the output is not guaranteed to be valid |
28 | * or complete until the canvas instance is deleted. |
29 | * |
30 | * The 'bounds' parameter defines an initial SVG viewport (viewBox attribute on the root |
31 | * SVG element). |
32 | */ |
33 | static std::unique_ptr<SkCanvas> Make(const SkRect& bounds, SkWStream*, uint32_t flags = 0); |
34 | }; |
35 | |
36 | #endif |
37 | |