112d62a7d51a1826e221ffd34224d01c9bec49babdjsollen/*
212d62a7d51a1826e221ffd34224d01c9bec49babdjsollen* Copyright 2016 Google Inc.
312d62a7d51a1826e221ffd34224d01c9bec49babdjsollen*
412d62a7d51a1826e221ffd34224d01c9bec49babdjsollen* Use of this source code is governed by a BSD-style license that can be
512d62a7d51a1826e221ffd34224d01c9bec49babdjsollen* found in the LICENSE file.
612d62a7d51a1826e221ffd34224d01c9bec49babdjsollen*/
712d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
812d62a7d51a1826e221ffd34224d01c9bec49babdjsollen#ifndef Window_android_DEFINED
912d62a7d51a1826e221ffd34224d01c9bec49babdjsollen#define Window_android_DEFINED
1012d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
1112d62a7d51a1826e221ffd34224d01c9bec49babdjsollen#include "../Window.h"
12796c5bb4655a511553970e111c96d90963fb9ae4liyuqian#include "surface_glue_android.h"
1312d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
14345242671587d7273819bfe423be96e4392033e3jvanverthnamespace sk_app {
15345242671587d7273819bfe423be96e4392033e3jvanverth
1612d62a7d51a1826e221ffd34224d01c9bec49babdjsollenclass Window_android : public Window {
1712d62a7d51a1826e221ffd34224d01c9bec49babdjsollenpublic:
182d1ee7936e3536e45c963db004e3b512bb415fd8brianosman    Window_android() : Window() {}
1912d62a7d51a1826e221ffd34224d01c9bec49babdjsollen    ~Window_android() override {}
2012d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
21796c5bb4655a511553970e111c96d90963fb9ae4liyuqian    bool init(SkiaAndroidApp* skiaAndroidApp);
2212d62a7d51a1826e221ffd34224d01c9bec49babdjsollen    void initDisplay(ANativeWindow* window);
23796c5bb4655a511553970e111c96d90963fb9ae4liyuqian    void onDisplayDestroyed();
2412d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
2512d62a7d51a1826e221ffd34224d01c9bec49babdjsollen    void setTitle(const char*) override;
2612d62a7d51a1826e221ffd34224d01c9bec49babdjsollen    void show() override {}
2712d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
28578f064a60b63ddfb00831e9e59a47060bfcefe0csmartdalton    bool attach(BackendType) override;
29566c8e4a36c51cb24d8bb97cc71b3eb26737c012liyuqian    void onInval() override;
30e5a6cd9832eaa7011dee162283ff6470f82a3fdcliyuqian    void setUIState(const Json::Value& state) override;
31566c8e4a36c51cb24d8bb97cc71b3eb26737c012liyuqian
32566c8e4a36c51cb24d8bb97cc71b3eb26737c012liyuqian    void paintIfNeeded();
3312d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
3412d62a7d51a1826e221ffd34224d01c9bec49babdjsollen    bool scaleContentToFit() const override { return true; }
3512d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
3612d62a7d51a1826e221ffd34224d01c9bec49babdjsollenprivate:
37796c5bb4655a511553970e111c96d90963fb9ae4liyuqian    SkiaAndroidApp* fSkiaAndroidApp = nullptr;
386cb70251829a467b146da9bc8925064f33608e48liyuqian    BackendType fBackendType;
3912d62a7d51a1826e221ffd34224d01c9bec49babdjsollen};
4012d62a7d51a1826e221ffd34224d01c9bec49babdjsollen
41345242671587d7273819bfe423be96e4392033e3jvanverth}   // namespace sk_app
42345242671587d7273819bfe423be96e4392033e3jvanverth
4312d62a7d51a1826e221ffd34224d01c9bec49babdjsollen#endif
44