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

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: Further cleanups 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 "gpu/command_buffer/common/mailbox.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.h"
16 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr_types.h" 17 #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/ gvr_types.h"
17 #include "ui/gfx/transform.h" 18 #include "ui/gfx/transform.h"
18 #include "ui/gfx/transform_util.h" 19 #include "ui/gfx/transform_util.h"
19 20
20 namespace device { 21 namespace device {
21 22
22 GvrDevice::GvrDevice(GvrDeviceProvider* provider) 23 GvrDevice::GvrDevice(GvrDeviceProvider* provider)
23 : VRDevice(), gvr_provider_(provider) {} 24 : VRDevice(), gvr_provider_(provider) {}
24 25
(...skipping 24 matching lines...) Expand all
49 GvrDelegate* delegate = GetGvrDelegate(); 50 GvrDelegate* delegate = GetGvrDelegate();
50 if (delegate) 51 if (delegate)
51 delegate->SetWebVRSecureOrigin(secure_origin_); 52 delegate->SetWebVRSecureOrigin(secure_origin_);
52 } 53 }
53 54
54 void GvrDevice::ExitPresent() { 55 void GvrDevice::ExitPresent() {
55 gvr_provider_->ExitPresent(); 56 gvr_provider_->ExitPresent();
56 OnExitPresent(); 57 OnExitPresent();
57 } 58 }
58 59
59 void GvrDevice::SubmitFrame(mojom::VRPosePtr pose) { 60 void GvrDevice::SubmitFrame(
61 mojom::VRPosePtr pose,
62 mojom::VRSubmitFrameClientPtr submit_client) {
60 GvrDelegate* delegate = GetGvrDelegate(); 63 GvrDelegate* delegate = GetGvrDelegate();
61 if (delegate) 64 if (delegate) {
62 delegate->SubmitWebVRFrame(); 65 gpu::Mailbox mailbox;
66 mailbox.SetName(&pose->mailbox->name[0]);
67 delegate->SubmitWebVRFrame(
68 pose->frameId, mailbox, std::move(submit_client));
69 }
63 } 70 }
64 71
65 void GvrDevice::UpdateLayerBounds(int16_t frame_index, 72 void GvrDevice::UpdateLayerBounds(int16_t frame_index,
66 mojom::VRLayerBoundsPtr left_bounds, 73 mojom::VRLayerBoundsPtr left_bounds,
67 mojom::VRLayerBoundsPtr right_bounds) { 74 mojom::VRLayerBoundsPtr right_bounds) {
68 GvrDelegate* delegate = GetGvrDelegate(); 75 GvrDelegate* delegate = GetGvrDelegate();
69 if (!delegate) 76 if (!delegate)
70 return; 77 return;
71 78
72 gvr::Rectf left_gvr_bounds; 79 gvr::Rectf left_gvr_bounds;
(...skipping 30 matching lines...) Expand all
103 } 110 }
104 111
105 GvrDelegate* GvrDevice::GetGvrDelegate() { 112 GvrDelegate* GvrDevice::GetGvrDelegate() {
106 GvrDelegateProvider* delegate_provider = GvrDelegateProvider::GetInstance(); 113 GvrDelegateProvider* delegate_provider = GvrDelegateProvider::GetInstance();
107 if (delegate_provider) 114 if (delegate_provider)
108 return delegate_provider->GetDelegate(); 115 return delegate_provider->GetDelegate();
109 return nullptr; 116 return nullptr;
110 } 117 }
111 118
112 } // namespace device 119 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698