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

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

Issue 2729523002: Re-land^2 WebVR compositor bypass via BrowserMain context + mailbox (Closed)
Patch Set: Created 3 years, 9 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_device_provider.h" 13 #include "device/vr/android/gvr/gvr_device_provider.h"
14 #include "device/vr/vr_device_manager.h" 14 #include "device/vr/vr_device_manager.h"
15 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr.h" 15 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr.h"
16 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr_types.h" 16 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr_types.h"
17 #include "ui/gfx/transform.h" 17 #include "ui/gfx/transform.h"
18 #include "ui/gfx/transform_util.h" 18 #include "ui/gfx/transform_util.h"
19 19
20 #include "gpu/command_buffer/common/mailbox.h"
21
20 namespace device { 22 namespace device {
21 23
22 GvrDevice::GvrDevice(GvrDeviceProvider* provider) 24 GvrDevice::GvrDevice(GvrDeviceProvider* provider)
23 : VRDevice(), gvr_provider_(provider) {} 25 : VRDevice(), gvr_provider_(provider) {}
24 26
25 GvrDevice::~GvrDevice() {} 27 GvrDevice::~GvrDevice() {}
26 28
27 void GvrDevice::GetVRDevice( 29 void GvrDevice::GetVRDevice(
28 const base::Callback<void(mojom::VRDisplayInfoPtr)>& callback) { 30 const base::Callback<void(mojom::VRDisplayInfoPtr)>& callback) {
29 GvrDelegate* delegate = GetGvrDelegate(); 31 GvrDelegate* delegate = GetGvrDelegate();
(...skipping 21 matching lines...) Expand all
51 delegate->SetWebVRSecureOrigin(secure_origin_); 53 delegate->SetWebVRSecureOrigin(secure_origin_);
52 } 54 }
53 55
54 void GvrDevice::ExitPresent() { 56 void GvrDevice::ExitPresent() {
55 gvr_provider_->ExitPresent(); 57 gvr_provider_->ExitPresent();
56 OnExitPresent(); 58 OnExitPresent();
57 } 59 }
58 60
59 void GvrDevice::SubmitFrame(mojom::VRPosePtr pose) { 61 void GvrDevice::SubmitFrame(mojom::VRPosePtr pose) {
60 GvrDelegate* delegate = GetGvrDelegate(); 62 GvrDelegate* delegate = GetGvrDelegate();
61 if (delegate) 63 if (delegate) {
62 delegate->SubmitWebVRFrame(); 64 gpu::Mailbox mailbox;
65 mailbox.SetName(&pose->mailbox->name[0]);
66 delegate->SubmitWebVRFrame(pose->frameId, mailbox);
67 }
63 } 68 }
64 69
65 void GvrDevice::UpdateLayerBounds(int16_t frame_index, 70 void GvrDevice::UpdateLayerBounds(int16_t frame_index,
66 mojom::VRLayerBoundsPtr left_bounds, 71 mojom::VRLayerBoundsPtr left_bounds,
67 mojom::VRLayerBoundsPtr right_bounds) { 72 mojom::VRLayerBoundsPtr right_bounds) {
68 GvrDelegate* delegate = GetGvrDelegate(); 73 GvrDelegate* delegate = GetGvrDelegate();
69 if (!delegate) 74 if (!delegate)
70 return; 75 return;
71 76
72 gvr::Rectf left_gvr_bounds; 77 gvr::Rectf left_gvr_bounds;
(...skipping 30 matching lines...) Expand all
103 } 108 }
104 109
105 GvrDelegate* GvrDevice::GetGvrDelegate() { 110 GvrDelegate* GvrDevice::GetGvrDelegate() {
106 GvrDelegateProvider* delegate_provider = GvrDelegateProvider::GetInstance(); 111 GvrDelegateProvider* delegate_provider = GvrDelegateProvider::GetInstance();
107 if (delegate_provider) 112 if (delegate_provider)
108 return delegate_provider->GetDelegate(); 113 return delegate_provider->GetDelegate();
109 return nullptr; 114 return nullptr;
110 } 115 }
111 116
112 } // namespace device 117 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698