Chromium Code Reviews| Index: chrome/browser/android/vr_shell/vr_shell_gl.cc |
| diff --git a/chrome/browser/android/vr_shell/vr_shell_gl.cc b/chrome/browser/android/vr_shell/vr_shell_gl.cc |
| index a2ac61588d22344527cf9a215cd35587f0e756c6..2f4daab5b06f5caa1f950066e869b5a4e50118da 100644 |
| --- a/chrome/browser/android/vr_shell/vr_shell_gl.cc |
| +++ b/chrome/browser/android/vr_shell/vr_shell_gl.cc |
| @@ -8,7 +8,6 @@ |
| #include "base/metrics/histogram_macros.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "chrome/browser/android/vr_shell/ui_elements.h" |
| -#include "chrome/browser/android/vr_shell/ui_interface.h" |
| #include "chrome/browser/android/vr_shell/ui_scene.h" |
| #include "chrome/browser/android/vr_shell/vr_controller.h" |
| #include "chrome/browser/android/vr_shell/vr_gl_util.h" |
| @@ -172,14 +171,14 @@ int GetPixelEncodedPoseIndexByte() { |
| } // namespace |
| VrShellGl::VrShellGl( |
| - VrShell* vr_shell, |
| const base::WeakPtr<VrShell>& weak_vr_shell, |
| const base::WeakPtr<VrInputManager>& content_input_manager, |
| const base::WeakPtr<VrInputManager>& ui_input_manager, |
| scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner, |
| - gvr_context* gvr_api) |
| - : task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| - vr_shell_(vr_shell), |
| + gvr_context* gvr_api, |
| + bool initially_web_vr) |
| + : web_vr_mode_(initially_web_vr), |
| + task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| weak_vr_shell_(weak_vr_shell), |
| content_input_manager_(content_input_manager), |
| ui_input_manager_(ui_input_manager), |
| @@ -383,28 +382,16 @@ void VrShellGl::InitializeRenderer() { |
| void VrShellGl::UpdateController(const gvr::Vec3f& forward_vector) { |
| controller_->UpdateState(); |
| -#if defined(ENABLE_VR_SHELL) |
| - // TODO(mthiesse): Fix menu button handling, which should be posted to the UI |
| - // thread instead of handled here. |
| // Note that button up/down state is transient, so ButtonUpHappened only |
| // returns true for a single frame (and we're guaranteed not to miss it). |
| if (controller_->ButtonUpHappened( |
| gvr::ControllerButton::GVR_CONTROLLER_BUTTON_APP)) { |
| -// html_interface_->SetMenuMode(!html_interface_->GetMenuMode()); |
| - |
| - // TODO(mthiesse): The page is no longer visible when in menu mode. We |
| - // should unfocus or otherwise let it know it's hidden. |
| -// if (html_interface_->GetMode() == UiInterface::Mode::WEB_VR) { |
| -// const auto&& task = html_interface_->GetMenuMode() ? |
| -// &device::GvrDeviceProvider::OnDisplayBlur : |
| -// &device::GvrDeviceProvider::OnDisplayFocus; |
| -// main_thread_task_runner_->PostTask( |
| -// FROM_HERE, base::Bind(task, delegate_->GetDeviceProvider())); |
| -// } |
| + main_thread_task_runner_->PostTask( |
| + FROM_HERE, base::Bind(&VrShell::AppButtonPressed, weak_vr_shell_)); |
| } |
| -#endif |
| - if (vr_shell_->GetUiInterface()->GetMode() == UiInterface::Mode::WEB_VR) { |
| + |
| + if (web_vr_mode_) { |
| // Process screen touch events for Cardboard button compatibility. |
| // Also send tap events for controller "touchpad click" events. |
| if (touch_pending_ || controller_->ButtonUpHappened( |
| @@ -612,7 +599,7 @@ void VrShellGl::DrawFrame() { |
| // TODO(klausw): Fix this. Resizing buffers here leads to webVR mode showing |
| // nothing but a black screen. |
| -// if (vr_shell_->GetUiInterface()->GetMode() == UiInterface::Mode::WEB_VR) { |
| +// if (web_vr_mode_) { |
| // // If needed, resize the primary buffer for use with WebVR. |
| // if (render_size_primary_ != render_size_primary_webvr_) { |
| // if (!render_size_primary_webvr_.width) { |
| @@ -654,7 +641,7 @@ void VrShellGl::DrawFrame() { |
| UpdateController(GetForwardVector(head_pose)); |
| - if (vr_shell_->GetUiInterface()->GetMode() == UiInterface::Mode::WEB_VR) { |
| + if (web_vr_mode_) { |
| DrawWebVr(); |
| // When using async reprojection, we need to know which pose was used in |
| @@ -712,7 +699,7 @@ void VrShellGl::DrawVrShell(const gvr::Mat4f& head_pose, |
| } |
| } |
| - if (vr_shell_->GetUiInterface()->GetMode() == UiInterface::Mode::WEB_VR) { |
| + if (web_vr_mode_) { |
| // WebVR is incompatible with 3D world compositing since the |
| // depth buffer was already populated with unknown scaling - the |
| // WebVR app has full control over zNear/zFar. Just leave the |
| @@ -795,8 +782,7 @@ void VrShellGl::DrawUiView(const gvr::Mat4f* head_pose, |
| view_matrix); |
| DrawElements(render_matrix, elements); |
| - if (head_pose != nullptr && |
| - vr_shell_->GetUiInterface()->GetMode() != UiInterface::Mode::WEB_VR) { |
| + if (head_pose != nullptr && !web_vr_mode_) { |
| DrawCursor(render_matrix); |
| } |
| } |
| @@ -938,11 +924,7 @@ void VrShellGl::OnResume() { |
| } |
| void VrShellGl::SetWebVrMode(bool enabled) { |
|
bshe
2016/12/14 16:06:46
Is this function ever being called?
mthiesse
2016/12/14 16:20:43
Yes, VrShell::SetWebVrMode posts to it.
bshe
2016/12/14 17:36:51
dooh. Missed that...
|
| - if (enabled) { |
| - vr_shell_->GetUiInterface()->SetMode(UiInterface::Mode::WEB_VR); |
| - } else { |
| - vr_shell_->GetUiInterface()->SetMode(UiInterface::Mode::STANDARD); |
| - } |
| + web_vr_mode_ = enabled; |
| } |
| void VrShellGl::UpdateWebVRTextureBounds(const gvr::Rectf& left_bounds, |