skia2/include/svg/SkSVGCanvas.h
KDr2 e77142e0d6 Fix bug of SkSVGCanvas::Make
The method `SkSVGCanvas::Make(const SkRect& bounds, SkWStream* writer)`
passes a pointer to a stack-allocated object to the returned SkCanvas.

TBR=
Change-Id: Ica7933adc59764a69eb2fb6312df91ffffd5627b
Reviewed-on: https://skia-review.googlesource.com/c/192040
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-02-14 02:09:30 +00:00

36 lines
1.0 KiB
C++

/*
* Copyright 2015 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkSVGCanvas_DEFINED
#define SkSVGCanvas_DEFINED
#include "SkCanvas.h"
class SkWStream;
class SkXMLWriter;
class SK_API SkSVGCanvas {
public:
/**
* Returns a new canvas that will generate SVG commands from its draw calls, and send
* them to the provided xmlwriter. Ownership of the xmlwriter is not transfered to the canvas,
* but it must stay valid during the lifetime of the returned canvas.
*
* The canvas may buffer some drawing calls, so the output is not guaranteed to be valid
* or complete until the canvas instance is deleted.
*
* The 'bounds' parameter defines an initial SVG viewport (viewBox attribute on the root
* SVG element).
*/
static std::unique_ptr<SkCanvas> Make(const SkRect& bounds, SkWStream*);
// Internal only.
static std::unique_ptr<SkCanvas> Make(const SkRect& bounds, SkXMLWriter*, bool ownsWriter=false);
};
#endif