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 SkXMLWriter; 14 15 class SK_API SkSVGCanvas { 16 public: 17 /** 18 * Returns a new canvas that will generate SVG commands from its draw calls, and send 19 * them to the provided xmlwriter. Ownership of the xmlwriter is not transfered to the canvas, 20 * but it must stay valid during the lifetime of the returned canvas. 21 * 22 * The canvas may buffer some drawing calls, so the output is not guaranteed to be valid 23 * or complete until the canvas instance is deleted. 24 * 25 * The 'bounds' parameter defines an initial SVG viewport (viewBox attribute on the root 26 * SVG element). 27 */ 28 static std::unique_ptr<SkCanvas> Make(const SkRect& bounds, SkXMLWriter*); 29 }; 30 31 #endif 32