Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Side by Side Diff: sky/shell/sky_view.h

Issue 880443003: Plumb resize notifications around sky/shell (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: git cl format Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SKY_SHELL_SKY_VIEW_H_ 5 #ifndef SKY_SHELL_SKY_VIEW_H_
6 #define SKY_SHELL_SKY_VIEW_H_ 6 #define SKY_SHELL_SKY_VIEW_H_
7 7
8 #include "base/android/jni_weak_ref.h" 8 #include "base/android/jni_weak_ref.h"
9 #include "base/android/scoped_java_ref.h" 9 #include "base/android/scoped_java_ref.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "ui/gfx/native_widget_types.h" 11 #include "base/memory/weak_ptr.h"
12 #include "base/single_thread_task_runner.h"
13 #include "sky/shell/gpu_delegate.h"
14 #include "sky/shell/ui_delegate.h"
12 15
13 struct ANativeWindow; 16 struct ANativeWindow;
14 17
15 namespace sky { 18 namespace sky {
16 namespace shell { 19 namespace shell {
17 20
18 class SkyView { 21 class SkyView {
19 public: 22 public:
23 struct Config {
24 base::WeakPtr<GPUDelegate> gpu_delegate;
25 scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner;
eseidel 2015/02/05 05:57:28 Is it OK to hold the runner after the delegate goe
abarth-chromium 2015/02/05 06:16:23 Yes, base::SingleThreadTaskRunner is designed to b
26
27 base::WeakPtr<UIDelegate> ui_delegate;
28 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner;
29 };
30
20 static bool Register(JNIEnv* env); 31 static bool Register(JNIEnv* env);
21 32
22 class Delegate { 33 explicit SkyView(const Config& config);
23 public:
24 virtual void OnAcceleratedWidgetAvailable(
25 gfx::AcceleratedWidget widget) = 0;
26 virtual void OnDestroyed() = 0;
27
28 protected:
29 virtual ~Delegate();
30 };
31
32 explicit SkyView(Delegate* delegate);
33 ~SkyView(); 34 ~SkyView();
34 35
35 void Init();
36
37 // Called from Java 36 // Called from Java
38 void Destroy(JNIEnv* env, jobject obj); 37 void Destroy(JNIEnv* env, jobject obj);
39 void SurfaceCreated(JNIEnv* env, jobject obj, jobject jsurface); 38 void SurfaceCreated(JNIEnv* env, jobject obj, jobject jsurface);
40 void SurfaceDestroyed(JNIEnv* env, jobject obj); 39 void SurfaceDestroyed(JNIEnv* env, jobject obj);
41 void SurfaceSetSize(JNIEnv* env, 40 void SurfaceSetSize(JNIEnv* env,
42 jobject obj, 41 jobject obj,
43 jint width, 42 jint width,
44 jint height, 43 jint height,
45 jfloat density); 44 jfloat density);
46 45
47 private: 46 private:
48 void ReleaseWindow(); 47 void ReleaseWindow();
49 48
50 Delegate* delegate_; 49 Config config_;
51 ANativeWindow* window_; 50 ANativeWindow* window_;
52 51
53 DISALLOW_COPY_AND_ASSIGN(SkyView); 52 DISALLOW_COPY_AND_ASSIGN(SkyView);
54 }; 53 };
55 54
56 } // namespace shell 55 } // namespace shell
57 } // namespace sky 56 } // namespace sky
58 57
59 #endif // SKY_SHELL_SKY_VIEW_H_ 58 #endif // SKY_SHELL_SKY_VIEW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698