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 |