| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "device/vr/android/gvr/gvr_device.h" | 5 #include "device/vr/android/gvr/gvr_device.h" |
| 6 | 6 |
| 7 #include <math.h> | 7 #include <math.h> |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 | 9 |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 return device; | 127 return device; |
| 128 } | 128 } |
| 129 | 129 |
| 130 VRPosePtr GvrDevice::GetPose() { | 130 VRPosePtr GvrDevice::GetPose() { |
| 131 TRACE_EVENT0("input", "GvrDevice::GetSensorState"); | 131 TRACE_EVENT0("input", "GvrDevice::GetSensorState"); |
| 132 | 132 |
| 133 VRPosePtr pose = VRPose::New(); | 133 VRPosePtr pose = VRPose::New(); |
| 134 | 134 |
| 135 pose->timestamp = base::Time::Now().ToJsTime(); | 135 pose->timestamp = base::Time::Now().ToJsTime(); |
| 136 | 136 |
| 137 // Increment pose frame counter always, even if it's a faked pose. |
| 138 pose->poseNum = ++pose_num_; |
| 139 |
| 137 pose->orientation = mojo::Array<float>::New(4); | 140 pose->orientation = mojo::Array<float>::New(4); |
| 138 | 141 |
| 139 gvr::GvrApi* gvr_api = GetGvrApi(); | 142 gvr::GvrApi* gvr_api = GetGvrApi(); |
| 140 if (!gvr_api) { | 143 if (!gvr_api) { |
| 141 // If we don't have a GvrApi instance return a static forward orientation. | 144 // If we don't have a GvrApi instance return a static forward orientation. |
| 142 pose->orientation[0] = 0.0; | 145 pose->orientation[0] = 0.0; |
| 143 pose->orientation[1] = 0.0; | 146 pose->orientation[1] = 0.0; |
| 144 pose->orientation[2] = 0.0; | 147 pose->orientation[2] = 0.0; |
| 145 pose->orientation[3] = 1.0; | 148 pose->orientation[3] = 1.0; |
| 146 | 149 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 169 pose->orientation[1] = decomposed_transform.quaternion[1]; | 172 pose->orientation[1] = decomposed_transform.quaternion[1]; |
| 170 pose->orientation[2] = decomposed_transform.quaternion[2]; | 173 pose->orientation[2] = decomposed_transform.quaternion[2]; |
| 171 pose->orientation[3] = decomposed_transform.quaternion[3]; | 174 pose->orientation[3] = decomposed_transform.quaternion[3]; |
| 172 | 175 |
| 173 pose->position = mojo::Array<float>::New(3); | 176 pose->position = mojo::Array<float>::New(3); |
| 174 pose->position[0] = decomposed_transform.translate[0]; | 177 pose->position[0] = decomposed_transform.translate[0]; |
| 175 pose->position[1] = decomposed_transform.translate[1]; | 178 pose->position[1] = decomposed_transform.translate[1]; |
| 176 pose->position[2] = decomposed_transform.translate[2]; | 179 pose->position[2] = decomposed_transform.translate[2]; |
| 177 } | 180 } |
| 178 | 181 |
| 182 // Save the underlying GVR pose for use by rendering. It can't use a |
| 183 // VRPosePtr since that's a different data type. |
| 184 delegate_->SetGvrPoseForWebVr(head_mat, pose_num_); |
| 185 |
| 179 return pose; | 186 return pose; |
| 180 } | 187 } |
| 181 | 188 |
| 182 void GvrDevice::ResetPose() { | 189 void GvrDevice::ResetPose() { |
| 183 gvr::GvrApi* gvr_api = GetGvrApi(); | 190 gvr::GvrApi* gvr_api = GetGvrApi(); |
| 184 if (gvr_api) | 191 if (gvr_api) |
| 185 gvr_api->ResetTracking(); | 192 gvr_api->ResetTracking(); |
| 186 } | 193 } |
| 187 | 194 |
| 188 bool GvrDevice::RequestPresent(bool secure_origin) { | 195 bool GvrDevice::RequestPresent(bool secure_origin) { |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 } | 232 } |
| 226 | 233 |
| 227 gvr::GvrApi* GvrDevice::GetGvrApi() { | 234 gvr::GvrApi* GvrDevice::GetGvrApi() { |
| 228 if (!delegate_) | 235 if (!delegate_) |
| 229 return nullptr; | 236 return nullptr; |
| 230 | 237 |
| 231 return delegate_->gvr_api(); | 238 return delegate_->gvr_api(); |
| 232 } | 239 } |
| 233 | 240 |
| 234 } // namespace device | 241 } // namespace device |
| OLD | NEW |