Chromium Code Reviews| Index: chrome/browser/android/vr_shell/ui_scene_manager.cc |
| diff --git a/chrome/browser/android/vr_shell/ui_scene_manager.cc b/chrome/browser/android/vr_shell/ui_scene_manager.cc |
| index 430e8e1274e97cf54d17b64dade843af747937dd..9585f9887148bc9b4e7738d191c8c0d66795b619 100644 |
| --- a/chrome/browser/android/vr_shell/ui_scene_manager.cc |
| +++ b/chrome/browser/android/vr_shell/ui_scene_manager.cc |
| @@ -48,18 +48,32 @@ static constexpr float kLoadingIndicatorHeight = 0.008 * kUrlBarDistance; |
| static constexpr float kLoadingIndicatorOffset = |
| -0.016 * kUrlBarDistance - kLoadingIndicatorHeight / 2; |
| -static constexpr float kFullscreenWidth = 2.88; |
| -static constexpr float kFullscreenHeight = 1.62; |
| -static constexpr float kFullscreenDistance = 3; |
| -static constexpr float kFullscreenVerticalOffset = -0.26; |
| -static constexpr vr::Colorf kFullscreenBackgroundColor = {0.1, 0.1, 0.1, 1.0}; |
| - |
| static constexpr float kSceneSize = 25.0; |
| static constexpr float kSceneHeight = 4.0; |
| static constexpr int kFloorGridlineCount = 40; |
| static constexpr vr::Colorf kBackgroundHorizonColor = {0.57, 0.57, 0.57, 1.0}; |
| static constexpr vr::Colorf kBackgroundCenterColor = {0.48, 0.48, 0.48, 1.0}; |
| +static constexpr float kFullscreenWidthDms = 1.138; |
|
cjgrant
2017/05/18 16:07:16
We're implying Dms elsewhere (ie. lateral meters a
amp
2017/05/18 16:15:33
The only reason I added them here was to calculate
|
| +static constexpr float kFullscreenHeightDms = 0.64; |
| +static constexpr float kFullscreenVerticalOffsetDms = 0.1; |
| +// Fullscreen distance calculated as value needed to make the content quad |
| +// extend down to the floor (with small pullback used to prevent actual |
| +// intersection). Note this assumes the vertical offset will always be offest |
| +// below the origin (ie negative). |
| +static constexpr float kFullscreenDistance = |
| + (kSceneHeight / 2.0) / |
| + ((kFullscreenVerticalOffsetDms + (kFullscreenHeightDms / 2.0)) + 0.01); |
| + |
| +static constexpr float kFullscreenHeight = |
| + kFullscreenHeightDms * kFullscreenDistance; |
| +static constexpr float kFullscreenWidth = |
| + kFullscreenWidthDms * kFullscreenDistance; |
| +static constexpr float kFullscreenVerticalOffset = |
| + -kFullscreenVerticalOffsetDms * kFullscreenDistance; |
| +static constexpr vr::Colorf kFullscreenHorizonColor = {0.1, 0.1, 0.1, 1.0}; |
| +static constexpr vr::Colorf kFullscreenCenterColor = {0.2, 0.2, 0.2, 1.0}; |
| + |
| // Tiny distance to offset textures that should appear in the same plane. |
| static constexpr float kTextureOffset = 0.01; |
| @@ -184,7 +198,8 @@ void UiSceneManager::CreateBackground() { |
| element->set_edge_color(kBackgroundHorizonColor); |
| element->set_center_color(kBackgroundCenterColor); |
| element->set_draw_phase(0); |
| - control_elements_.push_back(element.get()); |
| + floor_ = element.get(); |
| + content_elements_.push_back(element.get()); |
| scene_->AddUiElement(std::move(element)); |
| // Ceiling. |
| @@ -198,7 +213,8 @@ void UiSceneManager::CreateBackground() { |
| element->set_edge_color(kBackgroundHorizonColor); |
| element->set_center_color(kBackgroundCenterColor); |
| element->set_draw_phase(0); |
| - control_elements_.push_back(element.get()); |
| + ceiling_ = element.get(); |
| + content_elements_.push_back(element.get()); |
| scene_->AddUiElement(std::move(element)); |
| // Floor grid. |
| @@ -215,7 +231,8 @@ void UiSceneManager::CreateBackground() { |
| element->set_edge_color(edge_color); |
| element->set_gridline_count(kFloorGridlineCount); |
| element->set_draw_phase(0); |
| - control_elements_.push_back(element.get()); |
| + floor_grid_ = element.get(); |
| + content_elements_.push_back(element.get()); |
| scene_->AddUiElement(std::move(element)); |
| scene_->SetBackgroundColor(kBackgroundHorizonColor); |
| @@ -284,16 +301,34 @@ void UiSceneManager::ConfigureScene() { |
| // Update content quad parameters depending on fullscreen. |
| // TODO(http://crbug.com/642937): Animate fullscreen transitions. |
| if (fullscreen_) { |
| - scene_->SetBackgroundColor(kFullscreenBackgroundColor); |
| + scene_->SetBackgroundColor(kFullscreenHorizonColor); |
| main_content_->set_translation( |
| {0, kFullscreenVerticalOffset, -kFullscreenDistance}); |
| main_content_->set_size({kFullscreenWidth, kFullscreenHeight, 1}); |
| + |
| + floor_->set_edge_color(kFullscreenHorizonColor); |
| + floor_->set_center_color(kFullscreenCenterColor); |
| + ceiling_->set_edge_color(kFullscreenHorizonColor); |
| + ceiling_->set_center_color(kFullscreenCenterColor); |
| + floor_grid_->set_center_color(kFullscreenHorizonColor); |
| + vr::Colorf edge_color = kFullscreenHorizonColor; |
| + edge_color.a = 0.0; |
| + floor_grid_->set_edge_color(edge_color); |
| } else { |
| scene_->SetBackgroundColor(kBackgroundHorizonColor); |
| // Note that main_content_ is already visible in this case. |
| main_content_->set_translation( |
| {0, kContentVerticalOffset, -kContentDistance}); |
| main_content_->set_size({kContentWidth, kContentHeight, 1}); |
| + |
| + floor_->set_edge_color(kBackgroundHorizonColor); |
| + floor_->set_center_color(kBackgroundCenterColor); |
| + ceiling_->set_edge_color(kBackgroundHorizonColor); |
| + ceiling_->set_center_color(kBackgroundCenterColor); |
| + floor_grid_->set_center_color(kBackgroundHorizonColor); |
| + vr::Colorf edge_color = kBackgroundHorizonColor; |
| + edge_color.a = 0.0; |
| + floor_grid_->set_edge_color(edge_color); |
| } |
| scene_->SetBackgroundDistance(main_content_->translation().z() * |