Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2086)

Side by Side Diff: chrome/browser/android/vr_shell/vr_gl_thread.cc

Issue 2955483003: Show splash screen when entering VR from a deep-link (Closed)
Patch Set: fix compile error on bots Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/vr_gl_thread.h" 5 #include "chrome/browser/android/vr_shell/vr_gl_thread.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "chrome/browser/android/vr_shell/ui_interface.h" 9 #include "chrome/browser/android/vr_shell/ui_interface.h"
10 #include "chrome/browser/android/vr_shell/ui_scene.h" 10 #include "chrome/browser/android/vr_shell/ui_scene.h"
11 #include "chrome/browser/android/vr_shell/ui_scene_manager.h" 11 #include "chrome/browser/android/vr_shell/ui_scene_manager.h"
12 #include "chrome/browser/android/vr_shell/vr_input_manager.h" 12 #include "chrome/browser/android/vr_shell/vr_input_manager.h"
13 #include "chrome/browser/android/vr_shell/vr_shell.h" 13 #include "chrome/browser/android/vr_shell/vr_shell.h"
14 #include "chrome/browser/android/vr_shell/vr_shell_gl.h" 14 #include "chrome/browser/android/vr_shell/vr_shell_gl.h"
15 #include "third_party/skia/include/core/SkBitmap.h"
15 16
16 namespace vr_shell { 17 namespace vr_shell {
17 18
18 VrGLThread::VrGLThread( 19 VrGLThread::VrGLThread(
19 const base::WeakPtr<VrShell>& weak_vr_shell, 20 const base::WeakPtr<VrShell>& weak_vr_shell,
20 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner, 21 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner,
21 gvr_context* gvr_api, 22 gvr_context* gvr_api,
22 bool initially_web_vr, 23 bool initially_web_vr,
23 bool web_vr_autopresented, 24 bool web_vr_autopresentation_expected,
24 bool in_cct, 25 bool in_cct,
25 bool reprojected_rendering, 26 bool reprojected_rendering,
26 bool daydream_support) 27 bool daydream_support)
27 : base::Thread("VrShellGL"), 28 : base::Thread("VrShellGL"),
28 weak_vr_shell_(weak_vr_shell), 29 weak_vr_shell_(weak_vr_shell),
29 main_thread_task_runner_(std::move(main_thread_task_runner)), 30 main_thread_task_runner_(std::move(main_thread_task_runner)),
30 gvr_api_(gvr_api), 31 gvr_api_(gvr_api),
31 initially_web_vr_(initially_web_vr), 32 initially_web_vr_(initially_web_vr),
32 web_vr_autopresented_(web_vr_autopresented), 33 web_vr_autopresentation_expected_(web_vr_autopresentation_expected),
33 in_cct_(in_cct), 34 in_cct_(in_cct),
34 reprojected_rendering_(reprojected_rendering), 35 reprojected_rendering_(reprojected_rendering),
35 daydream_support_(daydream_support) {} 36 daydream_support_(daydream_support) {}
36 37
37 VrGLThread::~VrGLThread() { 38 VrGLThread::~VrGLThread() {
38 Stop(); 39 Stop();
39 } 40 }
40 41
41 void VrGLThread::Init() { 42 void VrGLThread::Init() {
42 scene_ = base::MakeUnique<UiScene>(); 43 scene_ = base::MakeUnique<UiScene>();
43 vr_shell_gl_ = base::MakeUnique<VrShellGl>(this, gvr_api_, initially_web_vr_, 44 vr_shell_gl_ = base::MakeUnique<VrShellGl>(this, gvr_api_, initially_web_vr_,
44 reprojected_rendering_, 45 reprojected_rendering_,
45 daydream_support_, scene_.get()); 46 daydream_support_, scene_.get());
46 scene_manager_ = base::MakeUnique<UiSceneManager>( 47 scene_manager_ = base::MakeUnique<UiSceneManager>(
47 this, scene_.get(), in_cct_, initially_web_vr_, web_vr_autopresented_); 48 this, scene_.get(), in_cct_, initially_web_vr_,
49 web_vr_autopresentation_expected_);
48 50
49 weak_vr_shell_gl_ = vr_shell_gl_->GetWeakPtr(); 51 weak_vr_shell_gl_ = vr_shell_gl_->GetWeakPtr();
50 weak_scene_manager_ = scene_manager_->GetWeakPtr(); 52 weak_scene_manager_ = scene_manager_->GetWeakPtr();
51 vr_shell_gl_->Initialize(); 53 vr_shell_gl_->Initialize();
52 } 54 }
53 55
54 void VrGLThread::ContentSurfaceChanged(jobject surface) { 56 void VrGLThread::ContentSurfaceChanged(jobject surface) {
55 main_thread_task_runner_->PostTask( 57 main_thread_task_runner_->PostTask(
56 FROM_HERE, 58 FROM_HERE,
57 base::Bind(&VrShell::ContentSurfaceChanged, weak_vr_shell_, surface)); 59 base::Bind(&VrShell::ContentSurfaceChanged, weak_vr_shell_, surface));
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 base::Bind(&UiSceneManager::SetSecurityInfo, 186 base::Bind(&UiSceneManager::SetSecurityInfo,
185 weak_scene_manager_, level, malware)); 187 weak_scene_manager_, level, malware));
186 } 188 }
187 189
188 void VrGLThread::SetURL(const GURL& gurl) { 190 void VrGLThread::SetURL(const GURL& gurl) {
189 WaitUntilThreadStarted(); 191 WaitUntilThreadStarted();
190 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetURL, 192 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetURL,
191 weak_scene_manager_, gurl)); 193 weak_scene_manager_, gurl));
192 } 194 }
193 195
194 void VrGLThread::SetWebVrMode(bool enabled, 196 void VrGLThread::SetWebVrMode(bool enabled, bool show_toast) {
195 bool auto_presented,
196 bool show_toast) {
197 WaitUntilThreadStarted(); 197 WaitUntilThreadStarted();
198 task_runner()->PostTask( 198 task_runner()->PostTask(
199 FROM_HERE, base::Bind(&UiSceneManager::SetWebVrMode, weak_scene_manager_, 199 FROM_HERE, base::Bind(&UiSceneManager::SetWebVrMode, weak_scene_manager_,
200 enabled, auto_presented, show_toast)); 200 enabled, show_toast));
201 } 201 }
202 202
203 void VrGLThread::SetWebVrSecureOrigin(bool secure) { 203 void VrGLThread::SetWebVrSecureOrigin(bool secure) {
204 WaitUntilThreadStarted(); 204 WaitUntilThreadStarted();
205 task_runner()->PostTask(FROM_HERE, 205 task_runner()->PostTask(FROM_HERE,
206 base::Bind(&UiSceneManager::SetWebVrSecureOrigin, 206 base::Bind(&UiSceneManager::SetWebVrSecureOrigin,
207 weak_scene_manager_, secure)); 207 weak_scene_manager_, secure));
208 } 208 }
209 209
210 void VrGLThread::SetAudioCapturingIndicator(bool enabled) { 210 void VrGLThread::SetAudioCapturingIndicator(bool enabled) {
(...skipping 13 matching lines...) Expand all
224 FROM_HERE, base::Bind(&UiSceneManager::SetScreenCapturingIndicator, 224 FROM_HERE, base::Bind(&UiSceneManager::SetScreenCapturingIndicator,
225 weak_scene_manager_, enabled)); 225 weak_scene_manager_, enabled));
226 } 226 }
227 227
228 void VrGLThread::SetIsExiting() { 228 void VrGLThread::SetIsExiting() {
229 WaitUntilThreadStarted(); 229 WaitUntilThreadStarted();
230 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetIsExiting, 230 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetIsExiting,
231 weak_scene_manager_)); 231 weak_scene_manager_));
232 } 232 }
233 233
234 void VrGLThread::SetSplashScreenIcon(const SkBitmap& bitmap) {
235 WaitUntilThreadStarted();
236 task_runner()->PostTask(FROM_HERE,
237 base::Bind(&UiSceneManager::SetSplashScreenIcon,
238 weak_scene_manager_, bitmap));
239 }
240
234 void VrGLThread::CleanUp() { 241 void VrGLThread::CleanUp() {
235 scene_manager_.reset(); 242 scene_manager_.reset();
236 vr_shell_gl_.reset(); 243 vr_shell_gl_.reset();
237 scene_.reset(); 244 scene_.reset();
238 } 245 }
239 246
240 } // namespace vr_shell 247 } // namespace vr_shell
OLDNEW
« no previous file with comments | « chrome/browser/android/vr_shell/vr_gl_thread.h ('k') | chrome/browser/android/vr_shell/vr_shell.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698