blob: 98f846246ce0b9a60a3162f2caacdc64ad8c3425 [file] [log] [blame]
fmalita6ceef3d2016-07-26 18:46:34 -07001/*
2 * Copyright 2016 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 SkSVGDOM_DEFINED
9#define SkSVGDOM_DEFINED
10
11#include "SkRefCnt.h"
12#include "SkSize.h"
13#include "SkTemplates.h"
14
15class SkCanvas;
16class SkDOM;
17class SkStream;
18class SkSVGNode;
19
20class SkSVGDOM : public SkRefCnt {
21public:
22 SkSVGDOM(const SkSize& containerSize);
23 ~SkSVGDOM() = default;
24
25 static sk_sp<SkSVGDOM> MakeFromDOM(const SkDOM&, const SkSize& containerSize);
26 static sk_sp<SkSVGDOM> MakeFromStream(SkStream&, const SkSize& containerSize);
27
28 void setContainerSize(const SkSize&);
fmalitaca39d712016-08-12 13:17:11 -070029 void setRoot(sk_sp<SkSVGNode>);
fmalita6ceef3d2016-07-26 18:46:34 -070030
31 void render(SkCanvas*) const;
32
33private:
34 SkSize fContainerSize;
35 sk_sp<SkSVGNode> fRoot;
36
37 typedef SkRefCnt INHERITED;
38};
39
40#endif // SkSVGDOM_DEFINED