| Index: device/vr/android/gvr/gvr_delegate.cc
|
| diff --git a/device/vr/android/gvr/gvr_delegate.cc b/device/vr/android/gvr/gvr_delegate.cc
|
| index 9b05efcefeeb77955fe9ffca9b251a128db57fda..ceb673c389c3bf642e49449e9e71a9d04185ca63 100644
|
| --- a/device/vr/android/gvr/gvr_delegate.cc
|
| +++ b/device/vr/android/gvr/gvr_delegate.cc
|
| @@ -118,9 +118,10 @@ mojom::VRPosePtr GvrDelegate::VRPosePtrFromGvrPose(const vr::Mat4f& head_mat) {
|
|
|
| /* static */
|
| void GvrDelegate::GetGvrPoseWithNeckModel(gvr::GvrApi* gvr_api,
|
| - vr::Mat4f* out) {
|
| + vr::Mat4f* out,
|
| + int64_t prediction_time) {
|
| gvr::ClockTimePoint target_time = gvr::GvrApi::GetTimePointNow();
|
| - target_time.monotonic_system_time_nanos += kPredictionTimeWithoutVsyncNanos;
|
| + target_time.monotonic_system_time_nanos += prediction_time;
|
|
|
| gvr::Mat4f head_mat = gvr_api->ApplyNeckModel(
|
| gvr_api->GetHeadSpaceFromStartSpaceRotation(target_time), 1.0f);
|
| @@ -129,11 +130,18 @@ void GvrDelegate::GetGvrPoseWithNeckModel(gvr::GvrApi* gvr_api,
|
| }
|
|
|
| /* static */
|
| +void GvrDelegate::GetGvrPoseWithNeckModel(gvr::GvrApi* gvr_api,
|
| + vr::Mat4f* out) {
|
| + GetGvrPoseWithNeckModel(gvr_api, out, kPredictionTimeWithoutVsyncNanos);
|
| +}
|
| +
|
| +/* static */
|
| mojom::VRPosePtr GvrDelegate::GetVRPosePtrWithNeckModel(
|
| gvr::GvrApi* gvr_api,
|
| - vr::Mat4f* head_mat_out) {
|
| + vr::Mat4f* head_mat_out,
|
| + int64_t prediction_time) {
|
| gvr::ClockTimePoint target_time = gvr::GvrApi::GetTimePointNow();
|
| - target_time.monotonic_system_time_nanos += kPredictionTimeWithoutVsyncNanos;
|
| + target_time.monotonic_system_time_nanos += prediction_time;
|
|
|
| gvr::Mat4f gvr_head_mat = gvr_api->ApplyNeckModel(
|
| gvr_api->GetHeadSpaceFromStartSpaceRotation(target_time), 1.0f);
|
| @@ -166,6 +174,14 @@ mojom::VRPosePtr GvrDelegate::GetVRPosePtrWithNeckModel(
|
| }
|
|
|
| /* static */
|
| +mojom::VRPosePtr GvrDelegate::GetVRPosePtrWithNeckModel(
|
| + gvr::GvrApi* gvr_api,
|
| + vr::Mat4f* head_mat_out) {
|
| + return GetVRPosePtrWithNeckModel(gvr_api, head_mat_out,
|
| + kPredictionTimeWithoutVsyncNanos);
|
| +}
|
| +
|
| +/* static */
|
| gfx::Size GvrDelegate::GetRecommendedWebVrSize(gvr::GvrApi* gvr_api) {
|
| // Pick a reasonable default size for the WebVR transfer surface
|
| // based on a downscaled 1:1 render resolution. This size will also
|
|
|