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

Side by Side Diff: chrome/browser/android/vr_shell/vr_shell_renderer.h

Issue 2923043003: VR: Split off UI code into a library to ease future unit testing. (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 #ifndef CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_ 5 #ifndef CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_
6 #define CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_ 6 #define CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <queue> 9 #include <queue>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "chrome/browser/android/vr_shell/ui_element_renderer.h"
13 #include "chrome/browser/android/vr_shell/vr_controller_model.h" 14 #include "chrome/browser/android/vr_shell/vr_controller_model.h"
14 #include "device/vr/vr_types.h" 15 #include "device/vr/vr_types.h"
15 #include "ui/gl/gl_bindings.h" 16 #include "ui/gl/gl_bindings.h"
16 17
17 namespace vr_shell { 18 namespace vr_shell {
18 19
19 // TODO(tiborg): set background color through JS API. 20 // TODO(tiborg): set background color through JS API.
20 constexpr float kFogBrightness = 0.57f; 21 constexpr float kFogBrightness = 0.57f;
21 22
22 enum ShaderID { 23 enum ShaderID {
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 GLuint scene_radius_handle_; 265 GLuint scene_radius_handle_;
265 GLuint center_color_handle_; 266 GLuint center_color_handle_;
266 GLuint edge_color_handle_; 267 GLuint edge_color_handle_;
267 GLuint grid_color_handle_; 268 GLuint grid_color_handle_;
268 GLuint opacity_handle_; 269 GLuint opacity_handle_;
269 GLuint lines_count_handle_; 270 GLuint lines_count_handle_;
270 271
271 DISALLOW_COPY_AND_ASSIGN(GradientGridRenderer); 272 DISALLOW_COPY_AND_ASSIGN(GradientGridRenderer);
272 }; 273 };
273 274
274 class VrShellRenderer { 275 class VrShellRenderer : public UiElementRenderer {
275 public: 276 public:
276 VrShellRenderer(); 277 VrShellRenderer();
277 ~VrShellRenderer(); 278 ~VrShellRenderer() override;
278 279
280 // UiElementRenderer interface (exposed to UI elements).
281 void DrawTexturedQuad(int texture_data_handle,
282 const vr::Mat4f& view_proj_matrix,
283 const gfx::RectF& copy_rect,
284 float opacity) override;
285 void DrawGradientQuad(const vr::Mat4f& view_proj_matrix,
286 const SkColor edge_color,
287 const SkColor center_color,
288 float opacity) override;
289
290 // VrShell's internal GL rendering API.
279 ExternalTexturedQuadRenderer* GetExternalTexturedQuadRenderer(); 291 ExternalTexturedQuadRenderer* GetExternalTexturedQuadRenderer();
280 TexturedQuadRenderer* GetTexturedQuadRenderer(); 292 TexturedQuadRenderer* GetTexturedQuadRenderer();
281 WebVrRenderer* GetWebVrRenderer(); 293 WebVrRenderer* GetWebVrRenderer();
282 ReticleRenderer* GetReticleRenderer(); 294 ReticleRenderer* GetReticleRenderer();
283 LaserRenderer* GetLaserRenderer(); 295 LaserRenderer* GetLaserRenderer();
284 ControllerRenderer* GetControllerRenderer(); 296 ControllerRenderer* GetControllerRenderer();
285 GradientQuadRenderer* GetGradientQuadRenderer(); 297 GradientQuadRenderer* GetGradientQuadRenderer();
286 GradientGridRenderer* GetGradientGridRenderer(); 298 GradientGridRenderer* GetGradientGridRenderer();
287 void Flush(); 299 void Flush();
288 300
289 private: 301 private:
290 std::unique_ptr<ExternalTexturedQuadRenderer> 302 std::unique_ptr<ExternalTexturedQuadRenderer>
291 external_textured_quad_renderer_; 303 external_textured_quad_renderer_;
292 std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_; 304 std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_;
293 std::unique_ptr<WebVrRenderer> webvr_renderer_; 305 std::unique_ptr<WebVrRenderer> webvr_renderer_;
294 std::unique_ptr<ReticleRenderer> reticle_renderer_; 306 std::unique_ptr<ReticleRenderer> reticle_renderer_;
295 std::unique_ptr<LaserRenderer> laser_renderer_; 307 std::unique_ptr<LaserRenderer> laser_renderer_;
296 std::unique_ptr<ControllerRenderer> controller_renderer_; 308 std::unique_ptr<ControllerRenderer> controller_renderer_;
297 std::unique_ptr<GradientQuadRenderer> gradient_quad_renderer_; 309 std::unique_ptr<GradientQuadRenderer> gradient_quad_renderer_;
298 std::unique_ptr<GradientGridRenderer> gradient_grid_renderer_; 310 std::unique_ptr<GradientGridRenderer> gradient_grid_renderer_;
299 311
300 DISALLOW_COPY_AND_ASSIGN(VrShellRenderer); 312 DISALLOW_COPY_AND_ASSIGN(VrShellRenderer);
301 }; 313 };
302 314
303 } // namespace vr_shell 315 } // namespace vr_shell
304 316
305 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_ 317 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_
OLDNEW
« no previous file with comments | « chrome/browser/android/vr_shell/ui_scene_manager.cc ('k') | chrome/browser/android/vr_shell/vr_shell_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698