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

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

Issue 2903363002: VR: Split off UI code into a library to ease future unit testing. (Closed)
Patch Set: More tweaks. 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 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 GLuint model_view_proj_matrix_handle_; 266 GLuint model_view_proj_matrix_handle_;
266 GLuint scene_radius_handle_; 267 GLuint scene_radius_handle_;
267 GLuint center_color_handle_; 268 GLuint center_color_handle_;
268 GLuint edge_color_handle_; 269 GLuint edge_color_handle_;
269 GLuint opacity_handle_; 270 GLuint opacity_handle_;
270 std::vector<Line3d> grid_lines_; 271 std::vector<Line3d> grid_lines_;
271 272
272 DISALLOW_COPY_AND_ASSIGN(GradientGridRenderer); 273 DISALLOW_COPY_AND_ASSIGN(GradientGridRenderer);
273 }; 274 };
274 275
275 class VrShellRenderer { 276 class VrShellRenderer : public UiElementRenderer {
276 public: 277 public:
277 VrShellRenderer(); 278 VrShellRenderer();
278 ~VrShellRenderer(); 279 ~VrShellRenderer() override;
279 280
281 // UiElementRenderer interface (exposed to UI elements).
282 void DrawTexturedQuad(int texture_data_handle,
283 const vr::Mat4f& view_proj_matrix,
284 const gfx::RectF& copy_rect,
285 float opacity) override;
286 void DrawGradientQuad(const vr::Mat4f& view_proj_matrix,
287 const SkColor edge_color,
288 const SkColor center_color,
289 float opacity) override;
290
291 // VrShell's internal GL rendering API.
280 ExternalTexturedQuadRenderer* GetExternalTexturedQuadRenderer(); 292 ExternalTexturedQuadRenderer* GetExternalTexturedQuadRenderer();
281 TexturedQuadRenderer* GetTexturedQuadRenderer(); 293 TexturedQuadRenderer* GetTexturedQuadRenderer();
282 WebVrRenderer* GetWebVrRenderer(); 294 WebVrRenderer* GetWebVrRenderer();
283 ReticleRenderer* GetReticleRenderer(); 295 ReticleRenderer* GetReticleRenderer();
284 LaserRenderer* GetLaserRenderer(); 296 LaserRenderer* GetLaserRenderer();
285 ControllerRenderer* GetControllerRenderer(); 297 ControllerRenderer* GetControllerRenderer();
286 GradientQuadRenderer* GetGradientQuadRenderer(); 298 GradientQuadRenderer* GetGradientQuadRenderer();
287 GradientGridRenderer* GetGradientGridRenderer(); 299 GradientGridRenderer* GetGradientGridRenderer();
288 void Flush(); 300 void Flush();
289 301
290 private: 302 private:
291 std::unique_ptr<ExternalTexturedQuadRenderer> 303 std::unique_ptr<ExternalTexturedQuadRenderer>
292 external_textured_quad_renderer_; 304 external_textured_quad_renderer_;
293 std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_; 305 std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_;
294 std::unique_ptr<WebVrRenderer> webvr_renderer_; 306 std::unique_ptr<WebVrRenderer> webvr_renderer_;
295 std::unique_ptr<ReticleRenderer> reticle_renderer_; 307 std::unique_ptr<ReticleRenderer> reticle_renderer_;
296 std::unique_ptr<LaserRenderer> laser_renderer_; 308 std::unique_ptr<LaserRenderer> laser_renderer_;
297 std::unique_ptr<ControllerRenderer> controller_renderer_; 309 std::unique_ptr<ControllerRenderer> controller_renderer_;
298 std::unique_ptr<GradientQuadRenderer> gradient_quad_renderer_; 310 std::unique_ptr<GradientQuadRenderer> gradient_quad_renderer_;
299 std::unique_ptr<GradientGridRenderer> gradient_grid_renderer_; 311 std::unique_ptr<GradientGridRenderer> gradient_grid_renderer_;
300 312
301 DISALLOW_COPY_AND_ASSIGN(VrShellRenderer); 313 DISALLOW_COPY_AND_ASSIGN(VrShellRenderer);
302 }; 314 };
303 315
304 } // namespace vr_shell 316 } // namespace vr_shell
305 317
306 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_ 318 #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