Chris Dalton | 2b59890 | 2020-03-25 10:50:35 -0600 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2020 Google LLC |
| 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 | #include <emscripten.h> |
| 9 | #include <emscripten/bind.h> |
Chris Dalton | 8ce842d | 2020-04-01 14:46:16 -0600 | [diff] [blame^] | 10 | #include "include/core/SkCanvas.h" |
Chris Dalton | 2b59890 | 2020-03-25 10:50:35 -0600 | [diff] [blame] | 11 | #include "tools/viewer/SampleSlide.h" |
| 12 | #include <string> |
| 13 | |
| 14 | using namespace emscripten; |
| 15 | |
| 16 | EMSCRIPTEN_BINDINGS(Viewer) { |
| 17 | function("MakeSlide", optional_override([](std::string name)->sk_sp<Slide> { |
| 18 | if (name == "WavyPathText") { |
| 19 | extern Sample* MakeWavyPathTextSample(); |
| 20 | return sk_make_sp<SampleSlide>(MakeWavyPathTextSample); |
| 21 | } |
| 22 | return nullptr; |
| 23 | })); |
| 24 | class_<Slide>("Slide") |
| 25 | .smart_ptr<sk_sp<Slide>>("sk_sp<Slide>") |
| 26 | .function("load", &Slide::load) |
| 27 | .function("animate", &Slide::animate) |
| 28 | .function("draw", optional_override([](Slide& self, SkCanvas& canvas) { |
| 29 | self.draw(&canvas); |
| 30 | })); |
| 31 | } |