Chromium Code Reviews| Index: chrome/browser/android/vr_shell/vr_shell_renderer.h | 
| diff --git a/chrome/browser/android/vr_shell/vr_shell_renderer.h b/chrome/browser/android/vr_shell/vr_shell_renderer.h | 
| index 05d6228842d339c2dde0a3ed5127c2c98fae6543..87661abf9a023706dec7cacebcce42236d28aab4 100644 | 
| --- a/chrome/browser/android/vr_shell/vr_shell_renderer.h | 
| +++ b/chrome/browser/android/vr_shell/vr_shell_renderer.h | 
| @@ -29,6 +29,8 @@ enum ShaderID { | 
| RETICLE_FRAGMENT_SHADER, | 
| LASER_VERTEX_SHADER, | 
| LASER_FRAGMENT_SHADER, | 
| + OVERLAY_ICON_VERTEX_SHADER, | 
| + OVERLAY_ICON_FRAGMENT_SHADER, | 
| SHADER_ID_MAX | 
| }; | 
| @@ -130,6 +132,41 @@ class LaserRenderer : public BaseRenderer { | 
| DISALLOW_COPY_AND_ASSIGN(LaserRenderer); | 
| }; | 
| +// Renders icons as static overlays. | 
| +enum OverlayIconID { | 
| + ICON_INSECURE_PERMANENT = 0, | 
| + ICON_INSECURE_TRANSIENT, | 
| + ICON_ID_MAX | 
| +}; | 
| + | 
| +class OverlayIconRenderer { | 
| + public: | 
| + OverlayIconRenderer(); | 
| + ~OverlayIconRenderer(); | 
| + | 
| + void Draw(const gvr::Mat4f& combined_matrix, int icon_num); | 
| + | 
| + private: | 
| + static constexpr size_t VERTEX_STRIDE = sizeof(float) * 4; | 
| + static constexpr size_t POSITION_ELEMENTS = 2; | 
| + static constexpr size_t TEXCOORD_ELEMENTS = 2; | 
| + static constexpr size_t POSITION_OFFSET = 0; | 
| + static constexpr size_t TEXCOORD_OFFSET = sizeof(float) * 2; | 
| + | 
| + GLuint program_handle_; | 
| + GLuint tex_uniform_handle_; | 
| + GLuint texture_data_handles_[ICON_ID_MAX]; | 
| + GLuint src_rect_uniform_handle_; | 
| + GLuint position_handle_; | 
| + GLuint texcoord_handle_; | 
| + GLuint vertex_buffer_; | 
| + GLuint combined_matrix_handle_; | 
| + | 
| + gvr::Rectf bounds_; | 
| + | 
| + DISALLOW_COPY_AND_ASSIGN(OverlayIconRenderer); | 
| +}; | 
| + | 
| class VrShellRenderer { | 
| public: | 
| VrShellRenderer(); | 
| @@ -151,11 +188,16 @@ class VrShellRenderer { | 
| return laser_renderer_.get(); | 
| } | 
| + OverlayIconRenderer* GetOverlayIconRenderer() { | 
| 
 
bajones
2016/09/22 22:13:30
Forgive my ignorance, but it seems like the Textur
 
 | 
| + return overlay_icon_renderer_.get(); | 
| + } | 
| + | 
| private: | 
| std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_; | 
| std::unique_ptr<WebVrRenderer> webvr_renderer_; | 
| std::unique_ptr<ReticleRenderer> reticle_renderer_; | 
| std::unique_ptr<LaserRenderer> laser_renderer_; | 
| + std::unique_ptr<OverlayIconRenderer> overlay_icon_renderer_; | 
| DISALLOW_COPY_AND_ASSIGN(VrShellRenderer); | 
| }; |