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
13class SkWStream;
14
15class SK_API SkSVGCanvas {
16public:
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