Chromium Code Reviews| 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 6a442569166233bdbd01a36528b954312158b49c..57d5eb070ba709c7f98f5265b57318bf9557853f 100644 |
| --- a/device/vr/android/gvr/gvr_device.cc |
| +++ b/device/vr/android/gvr/gvr_device.cc |
| @@ -55,16 +55,6 @@ 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(); |
| - left_eye->renderWidth = 1024; // render_target_size.width / 2; |
| - left_eye->renderHeight = 1024; // render_target_size.height; |
| - |
| - right_eye->renderWidth = left_eye->renderWidth; |
| - right_eye->renderHeight = left_eye->renderHeight; |
| - |
| gvr::GvrApi* gvr_api = GetGvrApi(); |
| if (!gvr_api) { |
| // We may not be able to get an instance of GvrApi right away, so |
| @@ -75,11 +65,15 @@ mojom::VRDisplayInfoPtr GvrDevice::GetVRDevice() { |
| left_eye->fieldOfView->downDegrees = 45; |
| left_eye->fieldOfView->leftDegrees = 45; |
| left_eye->fieldOfView->rightDegrees = 45; |
| + left_eye->renderWidth = 1024; |
|
mthiesse
2016/11/16 21:30:41
Maybe move this 1024 value used all over the place
klausw
2016/11/16 23:37:39
I've reverted this part of the change to keep the
|
| + left_eye->renderHeight = 1024; |
| right_eye->fieldOfView->upDegrees = 45; |
| right_eye->fieldOfView->downDegrees = 45; |
| right_eye->fieldOfView->leftDegrees = 45; |
| right_eye->fieldOfView->rightDegrees = 45; |
| + right_eye->renderWidth = left_eye->renderHeight; |
| + right_eye->renderHeight = left_eye->renderHeight; |
| left_eye->offset[0] = -0.0; |
| left_eye->offset[1] = -0.0; |
| @@ -89,9 +83,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): 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 +133,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; |
| } |