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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 static constexpr float kUrlBarDistance = 2.4; | 50 static constexpr float kUrlBarDistance = 2.4; |
51 static constexpr float kUrlBarWidth = 0.672 * kUrlBarDistance; | 51 static constexpr float kUrlBarWidth = 0.672 * kUrlBarDistance; |
52 static constexpr float kUrlBarHeight = 0.088 * kUrlBarDistance; | 52 static constexpr float kUrlBarHeight = 0.088 * kUrlBarDistance; |
53 static constexpr float kUrlBarVerticalOffset = -0.516 * kUrlBarDistance; | 53 static constexpr float kUrlBarVerticalOffset = -0.516 * kUrlBarDistance; |
54 | 54 |
55 static constexpr float kLoadingIndicatorWidth = 0.24 * kUrlBarDistance; | 55 static constexpr float kLoadingIndicatorWidth = 0.24 * kUrlBarDistance; |
56 static constexpr float kLoadingIndicatorHeight = 0.008 * kUrlBarDistance; | 56 static constexpr float kLoadingIndicatorHeight = 0.008 * kUrlBarDistance; |
57 static constexpr float kLoadingIndicatorOffset = | 57 static constexpr float kLoadingIndicatorOffset = |
58 -0.016 * kUrlBarDistance - kLoadingIndicatorHeight / 2; | 58 -0.016 * kUrlBarDistance - kLoadingIndicatorHeight / 2; |
59 | 59 |
60 static constexpr float kFullscreenWidth = 2.88; | |
61 static constexpr float kFullscreenHeight = 1.62; | |
62 static constexpr float kFullscreenDistance = 3; | |
63 static constexpr float kFullscreenVerticalOffset = -0.26; | |
64 static constexpr vr::Colorf kFullscreenBackgroundColor = {0.1, 0.1, 0.1, 1.0}; | |
65 | |
66 static constexpr float kSceneSize = 25.0; | 60 static constexpr float kSceneSize = 25.0; |
67 static constexpr float kSceneHeight = 4.0; | 61 static constexpr float kSceneHeight = 4.0; |
68 static constexpr int kFloorGridlineCount = 40; | 62 static constexpr int kFloorGridlineCount = 40; |
69 static constexpr vr::Colorf kBackgroundHorizonColor = {0.57, 0.57, 0.57, 1.0}; | 63 static constexpr vr::Colorf kBackgroundHorizonColor = {0.57, 0.57, 0.57, 1.0}; |
70 static constexpr vr::Colorf kBackgroundCenterColor = {0.48, 0.48, 0.48, 1.0}; | 64 static constexpr vr::Colorf kBackgroundCenterColor = {0.48, 0.48, 0.48, 1.0}; |
71 | 65 |
| 66 static constexpr float kFullscreenWidthDms = 1.138; |
| 67 static constexpr float kFullscreenHeightDms = 0.64; |
| 68 static constexpr float kFullscreenVerticalOffsetDms = 0.1; |
| 69 // Fullscreen distance calculated as value needed to make the content quad |
| 70 // extend down to the floor (with small pullback used to prevent actual |
| 71 // intersection). Note this assumes the vertical offset will always be offest |
| 72 // below the origin (ie negative). |
| 73 static constexpr float kFullscreenDistance = |
| 74 (kSceneHeight / 2.0) / |
| 75 ((kFullscreenVerticalOffsetDms + (kFullscreenHeightDms / 2.0)) + 0.01); |
| 76 |
| 77 static constexpr float kFullscreenHeight = |
| 78 kFullscreenHeightDms * kFullscreenDistance; |
| 79 static constexpr float kFullscreenWidth = |
| 80 kFullscreenWidthDms * kFullscreenDistance; |
| 81 static constexpr float kFullscreenVerticalOffset = |
| 82 -kFullscreenVerticalOffsetDms * kFullscreenDistance; |
| 83 static constexpr vr::Colorf kFullscreenHorizonColor = {0.1, 0.1, 0.1, 1.0}; |
| 84 static constexpr vr::Colorf kFullscreenCenterColor = {0.2, 0.2, 0.2, 1.0}; |
| 85 |
72 // Tiny distance to offset textures that should appear in the same plane. | 86 // Tiny distance to offset textures that should appear in the same plane. |
73 static constexpr float kTextureOffset = 0.01; | 87 static constexpr float kTextureOffset = 0.01; |
74 | 88 |
75 } // namespace | 89 } // namespace |
76 | 90 |
77 UiSceneManager::UiSceneManager(VrBrowserInterface* browser, | 91 UiSceneManager::UiSceneManager(VrBrowserInterface* browser, |
78 UiScene* scene, | 92 UiScene* scene, |
79 bool in_cct, | 93 bool in_cct, |
80 bool in_web_vr) | 94 bool in_web_vr) |
81 : browser_(browser), | 95 : browser_(browser), |
(...skipping 12 matching lines...) Expand all Loading... |
94 | 108 |
95 ConfigureScene(); | 109 ConfigureScene(); |
96 ConfigureSecurityWarnings(); | 110 ConfigureSecurityWarnings(); |
97 } | 111 } |
98 | 112 |
99 UiSceneManager::~UiSceneManager() {} | 113 UiSceneManager::~UiSceneManager() {} |
100 | 114 |
101 void UiSceneManager::CreateScreenDimmer() { | 115 void UiSceneManager::CreateScreenDimmer() { |
102 std::unique_ptr<UiElement> element; | 116 std::unique_ptr<UiElement> element; |
103 element = base::MakeUnique<ScreenDimmer>(); | 117 element = base::MakeUnique<ScreenDimmer>(); |
| 118 element->set_debug_id(kScreenDimmer); |
104 element->set_id(AllocateId()); | 119 element->set_id(AllocateId()); |
105 element->set_fill(vr_shell::Fill::NONE); | 120 element->set_fill(vr_shell::Fill::NONE); |
106 element->set_visible(false); | 121 element->set_visible(false); |
107 element->set_hit_testable(false); | 122 element->set_hit_testable(false); |
108 element->set_is_overlay(true); | 123 element->set_is_overlay(true); |
109 screen_dimmer_ = element.get(); | 124 screen_dimmer_ = element.get(); |
110 scene_->AddUiElement(std::move(element)); | 125 scene_->AddUiElement(std::move(element)); |
111 } | 126 } |
112 | 127 |
113 void UiSceneManager::CreateSecurityWarnings() { | 128 void UiSceneManager::CreateSecurityWarnings() { |
(...skipping 24 matching lines...) Expand all Loading... |
138 element->set_size({kTransientWarningWidth, kTransientWarningHeight, 1}); | 153 element->set_size({kTransientWarningWidth, kTransientWarningHeight, 1}); |
139 element->set_scale({kWarningDistance, kWarningDistance, 1}); | 154 element->set_scale({kWarningDistance, kWarningDistance, 1}); |
140 element->set_translation({0, 0, -kWarningDistance}); | 155 element->set_translation({0, 0, -kWarningDistance}); |
141 element->set_visible(false); | 156 element->set_visible(false); |
142 element->set_hit_testable(false); | 157 element->set_hit_testable(false); |
143 element->set_lock_to_fov(true); | 158 element->set_lock_to_fov(true); |
144 transient_security_warning_ = element.get(); | 159 transient_security_warning_ = element.get(); |
145 scene_->AddUiElement(std::move(element)); | 160 scene_->AddUiElement(std::move(element)); |
146 | 161 |
147 element = base::MakeUnique<ExitWarning>(1024); | 162 element = base::MakeUnique<ExitWarning>(1024); |
| 163 element->set_debug_id(kExitWarning); |
148 element->set_id(AllocateId()); | 164 element->set_id(AllocateId()); |
149 element->set_fill(vr_shell::Fill::NONE); | 165 element->set_fill(vr_shell::Fill::NONE); |
150 element->set_size({kExitWarningWidth, kExitWarningHeight, 1}); | 166 element->set_size({kExitWarningWidth, kExitWarningHeight, 1}); |
151 element->set_scale({kExitWarningDistance, kExitWarningDistance, 1}); | 167 element->set_scale({kExitWarningDistance, kExitWarningDistance, 1}); |
152 element->set_translation({0, 0, -kExitWarningDistance}); | 168 element->set_translation({0, 0, -kExitWarningDistance}); |
153 element->set_visible(false); | 169 element->set_visible(false); |
154 element->set_hit_testable(false); | 170 element->set_hit_testable(false); |
155 element->set_lock_to_fov(true); | 171 element->set_lock_to_fov(true); |
156 exit_warning_ = element.get(); | 172 exit_warning_ = element.get(); |
157 scene_->AddUiElement(std::move(element)); | 173 scene_->AddUiElement(std::move(element)); |
158 } | 174 } |
159 | 175 |
160 void UiSceneManager::CreateSystemIndicators() { | 176 void UiSceneManager::CreateSystemIndicators() { |
161 std::unique_ptr<UiElement> element; | 177 std::unique_ptr<UiElement> element; |
162 | 178 |
163 // TODO(acondor): Make constants for sizes and positions once the UX for the | 179 // TODO(acondor): Make constants for sizes and positions once the UX for the |
164 // indicators is defined. | 180 // indicators is defined. |
165 element = base::MakeUnique<AudioCaptureIndicator>(512); | 181 element = base::MakeUnique<AudioCaptureIndicator>(512); |
| 182 element->set_debug_id(kAudioCaptureIndicator); |
166 element->set_id(AllocateId()); | 183 element->set_id(AllocateId()); |
167 element->set_translation({-0.3, 0.8, -kContentDistance + 0.1}); | 184 element->set_translation({-0.3, 0.8, -kContentDistance + 0.1}); |
168 element->set_size({0.5, 0, 1}); | 185 element->set_size({0.5, 0, 1}); |
169 element->set_visible(false); | 186 element->set_visible(false); |
170 audio_capture_indicator_ = element.get(); | 187 audio_capture_indicator_ = element.get(); |
171 scene_->AddUiElement(std::move(element)); | 188 scene_->AddUiElement(std::move(element)); |
172 | 189 |
173 element = base::MakeUnique<VideoCaptureIndicator>(512); | 190 element = base::MakeUnique<VideoCaptureIndicator>(512); |
| 191 element->set_debug_id(kVideoCaptureIndicator); |
174 element->set_id(AllocateId()); | 192 element->set_id(AllocateId()); |
175 element->set_translation({0.3, 0.8, -kContentDistance + 0.1}); | 193 element->set_translation({0.3, 0.8, -kContentDistance + 0.1}); |
176 element->set_size({0.5, 0, 1}); | 194 element->set_size({0.5, 0, 1}); |
177 element->set_visible(false); | 195 element->set_visible(false); |
178 video_capture_indicator_ = element.get(); | 196 video_capture_indicator_ = element.get(); |
179 scene_->AddUiElement(std::move(element)); | 197 scene_->AddUiElement(std::move(element)); |
180 | 198 |
181 element = base::MakeUnique<ScreenCaptureIndicator>(512); | 199 element = base::MakeUnique<ScreenCaptureIndicator>(512); |
| 200 element->set_debug_id(kScreenCaptureIndicator); |
182 element->set_id(AllocateId()); | 201 element->set_id(AllocateId()); |
183 element->set_translation({0.0, 0.65, -kContentDistance + 0.1}); | 202 element->set_translation({0.0, 0.65, -kContentDistance + 0.1}); |
184 element->set_size({0.4, 0, 1}); | 203 element->set_size({0.4, 0, 1}); |
185 element->set_visible(false); | 204 element->set_visible(false); |
186 screen_capture_indicator_ = element.get(); | 205 screen_capture_indicator_ = element.get(); |
187 scene_->AddUiElement(std::move(element)); | 206 scene_->AddUiElement(std::move(element)); |
188 } | 207 } |
189 | 208 |
190 void UiSceneManager::CreateContentQuad() { | 209 void UiSceneManager::CreateContentQuad() { |
191 std::unique_ptr<UiElement> element; | 210 std::unique_ptr<UiElement> element; |
192 | 211 |
193 element = base::MakeUnique<UiElement>(); | 212 element = base::MakeUnique<UiElement>(); |
| 213 element->set_debug_id(kContentQuad); |
194 element->set_id(AllocateId()); | 214 element->set_id(AllocateId()); |
195 element->set_fill(vr_shell::Fill::CONTENT); | 215 element->set_fill(vr_shell::Fill::CONTENT); |
196 element->set_size({kContentWidth, kContentHeight, 1}); | 216 element->set_size({kContentWidth, kContentHeight, 1}); |
197 element->set_translation({0, kContentVerticalOffset, -kContentDistance}); | 217 element->set_translation({0, kContentVerticalOffset, -kContentDistance}); |
198 element->set_visible(false); | 218 element->set_visible(false); |
199 main_content_ = element.get(); | 219 main_content_ = element.get(); |
200 content_elements_.push_back(element.get()); | 220 content_elements_.push_back(element.get()); |
201 scene_->AddUiElement(std::move(element)); | 221 scene_->AddUiElement(std::move(element)); |
202 | 222 |
203 // Place an invisible but hittable plane behind the content quad, to keep the | 223 // Place an invisible but hittable plane behind the content quad, to keep the |
204 // reticle roughly planar with the content if near content. | 224 // reticle roughly planar with the content if near content. |
205 element = base::MakeUnique<UiElement>(); | 225 element = base::MakeUnique<UiElement>(); |
| 226 element->set_debug_id(kBackplane); |
206 element->set_id(AllocateId()); | 227 element->set_id(AllocateId()); |
207 element->set_fill(vr_shell::Fill::NONE); | 228 element->set_fill(vr_shell::Fill::NONE); |
208 element->set_size({kBackplaneSize, kBackplaneSize, 1.0}); | 229 element->set_size({kBackplaneSize, kBackplaneSize, 1.0}); |
209 element->set_translation({0.0, 0.0, -kTextureOffset}); | 230 element->set_translation({0.0, 0.0, -kTextureOffset}); |
210 element->set_parent_id(main_content_->id()); | 231 element->set_parent_id(main_content_->id()); |
211 content_elements_.push_back(element.get()); | 232 content_elements_.push_back(element.get()); |
212 scene_->AddUiElement(std::move(element)); | 233 scene_->AddUiElement(std::move(element)); |
213 | 234 |
214 // Limit reticle distance to a sphere based on content distance. | 235 // Limit reticle distance to a sphere based on content distance. |
215 scene_->SetBackgroundDistance(main_content_->translation().z() * | 236 scene_->SetBackgroundDistance(main_content_->translation().z() * |
216 -kBackgroundDistanceMultiplier); | 237 -kBackgroundDistanceMultiplier); |
217 } | 238 } |
218 | 239 |
219 void UiSceneManager::CreateBackground() { | 240 void UiSceneManager::CreateBackground() { |
220 std::unique_ptr<UiElement> element; | 241 std::unique_ptr<UiElement> element; |
221 | 242 |
222 // Floor. | 243 // Floor. |
223 element = base::MakeUnique<UiElement>(); | 244 element = base::MakeUnique<UiElement>(); |
| 245 element->set_debug_id(kFloor); |
224 element->set_id(AllocateId()); | 246 element->set_id(AllocateId()); |
225 element->set_size({kSceneSize, kSceneSize, 1.0}); | 247 element->set_size({kSceneSize, kSceneSize, 1.0}); |
226 element->set_translation({0.0, -kSceneHeight / 2, 0.0}); | 248 element->set_translation({0.0, -kSceneHeight / 2, 0.0}); |
227 element->set_rotation({1.0, 0.0, 0.0, -M_PI / 2.0}); | 249 element->set_rotation({1.0, 0.0, 0.0, -M_PI / 2.0}); |
228 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); | 250 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); |
229 element->set_edge_color(kBackgroundHorizonColor); | 251 element->set_edge_color(kBackgroundHorizonColor); |
230 element->set_center_color(kBackgroundCenterColor); | 252 element->set_center_color(kBackgroundCenterColor); |
231 element->set_draw_phase(0); | 253 element->set_draw_phase(0); |
232 control_elements_.push_back(element.get()); | 254 floor_ = element.get(); |
| 255 content_elements_.push_back(element.get()); |
233 scene_->AddUiElement(std::move(element)); | 256 scene_->AddUiElement(std::move(element)); |
234 | 257 |
235 // Ceiling. | 258 // Ceiling. |
236 element = base::MakeUnique<UiElement>(); | 259 element = base::MakeUnique<UiElement>(); |
| 260 element->set_debug_id(kCeiling); |
237 element->set_id(AllocateId()); | 261 element->set_id(AllocateId()); |
238 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); | 262 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); |
239 element->set_size({kSceneSize, kSceneSize, 1.0}); | 263 element->set_size({kSceneSize, kSceneSize, 1.0}); |
240 element->set_translation({0.0, kSceneHeight / 2, 0.0}); | 264 element->set_translation({0.0, kSceneHeight / 2, 0.0}); |
241 element->set_rotation({1.0, 0.0, 0.0, M_PI / 2}); | 265 element->set_rotation({1.0, 0.0, 0.0, M_PI / 2}); |
242 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); | 266 element->set_fill(vr_shell::Fill::OPAQUE_GRADIENT); |
243 element->set_edge_color(kBackgroundHorizonColor); | 267 element->set_edge_color(kBackgroundHorizonColor); |
244 element->set_center_color(kBackgroundCenterColor); | 268 element->set_center_color(kBackgroundCenterColor); |
245 element->set_draw_phase(0); | 269 element->set_draw_phase(0); |
246 control_elements_.push_back(element.get()); | 270 ceiling_ = element.get(); |
| 271 content_elements_.push_back(element.get()); |
247 scene_->AddUiElement(std::move(element)); | 272 scene_->AddUiElement(std::move(element)); |
248 | 273 |
249 // Floor grid. | 274 // Floor grid. |
250 element = base::MakeUnique<UiElement>(); | 275 element = base::MakeUnique<UiElement>(); |
| 276 element->set_debug_id(kFloorGrid); |
251 element->set_id(AllocateId()); | 277 element->set_id(AllocateId()); |
252 element->set_fill(vr_shell::Fill::GRID_GRADIENT); | 278 element->set_fill(vr_shell::Fill::GRID_GRADIENT); |
253 element->set_size({kSceneSize, kSceneSize, 1.0}); | 279 element->set_size({kSceneSize, kSceneSize, 1.0}); |
254 element->set_translation({0.0, -kSceneHeight / 2 + kTextureOffset, 0.0}); | 280 element->set_translation({0.0, -kSceneHeight / 2 + kTextureOffset, 0.0}); |
255 element->set_rotation({1.0, 0.0, 0.0, -M_PI / 2}); | 281 element->set_rotation({1.0, 0.0, 0.0, -M_PI / 2}); |
256 element->set_fill(vr_shell::Fill::GRID_GRADIENT); | 282 element->set_fill(vr_shell::Fill::GRID_GRADIENT); |
257 element->set_center_color(kBackgroundHorizonColor); | 283 element->set_center_color(kBackgroundHorizonColor); |
258 vr::Colorf edge_color = kBackgroundHorizonColor; | 284 vr::Colorf edge_color = kBackgroundHorizonColor; |
259 edge_color.a = 0.0; | 285 edge_color.a = 0.0; |
260 element->set_edge_color(edge_color); | 286 element->set_edge_color(edge_color); |
261 element->set_gridline_count(kFloorGridlineCount); | 287 element->set_gridline_count(kFloorGridlineCount); |
262 element->set_draw_phase(0); | 288 element->set_draw_phase(0); |
263 control_elements_.push_back(element.get()); | 289 floor_grid_ = element.get(); |
| 290 content_elements_.push_back(element.get()); |
264 scene_->AddUiElement(std::move(element)); | 291 scene_->AddUiElement(std::move(element)); |
265 | 292 |
266 scene_->SetBackgroundColor(kBackgroundHorizonColor); | 293 scene_->SetBackgroundColor(kBackgroundHorizonColor); |
267 } | 294 } |
268 | 295 |
269 void UiSceneManager::CreateUrlBar() { | 296 void UiSceneManager::CreateUrlBar() { |
270 // TODO(cjgrant): Incorporate final size and position. | 297 // TODO(cjgrant): Incorporate final size and position. |
271 auto url_bar = base::MakeUnique<UrlBar>(512); | 298 auto url_bar = base::MakeUnique<UrlBar>(512); |
| 299 url_bar->set_debug_id(kUrlBar); |
272 url_bar->set_id(AllocateId()); | 300 url_bar->set_id(AllocateId()); |
273 url_bar->set_translation({0, kUrlBarVerticalOffset, -kUrlBarDistance}); | 301 url_bar->set_translation({0, kUrlBarVerticalOffset, -kUrlBarDistance}); |
274 url_bar->set_size({kUrlBarWidth, kUrlBarHeight, 1}); | 302 url_bar->set_size({kUrlBarWidth, kUrlBarHeight, 1}); |
275 url_bar->SetBackButtonCallback( | 303 url_bar->SetBackButtonCallback( |
276 base::Bind(&UiSceneManager::OnBackButtonClicked, base::Unretained(this))); | 304 base::Bind(&UiSceneManager::OnBackButtonClicked, base::Unretained(this))); |
277 url_bar_ = url_bar.get(); | 305 url_bar_ = url_bar.get(); |
278 control_elements_.push_back(url_bar.get()); | 306 control_elements_.push_back(url_bar.get()); |
279 scene_->AddUiElement(std::move(url_bar)); | 307 scene_->AddUiElement(std::move(url_bar)); |
280 | 308 |
281 auto indicator = base::MakeUnique<LoadingIndicator>(256); | 309 auto indicator = base::MakeUnique<LoadingIndicator>(256); |
| 310 indicator->set_debug_id(kLoadingIndicator); |
282 indicator->set_id(AllocateId()); | 311 indicator->set_id(AllocateId()); |
283 indicator->set_translation({0, 0, kLoadingIndicatorOffset}); | 312 indicator->set_translation({0, 0, kLoadingIndicatorOffset}); |
284 indicator->set_size({kLoadingIndicatorWidth, kLoadingIndicatorHeight, 1}); | 313 indicator->set_size({kLoadingIndicatorWidth, kLoadingIndicatorHeight, 1}); |
285 indicator->set_parent_id(url_bar_->id()); | 314 indicator->set_parent_id(url_bar_->id()); |
286 indicator->set_y_anchoring(YAnchoring::YTOP); | 315 indicator->set_y_anchoring(YAnchoring::YTOP); |
287 loading_indicator_ = indicator.get(); | 316 loading_indicator_ = indicator.get(); |
288 control_elements_.push_back(indicator.get()); | 317 control_elements_.push_back(indicator.get()); |
289 scene_->AddUiElement(std::move(indicator)); | 318 scene_->AddUiElement(std::move(indicator)); |
290 } | 319 } |
291 | 320 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 } | 356 } |
328 | 357 |
329 // Content elements. | 358 // Content elements. |
330 for (UiElement* element : content_elements_) { | 359 for (UiElement* element : content_elements_) { |
331 element->SetEnabled(!web_vr_mode_); | 360 element->SetEnabled(!web_vr_mode_); |
332 } | 361 } |
333 | 362 |
334 // Update content quad parameters depending on fullscreen. | 363 // Update content quad parameters depending on fullscreen. |
335 // TODO(http://crbug.com/642937): Animate fullscreen transitions. | 364 // TODO(http://crbug.com/642937): Animate fullscreen transitions. |
336 if (fullscreen_) { | 365 if (fullscreen_) { |
337 scene_->SetBackgroundColor(kFullscreenBackgroundColor); | |
338 main_content_->set_translation( | 366 main_content_->set_translation( |
339 {0, kFullscreenVerticalOffset, -kFullscreenDistance}); | 367 {0, kFullscreenVerticalOffset, -kFullscreenDistance}); |
340 main_content_->set_size({kFullscreenWidth, kFullscreenHeight, 1}); | 368 main_content_->set_size({kFullscreenWidth, kFullscreenHeight, 1}); |
| 369 |
| 370 ConfigureBackgroundColor(kFullscreenCenterColor, kFullscreenHorizonColor); |
341 } else { | 371 } else { |
342 scene_->SetBackgroundColor(kBackgroundHorizonColor); | |
343 // Note that main_content_ is already visible in this case. | 372 // Note that main_content_ is already visible in this case. |
344 main_content_->set_translation( | 373 main_content_->set_translation( |
345 {0, kContentVerticalOffset, -kContentDistance}); | 374 {0, kContentVerticalOffset, -kContentDistance}); |
346 main_content_->set_size({kContentWidth, kContentHeight, 1}); | 375 main_content_->set_size({kContentWidth, kContentHeight, 1}); |
| 376 |
| 377 ConfigureBackgroundColor(kBackgroundCenterColor, kBackgroundHorizonColor); |
347 } | 378 } |
348 | 379 |
349 scene_->SetBackgroundDistance(main_content_->translation().z() * | 380 scene_->SetBackgroundDistance(main_content_->translation().z() * |
350 -kBackgroundDistanceMultiplier); | 381 -kBackgroundDistanceMultiplier); |
351 } | 382 } |
352 | 383 |
| 384 void UiSceneManager::ConfigureBackgroundColor(vr::Colorf center_color, |
| 385 vr::Colorf horizon_color) { |
| 386 scene_->SetBackgroundColor(horizon_color); |
| 387 floor_->set_edge_color(horizon_color); |
| 388 floor_->set_center_color(center_color); |
| 389 ceiling_->set_edge_color(horizon_color); |
| 390 ceiling_->set_center_color(center_color); |
| 391 floor_grid_->set_center_color(horizon_color); |
| 392 vr::Colorf edge_color = horizon_color; |
| 393 edge_color.a = 0.0; |
| 394 floor_grid_->set_edge_color(edge_color); |
| 395 } |
| 396 |
353 void UiSceneManager::SetAudioCapturingIndicator(bool enabled) { | 397 void UiSceneManager::SetAudioCapturingIndicator(bool enabled) { |
354 audio_capture_indicator_->set_visible(enabled); | 398 audio_capture_indicator_->set_visible(enabled); |
355 } | 399 } |
356 | 400 |
357 void UiSceneManager::SetVideoCapturingIndicator(bool enabled) { | 401 void UiSceneManager::SetVideoCapturingIndicator(bool enabled) { |
358 video_capture_indicator_->set_visible(enabled); | 402 video_capture_indicator_->set_visible(enabled); |
359 } | 403 } |
360 | 404 |
361 void UiSceneManager::SetScreenCapturingIndicator(bool enabled) { | 405 void UiSceneManager::SetScreenCapturingIndicator(bool enabled) { |
362 // TODO(asimjour) add the indicator and change the visibility here. | 406 // TODO(asimjour) add the indicator and change the visibility here. |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 | 476 |
433 void UiSceneManager::OnCloseButtonClicked() { | 477 void UiSceneManager::OnCloseButtonClicked() { |
434 browser_->ExitCct(); | 478 browser_->ExitCct(); |
435 } | 479 } |
436 | 480 |
437 int UiSceneManager::AllocateId() { | 481 int UiSceneManager::AllocateId() { |
438 return next_available_id_++; | 482 return next_available_id_++; |
439 } | 483 } |
440 | 484 |
441 } // namespace vr_shell | 485 } // namespace vr_shell |
OLD | NEW |