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

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

Issue 2901213002: Add SlidingAverage to FPSMeter, use for WebVR prediction time (Closed)
Patch Set: Fix "Complex destructor has an inline body" for = default. Created 3 years, 7 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
« no previous file with comments | « device/vr/android/gvr/gvr_delegate.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « device/vr/android/gvr/gvr_delegate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698