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

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: . Created 3 years, 6 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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 base::Bind(&UiSceneManager::SetSecurityLevel, 178 base::Bind(&UiSceneManager::SetSecurityLevel,
177 weak_scene_manager_, level)); 179 weak_scene_manager_, level));
178 } 180 }
179 181
180 void VrGLThread::SetURL(const GURL& gurl) { 182 void VrGLThread::SetURL(const GURL& gurl) {
181 WaitUntilThreadStarted(); 183 WaitUntilThreadStarted();
182 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetURL, 184 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetURL,
183 weak_scene_manager_, gurl)); 185 weak_scene_manager_, gurl));
184 } 186 }
185 187
186 void VrGLThread::SetWebVrMode(bool enabled, bool auto_presented) { 188 void VrGLThread::SetWebVrMode(bool enabled) {
187 WaitUntilThreadStarted(); 189 WaitUntilThreadStarted();
188 task_runner()->PostTask( 190 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetWebVrMode,
189 FROM_HERE, base::Bind(&UiSceneManager::SetWebVrMode, weak_scene_manager_, 191 weak_scene_manager_, enabled));
190 enabled, auto_presented));
191 } 192 }
192 193
193 void VrGLThread::SetWebVrSecureOrigin(bool secure) { 194 void VrGLThread::SetWebVrSecureOrigin(bool secure) {
194 WaitUntilThreadStarted(); 195 WaitUntilThreadStarted();
195 task_runner()->PostTask(FROM_HERE, 196 task_runner()->PostTask(FROM_HERE,
196 base::Bind(&UiSceneManager::SetWebVrSecureOrigin, 197 base::Bind(&UiSceneManager::SetWebVrSecureOrigin,
197 weak_scene_manager_, secure)); 198 weak_scene_manager_, secure));
198 } 199 }
199 200
200 void VrGLThread::SetAudioCapturingIndicator(bool enabled) { 201 void VrGLThread::SetAudioCapturingIndicator(bool enabled) {
(...skipping 13 matching lines...) Expand all
214 FROM_HERE, base::Bind(&UiSceneManager::SetScreenCapturingIndicator, 215 FROM_HERE, base::Bind(&UiSceneManager::SetScreenCapturingIndicator,
215 weak_scene_manager_, enabled)); 216 weak_scene_manager_, enabled));
216 } 217 }
217 218
218 void VrGLThread::SetIsExiting() { 219 void VrGLThread::SetIsExiting() {
219 WaitUntilThreadStarted(); 220 WaitUntilThreadStarted();
220 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetIsExiting, 221 task_runner()->PostTask(FROM_HERE, base::Bind(&UiSceneManager::SetIsExiting,
221 weak_scene_manager_)); 222 weak_scene_manager_));
222 } 223 }
223 224
225 void VrGLThread::SetSplashScreenIcon(SkBitmap bitmap) {
226 WaitUntilThreadStarted();
227 task_runner()->PostTask(FROM_HERE,
228 base::Bind(&UiSceneManager::SetSplashScreenIcon,
229 weak_scene_manager_, bitmap));
cjgrant 2017/06/23 19:26:33 My binding could be rusty, but I think you want to
230 }
231
224 void VrGLThread::CleanUp() { 232 void VrGLThread::CleanUp() {
225 scene_manager_.reset(); 233 scene_manager_.reset();
226 vr_shell_gl_.reset(); 234 vr_shell_gl_.reset();
227 scene_.reset(); 235 scene_.reset();
228 } 236 }
229 237
230 } // namespace vr_shell 238 } // namespace vr_shell
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698