aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/viewer/NIMASlide.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/viewer/NIMASlide.h')
-rw-r--r--tools/viewer/NIMASlide.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/viewer/NIMASlide.h b/tools/viewer/NIMASlide.h
new file mode 100644
index 0000000000..d19d10119e
--- /dev/null
+++ b/tools/viewer/NIMASlide.h
@@ -0,0 +1,59 @@
+/*
+* 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 <nima/Actor.hpp>
+#include <nima/ActorImage.hpp>
+#include <nima/Animation/ActorAnimationInstance.hpp>
+#include <nima/Vec2D.hpp>
+
+class NIMAActor;
+class NIMAActorImage;
+
+enum RenderMode {
+ kBackend_RenderMode = 0,
+ kImmediate_RenderMode = 1,
+};
+
+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<NIMAActor> fActor;
+
+ bool fPlaying;
+ float fTime;
+ RenderMode fRenderMode;
+
+ nima::ActorAnimationInstance* fAnimation;
+ int fAnimationIndex;
+};
+
+#endif