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

Side by Side Diff: blimp/client/android/blimp_view.cc

Issue 1430623004: blimp: Add support for input handling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix build error. Created 5 years 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 #include "blimp/client/android/blimp_view.h" 5 #include "blimp/client/android/blimp_view.h"
6 6
7 #include <android/native_window_jni.h> 7 #include <android/native_window_jni.h>
8 8
9 #include "blimp/client/compositor/blimp_compositor_android.h" 9 #include "blimp/client/compositor/blimp_compositor_android.h"
10 #include "jni/BlimpView_jni.h" 10 #include "jni/BlimpView_jni.h"
11 #include "ui/events/android/motion_event_android.h"
11 #include "ui/gfx/geometry/size.h" 12 #include "ui/gfx/geometry/size.h"
12 13
13 namespace blimp { 14 namespace blimp {
14 15
15 // static 16 // static
16 static jlong Init(JNIEnv* env, 17 static jlong Init(JNIEnv* env,
17 const JavaParamRef<jobject>& jobj, 18 const JavaParamRef<jobject>& jobj,
18 jint real_width, 19 jint real_width,
19 jint real_height, 20 jint real_height,
20 jint width, 21 jint width,
21 jint height, 22 jint height,
22 jfloat dp_to_px) { 23 jfloat dp_to_px) {
23 return reinterpret_cast<intptr_t>( 24 return reinterpret_cast<intptr_t>(
24 new BlimpView(env, jobj, gfx::Size(real_width, real_height), 25 new BlimpView(env, jobj, gfx::Size(real_width, real_height),
25 gfx::Size(width, height), dp_to_px)); 26 gfx::Size(width, height), dp_to_px));
26 } 27 }
27 28
28 // static 29 // static
29 bool BlimpView::RegisterJni(JNIEnv* env) { 30 bool BlimpView::RegisterJni(JNIEnv* env) {
30 return RegisterNativesImpl(env); 31 return RegisterNativesImpl(env);
31 } 32 }
32 33
33 BlimpView::BlimpView(JNIEnv* env, 34 BlimpView::BlimpView(JNIEnv* env,
34 const JavaParamRef<jobject>& jobj, 35 const JavaParamRef<jobject>& jobj,
35 const gfx::Size& real_size, 36 const gfx::Size& real_size,
36 const gfx::Size& size, 37 const gfx::Size& size,
37 float dp_to_px) 38 float dp_to_px)
38 : compositor_(BlimpCompositorAndroid::Create(real_size, size, dp_to_px)), 39 : device_scale_factor_(dp_to_px),
40 compositor_(BlimpCompositorAndroid::Create(real_size, size, dp_to_px)),
39 current_surface_format_(0), 41 current_surface_format_(0),
40 window_(gfx::kNullAcceleratedWidget) { 42 window_(gfx::kNullAcceleratedWidget) {
41 java_obj_.Reset(env, jobj); 43 java_obj_.Reset(env, jobj);
42 } 44 }
43 45
44 BlimpView::~BlimpView() { 46 BlimpView::~BlimpView() {
45 ReleaseAcceleratedWidget(); 47 ReleaseAcceleratedWidget();
46 } 48 }
47 49
48 void BlimpView::Destroy(JNIEnv* env, jobject jobj) { 50 void BlimpView::Destroy(JNIEnv* env, jobject jobj) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 89
88 void BlimpView::ReleaseAcceleratedWidget() { 90 void BlimpView::ReleaseAcceleratedWidget() {
89 if (window_ == gfx::kNullAcceleratedWidget) 91 if (window_ == gfx::kNullAcceleratedWidget)
90 return; 92 return;
91 93
92 compositor_->ReleaseAcceleratedWidget(); 94 compositor_->ReleaseAcceleratedWidget();
93 ANativeWindow_release(window_); 95 ANativeWindow_release(window_);
94 window_ = gfx::kNullAcceleratedWidget; 96 window_ = gfx::kNullAcceleratedWidget;
95 } 97 }
96 98
99 jboolean BlimpView::OnTouchEvent(JNIEnv* env,
100 jobject obj,
101 jobject motion_event,
102 jlong time_ms,
103 jint android_action,
104 jint pointer_count,
105 jint history_size,
106 jint action_index,
107 jfloat pos_x_0,
108 jfloat pos_y_0,
109 jfloat pos_x_1,
110 jfloat pos_y_1,
111 jint pointer_id_0,
112 jint pointer_id_1,
113 jfloat touch_major_0,
114 jfloat touch_major_1,
115 jfloat touch_minor_0,
116 jfloat touch_minor_1,
117 jfloat orientation_0,
118 jfloat orientation_1,
119 jfloat tilt_0,
120 jfloat tilt_1,
121 jfloat raw_pos_x,
122 jfloat raw_pos_y,
123 jint android_tool_type_0,
124 jint android_tool_type_1,
125 jint android_button_state,
126 jint android_meta_state) {
127 ui::MotionEventAndroid::Pointer pointer0(pointer_id_0,
128 pos_x_0,
129 pos_y_0,
130 touch_major_0,
131 touch_minor_0,
132 orientation_0,
133 tilt_0,
134 android_tool_type_0);
135 ui::MotionEventAndroid::Pointer pointer1(pointer_id_1,
136 pos_x_1,
137 pos_y_1,
138 touch_major_1,
139 touch_minor_1,
140 orientation_1,
141 tilt_1,
142 android_tool_type_1);
143 ui::MotionEventAndroid event(1.f / device_scale_factor_,
144 env,
145 motion_event,
146 time_ms,
147 android_action,
148 pointer_count,
149 history_size,
150 action_index,
151 android_button_state,
152 android_meta_state,
153 raw_pos_x - pos_x_0,
154 raw_pos_y - pos_y_0,
155 pointer0,
156 pointer1);
157
158 return compositor_->OnTouchEvent(event);
159 }
160
97 } // namespace blimp 161 } // namespace blimp
OLDNEW
« no previous file with comments | « blimp/client/android/blimp_view.h ('k') | blimp/client/android/java/src/org/chromium/blimp/BlimpView.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698