| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "chrome/browser/android/vr_shell/ui_scene_manager.h" | 5 #include "chrome/browser/android/vr_shell/ui_scene_manager.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "chrome/browser/android/vr_shell/textures/close_button_texture.h" | 9 #include "chrome/browser/android/vr_shell/textures/close_button_texture.h" |
| 10 #include "chrome/browser/android/vr_shell/textures/ui_texture.h" | 10 #include "chrome/browser/android/vr_shell/textures/ui_texture.h" |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 exit_warning_ = element.get(); | 156 exit_warning_ = element.get(); |
| 157 scene_->AddUiElement(std::move(element)); | 157 scene_->AddUiElement(std::move(element)); |
| 158 } | 158 } |
| 159 | 159 |
| 160 void UiSceneManager::CreateSystemIndicators() { | 160 void UiSceneManager::CreateSystemIndicators() { |
| 161 std::unique_ptr<UiElement> element; | 161 std::unique_ptr<UiElement> element; |
| 162 | 162 |
| 163 // TODO(acondor): Make constants for sizes and positions once the UX for the | 163 // TODO(acondor): Make constants for sizes and positions once the UX for the |
| 164 // indicators is defined. | 164 // indicators is defined. |
| 165 element = base::MakeUnique<AudioCaptureIndicator>(512); | 165 element = base::MakeUnique<AudioCaptureIndicator>(512); |
| 166 element->set_debug_id(kAudioCaptureIndicator); |
| 166 element->set_id(AllocateId()); | 167 element->set_id(AllocateId()); |
| 167 element->set_translation({-0.3, 0.8, -kContentDistance + 0.1}); | 168 element->set_translation({-0.3, 0.8, -kContentDistance + 0.1}); |
| 168 element->set_size({0.5, 0, 1}); | 169 element->set_size({0.5, 0, 1}); |
| 169 element->set_visible(false); | 170 element->set_visible(false); |
| 170 audio_capture_indicator_ = element.get(); | 171 audio_capture_indicator_ = element.get(); |
| 171 scene_->AddUiElement(std::move(element)); | 172 scene_->AddUiElement(std::move(element)); |
| 172 | 173 |
| 173 element = base::MakeUnique<VideoCaptureIndicator>(512); | 174 element = base::MakeUnique<VideoCaptureIndicator>(512); |
| 175 element->set_debug_id(kVideoCaptureIndicator); |
| 174 element->set_id(AllocateId()); | 176 element->set_id(AllocateId()); |
| 175 element->set_translation({0.3, 0.8, -kContentDistance + 0.1}); | 177 element->set_translation({0.3, 0.8, -kContentDistance + 0.1}); |
| 176 element->set_size({0.5, 0, 1}); | 178 element->set_size({0.5, 0, 1}); |
| 177 element->set_visible(false); | 179 element->set_visible(false); |
| 178 video_capture_indicator_ = element.get(); | 180 video_capture_indicator_ = element.get(); |
| 179 scene_->AddUiElement(std::move(element)); | 181 scene_->AddUiElement(std::move(element)); |
| 180 | 182 |
| 181 element = base::MakeUnique<ScreenCaptureIndicator>(512); | 183 element = base::MakeUnique<ScreenCaptureIndicator>(512); |
| 182 element->set_id(AllocateId()); | 184 element->set_id(AllocateId()); |
| 183 element->set_translation({0.0, 0.65, -kContentDistance + 0.1}); | 185 element->set_translation({0.0, 0.65, -kContentDistance + 0.1}); |
| 184 element->set_size({0.4, 0, 1}); | 186 element->set_size({0.4, 0, 1}); |
| 185 element->set_visible(false); | 187 element->set_visible(false); |
| 186 screen_capture_indicator_ = element.get(); | 188 screen_capture_indicator_ = element.get(); |
| 187 scene_->AddUiElement(std::move(element)); | 189 scene_->AddUiElement(std::move(element)); |
| 188 } | 190 } |
| 189 | 191 |
| 190 void UiSceneManager::CreateContentQuad() { | 192 void UiSceneManager::CreateContentQuad() { |
| 191 std::unique_ptr<UiElement> element; | 193 std::unique_ptr<UiElement> element; |
| 192 | 194 |
| 193 element = base::MakeUnique<UiElement>(); | 195 element = base::MakeUnique<UiElement>(); |
| 196 element->set_debug_id(kContentQuad); |
| 194 element->set_id(AllocateId()); | 197 element->set_id(AllocateId()); |
| 195 element->set_fill(vr_shell::Fill::CONTENT); | 198 element->set_fill(vr_shell::Fill::CONTENT); |
| 196 element->set_size({kContentWidth, kContentHeight, 1}); | 199 element->set_size({kContentWidth, kContentHeight, 1}); |
| 197 element->set_translation({0, kContentVerticalOffset, -kContentDistance}); | 200 element->set_translation({0, kContentVerticalOffset, -kContentDistance}); |
| 198 element->set_visible(false); | 201 element->set_visible(false); |
| 199 main_content_ = element.get(); | 202 main_content_ = element.get(); |
| 200 content_elements_.push_back(element.get()); | 203 content_elements_.push_back(element.get()); |
| 201 scene_->AddUiElement(std::move(element)); | 204 scene_->AddUiElement(std::move(element)); |
| 202 | 205 |
| 203 // Place an invisible but hittable plane behind the content quad, to keep the | 206 // Place an invisible but hittable plane behind the content quad, to keep the |
| (...skipping 10 matching lines...) Expand all Loading... |
| 214 // Limit reticle distance to a sphere based on content distance. | 217 // Limit reticle distance to a sphere based on content distance. |
| 215 scene_->SetBackgroundDistance(main_content_->translation().z() * | 218 scene_->SetBackgroundDistance(main_content_->translation().z() * |
| 216 -kBackgroundDistanceMultiplier); | 219 -kBackgroundDistanceMultiplier); |
| 217 } | 220 } |
| 218 | 221 |
| 219 void UiSceneManager::CreateBackground() { | 222 void UiSceneManager::CreateBackground() { |
| 220 std::unique_ptr<UiElement> element; | 223 std::unique_ptr<UiElement> element; |
| 221 | 224 |
| 222 // Floor. | 225 // Floor. |
| 223 element = base::MakeUnique<UiElement>(); | 226 element = base::MakeUnique<UiElement>(); |
| 227 element->set_debug_id(kFloor); |
| 224 element->set_id(AllocateId()); | 228 element->set_id(AllocateId()); |
| 225 element->set_size({kSceneSize, kSceneSize, 1.0}); | 229 element->set_size({kSceneSize, kSceneSize, 1.0}); |
| 226 element->set_translation({0.0, -kSceneHeight / 2, 0.0}); | 230 element->set_translation({0.0, -kSceneHeight / 2, 0.0}); |
| 227 element->set_rotation({1.0, 0.0, 0.0, -M_PI / 2.0}); | 231 element->set_rotation({1.0, 0.0, 0.0, -M_PI / 2.0}); |
| 228 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); | 232 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); |
| 229 element->set_edge_color(kBackgroundHorizonColor); | 233 element->set_edge_color(kBackgroundHorizonColor); |
| 230 element->set_center_color(kBackgroundCenterColor); | 234 element->set_center_color(kBackgroundCenterColor); |
| 231 element->set_draw_phase(0); | 235 element->set_draw_phase(0); |
| 232 control_elements_.push_back(element.get()); | 236 control_elements_.push_back(element.get()); |
| 233 scene_->AddUiElement(std::move(element)); | 237 scene_->AddUiElement(std::move(element)); |
| 234 | 238 |
| 235 // Ceiling. | 239 // Ceiling. |
| 236 element = base::MakeUnique<UiElement>(); | 240 element = base::MakeUnique<UiElement>(); |
| 241 element->set_debug_id(kCeiling); |
| 237 element->set_id(AllocateId()); | 242 element->set_id(AllocateId()); |
| 238 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); | 243 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); |
| 239 element->set_size({kSceneSize, kSceneSize, 1.0}); | 244 element->set_size({kSceneSize, kSceneSize, 1.0}); |
| 240 element->set_translation({0.0, kSceneHeight / 2, 0.0}); | 245 element->set_translation({0.0, kSceneHeight / 2, 0.0}); |
| 241 element->set_rotation({1.0, 0.0, 0.0, M_PI / 2}); | 246 element->set_rotation({1.0, 0.0, 0.0, M_PI / 2}); |
| 242 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); | 247 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); |
| 243 element->set_edge_color(kBackgroundHorizonColor); | 248 element->set_edge_color(kBackgroundHorizonColor); |
| 244 element->set_center_color(kBackgroundCenterColor); | 249 element->set_center_color(kBackgroundCenterColor); |
| 245 element->set_draw_phase(0); | 250 element->set_draw_phase(0); |
| 246 control_elements_.push_back(element.get()); | 251 control_elements_.push_back(element.get()); |
| 247 scene_->AddUiElement(std::move(element)); | 252 scene_->AddUiElement(std::move(element)); |
| 248 | 253 |
| 249 // Floor grid. | 254 // Floor grid. |
| 250 element = base::MakeUnique<UiElement>(); | 255 element = base::MakeUnique<UiElement>(); |
| 256 element->set_debug_id(kGrid); |
| 251 element->set_id(AllocateId()); | 257 element->set_id(AllocateId()); |
| 252 element->set_fill(vr_shell::Fill::GRID_GRADIENT); | 258 element->set_fill(vr_shell::Fill::GRID_GRADIENT); |
| 253 element->set_size({kSceneSize, kSceneSize, 1.0}); | 259 element->set_size({kSceneSize, kSceneSize, 1.0}); |
| 254 element->set_translation({0.0, -kSceneHeight / 2 + kTextureOffset, 0.0}); | 260 element->set_translation({0.0, -kSceneHeight / 2 + kTextureOffset, 0.0}); |
| 255 element->set_rotation({1.0, 0.0, 0.0, -M_PI / 2}); | 261 element->set_rotation({1.0, 0.0, 0.0, -M_PI / 2}); |
| 256 element->set_fill(vr_shell::Fill::GRID_GRADIENT); | 262 element->set_fill(vr_shell::Fill::GRID_GRADIENT); |
| 257 element->set_center_color(kBackgroundHorizonColor); | 263 element->set_center_color(kBackgroundHorizonColor); |
| 258 vr::Colorf edge_color = kBackgroundHorizonColor; | 264 vr::Colorf edge_color = kBackgroundHorizonColor; |
| 259 edge_color.a = 0.0; | 265 edge_color.a = 0.0; |
| 260 element->set_edge_color(edge_color); | 266 element->set_edge_color(edge_color); |
| 261 element->set_gridline_count(kFloorGridlineCount); | 267 element->set_gridline_count(kFloorGridlineCount); |
| 262 element->set_draw_phase(0); | 268 element->set_draw_phase(0); |
| 263 control_elements_.push_back(element.get()); | 269 control_elements_.push_back(element.get()); |
| 264 scene_->AddUiElement(std::move(element)); | 270 scene_->AddUiElement(std::move(element)); |
| 265 | 271 |
| 266 scene_->SetBackgroundColor(kBackgroundHorizonColor); | 272 scene_->SetBackgroundColor(kBackgroundHorizonColor); |
| 267 } | 273 } |
| 268 | 274 |
| 269 void UiSceneManager::CreateUrlBar() { | 275 void UiSceneManager::CreateUrlBar() { |
| 270 // TODO(cjgrant): Incorporate final size and position. | 276 // TODO(cjgrant): Incorporate final size and position. |
| 271 auto url_bar = base::MakeUnique<UrlBar>(512); | 277 auto url_bar = base::MakeUnique<UrlBar>(512); |
| 278 url_bar->set_debug_id(kBrowserBar); |
| 272 url_bar->set_id(AllocateId()); | 279 url_bar->set_id(AllocateId()); |
| 273 url_bar->set_translation({0, kUrlBarVerticalOffset, -kUrlBarDistance}); | 280 url_bar->set_translation({0, kUrlBarVerticalOffset, -kUrlBarDistance}); |
| 274 url_bar->set_size({kUrlBarWidth, kUrlBarHeight, 1}); | 281 url_bar->set_size({kUrlBarWidth, kUrlBarHeight, 1}); |
| 275 url_bar->SetBackButtonCallback( | 282 url_bar->SetBackButtonCallback( |
| 276 base::Bind(&UiSceneManager::OnBackButtonClicked, base::Unretained(this))); | 283 base::Bind(&UiSceneManager::OnBackButtonClicked, base::Unretained(this))); |
| 277 url_bar_ = url_bar.get(); | 284 url_bar_ = url_bar.get(); |
| 278 control_elements_.push_back(url_bar.get()); | 285 control_elements_.push_back(url_bar.get()); |
| 279 scene_->AddUiElement(std::move(url_bar)); | 286 scene_->AddUiElement(std::move(url_bar)); |
| 280 | 287 |
| 281 auto indicator = base::MakeUnique<LoadingIndicator>(256); | 288 auto indicator = base::MakeUnique<LoadingIndicator>(256); |
| 289 indicator->set_debug_id(kLoadingIndicator); |
| 282 indicator->set_id(AllocateId()); | 290 indicator->set_id(AllocateId()); |
| 283 indicator->set_translation({0, 0, kLoadingIndicatorOffset}); | 291 indicator->set_translation({0, 0, kLoadingIndicatorOffset}); |
| 284 indicator->set_size({kLoadingIndicatorWidth, kLoadingIndicatorHeight, 1}); | 292 indicator->set_size({kLoadingIndicatorWidth, kLoadingIndicatorHeight, 1}); |
| 285 indicator->set_parent_id(url_bar_->id()); | 293 indicator->set_parent_id(url_bar_->id()); |
| 286 indicator->set_y_anchoring(YAnchoring::YTOP); | 294 indicator->set_y_anchoring(YAnchoring::YTOP); |
| 287 loading_indicator_ = indicator.get(); | 295 loading_indicator_ = indicator.get(); |
| 288 control_elements_.push_back(indicator.get()); | 296 control_elements_.push_back(indicator.get()); |
| 289 scene_->AddUiElement(std::move(indicator)); | 297 scene_->AddUiElement(std::move(indicator)); |
| 290 } | 298 } |
| 291 | 299 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 | 440 |
| 433 void UiSceneManager::OnCloseButtonClicked() { | 441 void UiSceneManager::OnCloseButtonClicked() { |
| 434 browser_->ExitCct(); | 442 browser_->ExitCct(); |
| 435 } | 443 } |
| 436 | 444 |
| 437 int UiSceneManager::AllocateId() { | 445 int UiSceneManager::AllocateId() { |
| 438 return next_available_id_++; | 446 return next_available_id_++; |
| 439 } | 447 } |
| 440 | 448 |
| 441 } // namespace vr_shell | 449 } // namespace vr_shell |
| OLD | NEW |