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

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

Issue 2363553003: VrShell: implement insecure content warning display (Closed)
Patch Set: Ready for review Created 4 years, 2 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 <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 11 matching lines...) Expand all
22 enum ShaderID { 22 enum ShaderID {
23 SHADER_UNRECOGNIZED = 0, 23 SHADER_UNRECOGNIZED = 0,
24 TEXTURE_QUAD_VERTEX_SHADER, 24 TEXTURE_QUAD_VERTEX_SHADER,
25 TEXTURE_QUAD_FRAGMENT_SHADER, 25 TEXTURE_QUAD_FRAGMENT_SHADER,
26 WEBVR_VERTEX_SHADER, 26 WEBVR_VERTEX_SHADER,
27 WEBVR_FRAGMENT_SHADER, 27 WEBVR_FRAGMENT_SHADER,
28 RETICLE_VERTEX_SHADER, 28 RETICLE_VERTEX_SHADER,
29 RETICLE_FRAGMENT_SHADER, 29 RETICLE_FRAGMENT_SHADER,
30 LASER_VERTEX_SHADER, 30 LASER_VERTEX_SHADER,
31 LASER_FRAGMENT_SHADER, 31 LASER_FRAGMENT_SHADER,
32 OVERLAY_ICON_VERTEX_SHADER,
33 OVERLAY_ICON_FRAGMENT_SHADER,
32 SHADER_ID_MAX 34 SHADER_ID_MAX
33 }; 35 };
34 36
35 class BaseRenderer { 37 class BaseRenderer {
36 public: 38 public:
37 virtual ~BaseRenderer(); 39 virtual ~BaseRenderer();
38 40
39 protected: 41 protected:
40 BaseRenderer(ShaderID vertex_id, ShaderID fragment_id); 42 BaseRenderer(ShaderID vertex_id, ShaderID fragment_id);
41 43
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 125
124 GLuint texture_unit_handle_; 126 GLuint texture_unit_handle_;
125 GLuint texture_data_handle_; 127 GLuint texture_data_handle_;
126 GLuint color_handle_; 128 GLuint color_handle_;
127 GLuint fade_point_handle_; 129 GLuint fade_point_handle_;
128 GLuint fade_end_handle_; 130 GLuint fade_end_handle_;
129 131
130 DISALLOW_COPY_AND_ASSIGN(LaserRenderer); 132 DISALLOW_COPY_AND_ASSIGN(LaserRenderer);
131 }; 133 };
132 134
135 // Renders icons as static overlays.
136 enum OverlayIconID {
137 ICON_INSECURE_PERMANENT = 0,
138 ICON_INSECURE_TRANSIENT,
139 ICON_ID_MAX
140 };
141
142 class OverlayIconRenderer {
143 public:
144 OverlayIconRenderer();
145 ~OverlayIconRenderer();
146
147 void Draw(const gvr::Mat4f& combined_matrix, int icon_num);
148
149 private:
150 static constexpr size_t VERTEX_STRIDE = sizeof(float) * 4;
151 static constexpr size_t POSITION_ELEMENTS = 2;
152 static constexpr size_t TEXCOORD_ELEMENTS = 2;
153 static constexpr size_t POSITION_OFFSET = 0;
154 static constexpr size_t TEXCOORD_OFFSET = sizeof(float) * 2;
155
156 GLuint program_handle_;
157 GLuint tex_uniform_handle_;
158 GLuint texture_data_handles_[ICON_ID_MAX];
159 GLuint src_rect_uniform_handle_;
160 GLuint position_handle_;
161 GLuint texcoord_handle_;
162 GLuint vertex_buffer_;
163 GLuint combined_matrix_handle_;
164
165 gvr::Rectf bounds_;
166
167 DISALLOW_COPY_AND_ASSIGN(OverlayIconRenderer);
168 };
169
133 class VrShellRenderer { 170 class VrShellRenderer {
134 public: 171 public:
135 VrShellRenderer(); 172 VrShellRenderer();
136 ~VrShellRenderer(); 173 ~VrShellRenderer();
137 174
138 TexturedQuadRenderer* GetTexturedQuadRenderer() { 175 TexturedQuadRenderer* GetTexturedQuadRenderer() {
139 return textured_quad_renderer_.get(); 176 return textured_quad_renderer_.get();
140 } 177 }
141 178
142 WebVrRenderer* GetWebVrRenderer() { 179 WebVrRenderer* GetWebVrRenderer() {
143 return webvr_renderer_.get(); 180 return webvr_renderer_.get();
144 } 181 }
145 182
146 ReticleRenderer* GetReticleRenderer() { 183 ReticleRenderer* GetReticleRenderer() {
147 return reticle_renderer_.get(); 184 return reticle_renderer_.get();
148 } 185 }
149 186
150 LaserRenderer* GetLaserRenderer() { 187 LaserRenderer* GetLaserRenderer() {
151 return laser_renderer_.get(); 188 return laser_renderer_.get();
152 } 189 }
153 190
191 OverlayIconRenderer* GetOverlayIconRenderer() {
bajones 2016/09/22 22:13:30 Forgive my ignorance, but it seems like the Textur
192 return overlay_icon_renderer_.get();
193 }
194
154 private: 195 private:
155 std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_; 196 std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_;
156 std::unique_ptr<WebVrRenderer> webvr_renderer_; 197 std::unique_ptr<WebVrRenderer> webvr_renderer_;
157 std::unique_ptr<ReticleRenderer> reticle_renderer_; 198 std::unique_ptr<ReticleRenderer> reticle_renderer_;
158 std::unique_ptr<LaserRenderer> laser_renderer_; 199 std::unique_ptr<LaserRenderer> laser_renderer_;
200 std::unique_ptr<OverlayIconRenderer> overlay_icon_renderer_;
159 201
160 DISALLOW_COPY_AND_ASSIGN(VrShellRenderer); 202 DISALLOW_COPY_AND_ASSIGN(VrShellRenderer);
161 }; 203 };
162 204
163 } // namespace vr_shell 205 } // namespace vr_shell
164 206
165 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_ 207 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698