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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java

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: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java
index 3eb8b8840d746e6c18e0585cf5cce5d4a8c107ac..5801e2af0f148dc88526a4caeb31665a86c6dd2f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java
@@ -15,6 +15,7 @@ import org.chromium.base.ActivityState;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.Callback;
+import org.chromium.base.annotations.CalledByNative;
import org.chromium.ui.base.AndroidPermissionDelegate;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.display.DisplayAndroid;
@@ -28,6 +29,8 @@ import java.util.Arrays;
*/
public class VrWindowAndroid extends WindowAndroid
implements ApplicationStatus.ActivityStateListener {
+ private boolean mPendingVSync = false;
+ private boolean mWebVRPresenting = false;
public VrWindowAndroid(Context context, DisplayAndroid display) {
super(context, display);
@@ -74,6 +77,23 @@ public class VrWindowAndroid extends WindowAndroid
}
}
+ @Override
+ @CalledByNative
boliu 2017/03/15 17:15:58 fwiw, @CalledByNative is used for generating c++ j
+ protected void requestVSyncUpdate() {
+ if (mWebVRPresenting) {
+ mPendingVSync = true;
+ return;
+ }
+ super.requestVSyncUpdate();
+ }
+
+ public void onWebVRPresentationChanged(boolean presenting) {
+ mWebVRPresenting = presenting;
+ setVSyncPaused(mWebVRPresenting);
+
+ if (!mWebVRPresenting && mPendingVSync) super.requestVSyncUpdate();
+ }
+
// We can't request permissions inside of VR without getting kicked out of VR.
// TODO(mthiesse): Should we add some UI to ask the user to exit VR, then accept the permission?
// There's also the possibility that GVR will handle this in the future.

Powered by Google App Engine
This is Rietveld 408576698