blob: fa10ffe2d0f39ee5bef6e1678a6a54739668e8fb [file] [log] [blame]
Florin Malitac659c2c2018-04-05 11:57:21 -04001/*
2 * Copyright 2018 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 SvgSlide_DEFINED
9#define SvgSlide_DEFINED
10
Mike Kleinc0bd9f92019-04-23 12:05:21 -050011#include "tools/viewer/Slide.h"
Florin Malitac659c2c2018-04-05 11:57:21 -040012
13class SkSVGDOM;
14
15class SvgSlide final : public Slide {
16public:
17 SvgSlide(const SkString& name, const SkString& path);
Florin Malita64400d92021-01-27 18:51:44 +000018 SvgSlide(const SkString& name, std::unique_ptr<SkStream>);
Florin Malitac659c2c2018-04-05 11:57:21 -040019
20 void load(SkScalar winWidth, SkScalar winHeight) override;
21 void unload() override;
Florin Malitad532bdb2020-04-08 21:12:10 -040022 void resize(SkScalar, SkScalar) override;
Florin Malitac659c2c2018-04-05 11:57:21 -040023
24 SkISize getDimensions() const override;
25
26 void draw(SkCanvas*) override;
27private:
Florin Malita64400d92021-01-27 18:51:44 +000028 std::unique_ptr<SkStream> fStream;
29 SkSize fWinSize = SkSize::MakeEmpty();
Florin Malitac659c2c2018-04-05 11:57:21 -040030 sk_sp<SkSVGDOM> fDom;
31
John Stiles7571f9e2020-09-02 22:42:33 -040032 using INHERITED = Slide;
Florin Malitac659c2c2018-04-05 11:57:21 -040033};
34
35#endif // SvgSlide_DEFINED