| 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() {
|
| + 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);
|
| };
|
|
|