/* * Copyright 2018 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef NIMASlide_DEFINED #define NIMASlide_DEFINED #include "Slide.h" #include "SkCanvas.h" #include "SkVertices.h" #include #include #include #include class NIMAActor; class NIMAActorImage; enum RenderFlags { kImmediate_RenderFlag = 0x1, kCache_RenderFlag = 0x2, kBounds_RenderFlag = 0x4, }; class NIMASlide : public Slide { public: NIMASlide(const SkString& name, const SkString& path); ~NIMASlide() override; void draw(SkCanvas* canvas) override; void load(SkScalar winWidth, SkScalar winHeight) override; void unload() override; bool animate(const SkAnimTimer& timer) override; bool onChar(SkUnichar c) override; bool onMouse(SkScalar x, SkScalar y, sk_app::Window::InputState state, uint32_t modifiers) override; private: void resetActor(); void renderGUI(); private: std::string fBasePath; std::unique_ptr fActor; bool fPlaying; float fTime; uint32_t fRenderFlags; nima::ActorAnimationInstance* fAnimation; int fAnimationIndex; }; #endif