skia2/example/HelloWorld.h
Brian Osman 80fc07e8f8 Create a Window::Layer interface to reduce sk_app glue code
This also makes it possible to manage other parts of viewer, etc (like
the stats screen, command set, even samples) as additional layers in the
stack. For now, it just removes a lot of boilerplate.

Bug: skia:
Change-Id: Ic2f80690fc76c683b3736287dc2b738c50d38614
Reviewed-on: https://skia-review.googlesource.com/82688
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-12-11 16:46:58 +00:00

37 lines
761 B
C++

/*
* Copyright 2017 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef HelloWorld_DEFINED
#define HelloWorld_DEFINED
#include "sk_app/Application.h"
#include "sk_app/Window.h"
class SkCanvas;
class HelloWorld : public sk_app::Application, sk_app::Window::Layer {
public:
HelloWorld(int argc, char** argv, void* platformData);
~HelloWorld() override;
void onIdle() override;
void onBackendCreated() override;
void onPaint(SkCanvas* canvas) override;
bool onChar(SkUnichar c, uint32_t modifiers) override;
private:
void updateTitle();
sk_app::Window* fWindow;
sk_app::Window::BackendType fBackendType;
SkScalar fRotationAngle;
};
#endif