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

Side by Side Diff: device/vr/android/gvr/gvr_device.cc

Issue 2814443004: Refactor VR math off of GVR types, onto gfx types where possible. (Closed)
Patch Set: Fix tests Created 3 years, 8 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 unified diff | Download patch
OLDNEW
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"
11 #include "base/trace_event/trace_event.h" 11 #include "base/trace_event/trace_event.h"
12 #include "device/vr/android/gvr/gvr_delegate.h" 12 #include "device/vr/android/gvr/gvr_delegate.h"
13 #include "device/vr/android/gvr/gvr_delegate_provider.h" 13 #include "device/vr/android/gvr/gvr_delegate_provider.h"
14 #include "device/vr/android/gvr/gvr_device_provider.h" 14 #include "device/vr/android/gvr/gvr_device_provider.h"
15 #include "device/vr/vr_device_manager.h" 15 #include "device/vr/vr_device_manager.h"
16 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr.h" 16 #include "device/vr/vr_types.h"
17 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr_types.h"
18 #include "ui/gfx/transform.h" 17 #include "ui/gfx/transform.h"
19 #include "ui/gfx/transform_util.h" 18 #include "ui/gfx/transform_util.h"
20 19
21 namespace device { 20 namespace device {
22 21
23 GvrDevice::GvrDevice(GvrDeviceProvider* provider) 22 GvrDevice::GvrDevice(GvrDeviceProvider* provider)
24 : VRDevice(), gvr_provider_(provider) {} 23 : VRDevice(), gvr_provider_(provider) {}
25 24
26 GvrDevice::~GvrDevice() {} 25 GvrDevice::~GvrDevice() {}
27 26
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 61
63 void GvrDevice::UpdateLayerBounds(int16_t frame_index, 62 void GvrDevice::UpdateLayerBounds(int16_t frame_index,
64 mojom::VRLayerBoundsPtr left_bounds, 63 mojom::VRLayerBoundsPtr left_bounds,
65 mojom::VRLayerBoundsPtr right_bounds, 64 mojom::VRLayerBoundsPtr right_bounds,
66 int16_t source_width, 65 int16_t source_width,
67 int16_t source_height) { 66 int16_t source_height) {
68 GvrDelegate* delegate = GetGvrDelegate(); 67 GvrDelegate* delegate = GetGvrDelegate();
69 if (!delegate) 68 if (!delegate)
70 return; 69 return;
71 70
72 gvr::Rectf left_gvr_bounds; 71 gfx::RectF left_gvr_bounds(left_bounds->left, left_bounds->top,
73 left_gvr_bounds.left = left_bounds->left; 72 left_bounds->width, left_bounds->height);
74 left_gvr_bounds.top = 1.0f - left_bounds->top; 73 gfx::RectF right_gvr_bounds(right_bounds->left, right_bounds->top,
75 left_gvr_bounds.right = left_bounds->left + left_bounds->width; 74 right_bounds->width, right_bounds->height);
76 left_gvr_bounds.bottom = 1.0f - (left_bounds->top + left_bounds->height); 75 gfx::Size source_size(source_width, source_height);
77
78 gvr::Rectf right_gvr_bounds;
79 right_gvr_bounds.left = right_bounds->left;
80 right_gvr_bounds.top = 1.0f - right_bounds->top;
81 right_gvr_bounds.right = right_bounds->left + right_bounds->width;
82 right_gvr_bounds.bottom = 1.0f - (right_bounds->top + right_bounds->height);
83
84 gvr::Sizei source_size = {source_width, source_height};
85 delegate->UpdateWebVRTextureBounds(frame_index, left_gvr_bounds, 76 delegate->UpdateWebVRTextureBounds(frame_index, left_gvr_bounds,
86 right_gvr_bounds, source_size); 77 right_gvr_bounds, source_size);
87 } 78 }
88 79
89 void GvrDevice::GetVRVSyncProvider(mojom::VRVSyncProviderRequest request) { 80 void GvrDevice::GetVRVSyncProvider(mojom::VRVSyncProviderRequest request) {
90 GvrDelegate* delegate = GetGvrDelegate(); 81 GvrDelegate* delegate = GetGvrDelegate();
91 if (delegate) 82 if (delegate)
92 delegate->OnVRVsyncProviderRequest(std::move(request)); 83 delegate->OnVRVsyncProviderRequest(std::move(request));
93 } 84 }
94 85
95 void GvrDevice::OnDelegateChanged() { 86 void GvrDevice::OnDelegateChanged() {
96 GvrDelegate* delegate = GetGvrDelegate(); 87 GvrDelegate* delegate = GetGvrDelegate();
97 // Notify the clients that this device has changed 88 // Notify the clients that this device has changed
98 if (delegate) 89 if (delegate)
99 delegate->SetWebVRSecureOrigin(secure_origin_); 90 delegate->SetWebVRSecureOrigin(secure_origin_);
100 91
101 OnChanged(); 92 OnChanged();
102 } 93 }
103 94
104 GvrDelegate* GvrDevice::GetGvrDelegate() { 95 GvrDelegate* GvrDevice::GetGvrDelegate() {
105 GvrDelegateProvider* delegate_provider = gvr_provider_->GetDelegateProvider(); 96 GvrDelegateProvider* delegate_provider = gvr_provider_->GetDelegateProvider();
106 if (delegate_provider) 97 if (delegate_provider)
107 return delegate_provider->GetDelegate(); 98 return delegate_provider->GetDelegate();
108 return nullptr; 99 return nullptr;
109 } 100 }
110 101
111 } // namespace device 102 } // namespace device
OLDNEW
« no previous file with comments | « device/vr/android/gvr/gvr_delegate.cc ('k') | device/vr/android/gvr/gvr_gamepad_data_fetcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698