Index: chrome/browser/android/vr_shell/vr_shell.h |
diff --git a/chrome/browser/android/vr_shell/vr_shell.h b/chrome/browser/android/vr_shell/vr_shell.h |
index deb1f1fefdd8dffe017701b027c1dfb4aff4c912..751207af22fa37fcb1a9e1a62511f64d429ef789 100644 |
--- a/chrome/browser/android/vr_shell/vr_shell.h |
+++ b/chrome/browser/android/vr_shell/vr_shell.h |
@@ -32,6 +32,10 @@ namespace content { |
class WebContents; |
} |
+namespace gpu { |
+struct MailboxHolder; |
+} |
+ |
namespace ui { |
class WindowAndroid; |
} |
@@ -169,8 +173,10 @@ class VrShell : public device::GvrDelegate, content::WebContentsObserver { |
static device::mojom::VRPosePtr VRPosePtrFromGvrPose(gvr::Mat4f head_mat); |
static device::mojom::VRDisplayInfoPtr CreateVRDisplayInfo( |
gvr::GvrApi* gvr_api, |
- gvr::Sizei compositor_size, |
+ gvr::Sizei recommended_size, |
uint32_t device_id); |
+ void OnSubmitWebVRFrameTransferred(int frame_index); |
+ void OnSubmitWebVRFrameRendered(int frame_index); |
private: |
~VrShell() override; |
@@ -186,10 +192,14 @@ class VrShell : public device::GvrDelegate, content::WebContentsObserver { |
// device::GvrDelegate implementation |
void SetWebVRSecureOrigin(bool secure_origin) override; |
- void SubmitWebVRFrame() override; |
+ void SubmitWebVRFrame( |
+ int16_t frame_index, |
+ const gpu::MailboxHolder& mailbox, |
+ device::mojom::VRSubmitFrameClientPtr submit_client) override; |
void UpdateWebVRTextureBounds(int16_t frame_index, |
const gvr::Rectf& left_bounds, |
- const gvr::Rectf& right_bounds) override; |
+ const gvr::Rectf& right_bounds, |
+ const gvr::Sizei& source_size) override; |
void OnVRVsyncProviderRequest( |
device::mojom::VRVSyncProviderRequest request) override; |
void UpdateVSyncInterval(int64_t timebase_nanos, |
@@ -207,6 +217,9 @@ class VrShell : public device::GvrDelegate, content::WebContentsObserver { |
std::unique_ptr<UiInterface> html_interface_; |
bool content_paused_ = false; |
bool webvr_mode_ = false; |
+ std::map<int, device::mojom::VRSubmitFrameClientPtr> webvr_submit_clients_; |
+ std::map<int, bool> webvr_submit_client_transferring_; |
+ std::map<int, bool> webvr_submit_client_rendering_; |
content::WebContents* main_contents_ = nullptr; |
base::android::ScopedJavaGlobalRef<jobject> j_motion_event_synthesizer_; |