| OLD | NEW |
| 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 Loading... |
| 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_ |
| OLD | NEW |