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

Unified Diff: device/vr/android/gvr/gvr_device.cc

Issue 2550803002: WebVR: avoid race conditions for partially-initialized display (Closed)
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/vr/android/gvr/gvr_delegate.h ('k') | third_party/WebKit/Source/modules/vr/VRDisplay.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/vr/android/gvr/gvr_device.cc
diff --git a/device/vr/android/gvr/gvr_device.cc b/device/vr/android/gvr/gvr_device.cc
index 6a8f0611b822e64a3ba1decc56b79affc479045d..eb299f5ef7f418d4d19f368fb4bc6e439de0393d 100644
--- a/device/vr/android/gvr/gvr_device.cc
+++ b/device/vr/android/gvr/gvr_device.cc
@@ -55,11 +55,10 @@ mojom::VRDisplayInfoPtr GvrDevice::GetVRDevice() {
left_eye->offset.resize(3);
right_eye->offset.resize(3);
- // TODO(bajones): GVR has a bug that causes it to return bad render target
- // sizes when the phone is in portait mode. Send arbitrary,
- // not-horrifically-wrong values instead.
- // gvr::Sizei render_target_size = gvr_api->GetRecommendedRenderTargetSize();
- gvr::Sizei render_target_size = kFallbackRenderTargetSize;
+ // Set the render target size to "invalid" to indicate that
+ // we can't render into it yet. Other code uses this to check
+ // for valid state.
+ gvr::Sizei render_target_size = kInvalidRenderTargetSize;
left_eye->renderWidth = render_target_size.width / 2;
left_eye->renderHeight = render_target_size.height;
@@ -90,8 +89,10 @@ mojom::VRDisplayInfoPtr GvrDevice::GetVRDevice() {
right_eye->offset[1] = 0.0;
right_eye->offset[2] = 0.03;
- delegate_->SetWebVRRenderSurfaceSize(2 * left_eye->renderWidth,
- left_eye->renderHeight);
+ // Tell the delegate not to draw yet, to avoid a race condition
+ // (and visible wobble) on entering VR.
+ delegate_->SetWebVRRenderSurfaceSize(kInvalidRenderTargetSize.width,
+ kInvalidRenderTargetSize.height);
return device;
}
« no previous file with comments | « device/vr/android/gvr/gvr_delegate.h ('k') | third_party/WebKit/Source/modules/vr/VRDisplay.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698