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 71358494c132b368391a79ce7c0c71228120f738..5a01da20b93f634905ea70a7fefcb15c55054959 100644 |
--- a/device/vr/android/gvr/gvr_device.cc |
+++ b/device/vr/android/gvr/gvr_device.cc |
@@ -59,8 +59,9 @@ mojom::VRDisplayInfoPtr GvrDevice::GetVRDevice() { |
// sizes when the phone is in portait mode. Send arbitrary, |
// not-horrifically-wrong values instead. |
// gvr::Sizei render_target_size = gvr_api->GetRecommendedRenderTargetSize(); |
- left_eye->renderWidth = 1024; // render_target_size.width / 2; |
- left_eye->renderHeight = 1024; // render_target_size.height; |
+ gvr::Sizei render_target_size = kFallbackRenderTargetSize; |
+ left_eye->renderWidth = render_target_size.width / 2; |
+ left_eye->renderHeight = render_target_size.height; |
right_eye->renderWidth = left_eye->renderWidth; |
right_eye->renderHeight = left_eye->renderHeight; |
@@ -89,9 +90,22 @@ 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); |
+ |
return device; |
} |
+ // In compositor mode, we have to use the current compositor window's |
+ // surface size. Would be nice to change it, but that needs more browser |
+ // internals to be modified. TODO(klausw,crbug.com/655722): remove this once |
+ // we can pick our own surface size. |
+ gvr::Sizei compositor_size = delegate_->GetWebVRCompositorSurfaceSize(); |
+ left_eye->renderWidth = compositor_size.width / 2; |
+ left_eye->renderHeight = compositor_size.height; |
+ right_eye->renderWidth = left_eye->renderHeight; |
+ right_eye->renderHeight = left_eye->renderHeight; |
+ |
std::string vendor = gvr_api->GetViewerVendor(); |
std::string model = gvr_api->GetViewerModel(); |
device->displayName = vendor + " " + model; |
@@ -126,6 +140,9 @@ mojom::VRDisplayInfoPtr GvrDevice::GetVRDevice() { |
right_eye->offset[1] = -right_eye_mat.m[1][3]; |
right_eye->offset[2] = -right_eye_mat.m[2][3]; |
+ delegate_->SetWebVRRenderSurfaceSize(2 * left_eye->renderWidth, |
+ left_eye->renderHeight); |
+ |
return device; |
} |