aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/viewer/viewer/Viewer.h
diff options
context:
space:
mode:
authorGravatar jvanverth <jvanverth@google.com>2016-05-04 13:49:13 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-05-04 13:49:13 -0700
commit345242671587d7273819bfe423be96e4392033e3 (patch)
tree7139d9f494699850865bd1925b2fe39a076718a6 /tools/viewer/viewer/Viewer.h
parent9b92ebdf41ed1fbd9ff598afad1804315ad62d46 (diff)
Rename VulkanViewer to Viewer, take 2.
Also puts Window and Application in sk_app namespace. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1945103003 Review-Url: https://codereview.chromium.org/1945103003
Diffstat (limited to 'tools/viewer/viewer/Viewer.h')
-rw-r--r--tools/viewer/viewer/Viewer.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/viewer/viewer/Viewer.h b/tools/viewer/viewer/Viewer.h
new file mode 100644
index 0000000000..43d29baa96
--- /dev/null
+++ b/tools/viewer/viewer/Viewer.h
@@ -0,0 +1,60 @@
+/*
+* Copyright 2016 Google Inc.
+*
+* Use of this source code is governed by a BSD-style license that can be
+* found in the LICENSE file.
+*/
+
+#ifndef Viewer_DEFINED
+#define Viewer_DEFINED
+
+#include "../Application.h"
+#include "../Window.h"
+#include "gm.h"
+#include "SkAnimTimer.h"
+#include "Slide.h"
+
+class SkCanvas;
+
+class Viewer : public sk_app::Application {
+public:
+ Viewer(int argc, char** argv, void* platformData);
+ ~Viewer() override;
+
+ bool onKey(sk_app::Window::Key key, sk_app::Window::InputState state, uint32_t modifiers);
+ bool onChar(SkUnichar, uint32_t modifiers);
+ void onPaint(SkCanvas* canvas);
+ void onIdle(double ms) override;
+
+private:
+ void initSlides();
+ void setupCurrentSlide(int previousSlide);
+
+ void drawStats(SkCanvas* canvas);
+
+ void changeZoomLevel(float delta);
+ void updateMatrix();
+
+ sk_app::Window* fWindow;
+
+ static const int kMeasurementCount = 64; // should be power of 2 for fast mod
+ double fMeasurements[kMeasurementCount];
+ int fCurrentMeasurement;
+
+ SkAnimTimer fAnimTimer;
+ SkTArray<sk_sp<Slide>> fSlides;
+ int fCurrentSlide;
+
+ bool fDisplayStats;
+
+ // transform data
+ SkMatrix fLocalMatrix;
+ SkScalar fZoomCenterX;
+ SkScalar fZoomCenterY;
+ SkScalar fZoomLevel;
+ SkScalar fZoomScale;
+
+};
+
+
+#endif