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

Unified Diff: ui/android/window_android.cc

Issue 2754493002: Expose VSync pausing through WindowAndroid and pause VSync during webVR presentation (Closed)
Patch Set: Fix behaviour Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: ui/android/window_android.cc
diff --git a/ui/android/window_android.cc b/ui/android/window_android.cc
index 8a0c8c368ff47df37ddff87326fe0b8819359655..7d4058041ed4bf3552329f51ec38da4726f09d23 100644
--- a/ui/android/window_android.cc
+++ b/ui/android/window_android.cc
@@ -43,6 +43,7 @@ class WindowAndroid::WindowBeginFrameSource : public cc::BeginFrameSource {
bool IsThrottled() const override { return true; }
void OnVSync(base::TimeTicks frame_time, base::TimeDelta vsync_period);
+ void OnPauseChanged(bool paused);
private:
WindowAndroid* const window_;
@@ -108,6 +109,11 @@ void WindowAndroid::WindowBeginFrameSource::OnVSync(
obs.OnBeginFrame(last_begin_frame_args_);
}
+void WindowAndroid::WindowBeginFrameSource::OnPauseChanged(bool paused) {
+ for (auto& obs : observers_)
+ obs.OnBeginFrameSourcePausedChanged(paused);
+}
+
WindowAndroid::WindowAndroid(JNIEnv* env, jobject obj, int display_id)
: display_id_(display_id),
compositor_(NULL),
@@ -244,6 +250,12 @@ void WindowAndroid::OnActivityStarted(JNIEnv* env,
observer.OnActivityStarted();
}
+void WindowAndroid::SetVSyncPaused(JNIEnv* env,
+ const JavaParamRef<jobject>& obj,
+ bool paused) {
+ begin_frame_source_->OnPauseChanged(paused);
+}
+
bool WindowAndroid::HasPermission(const std::string& permission) {
JNIEnv* env = AttachCurrentThread();
return Java_WindowAndroid_hasPermission(

Powered by Google App Engine
This is Rietveld 408576698