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

Side by Side Diff: ui/base/android/window_android.cc

Issue 285373008: Android: Decouple animate from vsync (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sami's comments Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ui/base/android/window_android.h" 5 #include "ui/base/android/window_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h" 8 #include "base/android/jni_array.h"
9 #include "base/android/jni_weak_ref.h" 9 #include "base/android/jni_weak_ref.h"
10 #include "base/android/scoped_java_ref.h" 10 #include "base/android/scoped_java_ref.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 observer_list_, 88 observer_list_,
89 OnDetachCompositor()); 89 OnDetachCompositor());
90 observer_list_.Clear(); 90 observer_list_.Clear();
91 } 91 }
92 92
93 void WindowAndroid::RequestVSyncUpdate() { 93 void WindowAndroid::RequestVSyncUpdate() {
94 JNIEnv* env = AttachCurrentThread(); 94 JNIEnv* env = AttachCurrentThread();
95 Java_WindowAndroid_requestVSyncUpdate(env, GetJavaObject().obj()); 95 Java_WindowAndroid_requestVSyncUpdate(env, GetJavaObject().obj());
96 } 96 }
97 97
98 void WindowAndroid::SetNeedsAnimate() {
99 if (compositor_)
100 compositor_->SetNeedsAnimate();
101 }
102
103 void WindowAndroid::Animate(base::TimeTicks begin_frame_time) {
104 FOR_EACH_OBSERVER(
105 WindowAndroidObserver, observer_list_, OnAnimate(begin_frame_time));
106 }
107
98 void WindowAndroid::OnVSync(JNIEnv* env, jobject obj, jlong time_micros) { 108 void WindowAndroid::OnVSync(JNIEnv* env, jobject obj, jlong time_micros) {
99 base::TimeTicks frame_time(base::TimeTicks::FromInternalValue(time_micros)); 109 base::TimeTicks frame_time(base::TimeTicks::FromInternalValue(time_micros));
100 FOR_EACH_OBSERVER( 110 FOR_EACH_OBSERVER(
101 WindowAndroidObserver, 111 WindowAndroidObserver,
102 observer_list_, 112 observer_list_,
103 OnVSync(frame_time, vsync_period_)); 113 OnVSync(frame_time, vsync_period_));
104 if (compositor_) 114 if (compositor_)
105 compositor_->OnVSync(frame_time, vsync_period_); 115 compositor_->OnVSync(frame_time, vsync_period_);
106 } 116 }
107 117
108 // ---------------------------------------------------------------------------- 118 // ----------------------------------------------------------------------------
109 // Native JNI methods 119 // Native JNI methods
110 // ---------------------------------------------------------------------------- 120 // ----------------------------------------------------------------------------
111 121
112 jlong Init(JNIEnv* env, jobject obj, jlong vsync_period) { 122 jlong Init(JNIEnv* env, jobject obj, jlong vsync_period) {
113 WindowAndroid* window = new WindowAndroid(env, obj, vsync_period); 123 WindowAndroid* window = new WindowAndroid(env, obj, vsync_period);
114 return reinterpret_cast<intptr_t>(window); 124 return reinterpret_cast<intptr_t>(window);
115 } 125 }
116 126
117 } // namespace ui 127 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698