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

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

Issue 2834543006: Hook up insecure content warnings for http webVR presentation. (Closed)
Patch Set: Add missing files Created 3 years, 8 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>
(...skipping 19 matching lines...) Expand all
30 RETICLE_VERTEX_SHADER, 30 RETICLE_VERTEX_SHADER,
31 RETICLE_FRAGMENT_SHADER, 31 RETICLE_FRAGMENT_SHADER,
32 LASER_VERTEX_SHADER, 32 LASER_VERTEX_SHADER,
33 LASER_FRAGMENT_SHADER, 33 LASER_FRAGMENT_SHADER,
34 GRADIENT_QUAD_VERTEX_SHADER, 34 GRADIENT_QUAD_VERTEX_SHADER,
35 GRADIENT_QUAD_FRAGMENT_SHADER, 35 GRADIENT_QUAD_FRAGMENT_SHADER,
36 GRADIENT_GRID_VERTEX_SHADER, 36 GRADIENT_GRID_VERTEX_SHADER,
37 GRADIENT_GRID_FRAGMENT_SHADER, 37 GRADIENT_GRID_FRAGMENT_SHADER,
38 CONTROLLER_VERTEX_SHADER, 38 CONTROLLER_VERTEX_SHADER,
39 CONTROLLER_FRAGMENT_SHADER, 39 CONTROLLER_FRAGMENT_SHADER,
40 SKIA_QUAD_VERTEX_SHADER,
41 SKIA_QUAD_FRAGMENT_SHADER,
40 SHADER_ID_MAX 42 SHADER_ID_MAX
41 }; 43 };
42 44
43 struct Vertex3d { 45 struct Vertex3d {
44 float x; 46 float x;
45 float y; 47 float y;
46 float z; 48 float z;
47 }; 49 };
48 50
49 struct RectF { 51 struct RectF {
50 float x; 52 float x;
51 float y; 53 float y;
52 float width; 54 float width;
53 float height; 55 float height;
54 }; 56 };
55 57
56 struct Line3d { 58 struct Line3d {
57 Vertex3d start; 59 Vertex3d start;
58 Vertex3d end; 60 Vertex3d end;
59 }; 61 };
60 62
61 struct TexturedQuad { 63 struct SkiaQuad {
62 int texture_data_handle; 64 int texture_data_handle;
63 vr::Mat4f view_proj_matrix; 65 vr::Mat4f view_proj_matrix;
64 RectF copy_rect; 66 RectF copy_rect;
65 float opacity; 67 float opacity;
66 }; 68 };
67 69
68 class BaseRenderer { 70 class BaseRenderer {
69 public: 71 public:
70 virtual ~BaseRenderer(); 72 virtual ~BaseRenderer();
71 73
(...skipping 22 matching lines...) Expand all
94 96
95 DISALLOW_COPY_AND_ASSIGN(BaseQuadRenderer); 97 DISALLOW_COPY_AND_ASSIGN(BaseQuadRenderer);
96 }; 98 };
97 99
98 class TexturedQuadRenderer : public BaseQuadRenderer { 100 class TexturedQuadRenderer : public BaseQuadRenderer {
99 public: 101 public:
100 TexturedQuadRenderer(); 102 TexturedQuadRenderer();
101 ~TexturedQuadRenderer() override; 103 ~TexturedQuadRenderer() override;
102 104
103 // Draw the content rect in the texture quad. 105 // Draw the content rect in the texture quad.
106 void Draw(int texture_data_handle,
107 const vr::Mat4f& view_proj_matrix,
108 const gfx::RectF& copy_rect,
109 float opacity);
110
111 private:
112 GLuint model_view_proj_matrix_handle_;
113 GLuint copy_rect_uniform_handle_;
114 GLuint tex_uniform_handle_;
115 GLuint opacity_handle_;
116
117 DISALLOW_COPY_AND_ASSIGN(TexturedQuadRenderer);
118 };
119
120 class SkiaQuadRenderer : public BaseQuadRenderer {
121 public:
122 SkiaQuadRenderer();
123 ~SkiaQuadRenderer() override;
124
125 // Draw the content rect in the texture quad.
104 void AddQuad(int texture_data_handle, 126 void AddQuad(int texture_data_handle,
105 const vr::Mat4f& view_proj_matrix, 127 const vr::Mat4f& view_proj_matrix,
106 const gfx::RectF& copy_rect, 128 const gfx::RectF& copy_rect,
107 float opacity); 129 float opacity);
108 130
109 void Flush(); 131 void Flush();
110 132
111 private: 133 private:
112 GLuint model_view_proj_matrix_handle_; 134 GLuint model_view_proj_matrix_handle_;
113 GLuint copy_rect_uniform_handle_; 135 GLuint copy_rect_uniform_handle_;
114 GLuint tex_uniform_handle_; 136 GLuint tex_uniform_handle_;
115 GLuint opacity_handle_; 137 GLuint opacity_handle_;
116 138
117 std::queue<TexturedQuad> quad_queue_; 139 std::queue<SkiaQuad> quad_queue_;
118 140
119 DISALLOW_COPY_AND_ASSIGN(TexturedQuadRenderer); 141 DISALLOW_COPY_AND_ASSIGN(SkiaQuadRenderer);
120 }; 142 };
121 143
122 // Renders a page-generated stereo VR view. 144 // Renders a page-generated stereo VR view.
123 class WebVrRenderer : public BaseQuadRenderer { 145 class WebVrRenderer : public BaseQuadRenderer {
124 public: 146 public:
125 WebVrRenderer(); 147 WebVrRenderer();
126 ~WebVrRenderer() override; 148 ~WebVrRenderer() override;
127 149
128 void Draw(int texture_handle); 150 void Draw(int texture_handle);
129 151
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 std::vector<Line3d> grid_lines_; 268 std::vector<Line3d> grid_lines_;
247 269
248 DISALLOW_COPY_AND_ASSIGN(GradientGridRenderer); 270 DISALLOW_COPY_AND_ASSIGN(GradientGridRenderer);
249 }; 271 };
250 272
251 class VrShellRenderer { 273 class VrShellRenderer {
252 public: 274 public:
253 VrShellRenderer(); 275 VrShellRenderer();
254 ~VrShellRenderer(); 276 ~VrShellRenderer();
255 277
256 TexturedQuadRenderer* GetTexturedQuadRenderer() { 278 TexturedQuadRenderer* GetTexturedQuadRenderer();
257 return textured_quad_renderer_.get(); 279 SkiaQuadRenderer* GetSkiaQuadRenderer();
258 } 280 WebVrRenderer* GetWebVrRenderer();
259 281 ReticleRenderer* GetReticleRenderer();
260 WebVrRenderer* GetWebVrRenderer() { return webvr_renderer_.get(); } 282 LaserRenderer* GetLaserRenderer();
261 283 ControllerRenderer* GetControllerRenderer();
262 ReticleRenderer* GetReticleRenderer() { return reticle_renderer_.get(); } 284 GradientQuadRenderer* GetGradientQuadRenderer();
263 285 GradientGridRenderer* GetGradientGridRenderer();
264 LaserRenderer* GetLaserRenderer() { return laser_renderer_.get(); }
265
266 ControllerRenderer* GetControllerRenderer() {
267 return controller_renderer_.get();
268 }
269
270 GradientQuadRenderer* GetGradientQuadRenderer() {
271 return gradient_quad_renderer_.get();
272 }
273
274 GradientGridRenderer* GetGradientGridRenderer() {
275 return gradient_grid_renderer_.get();
276 }
277 286
278 private: 287 private:
279 std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_; 288 std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_;
289 std::unique_ptr<SkiaQuadRenderer> skia_quad_renderer_;
280 std::unique_ptr<WebVrRenderer> webvr_renderer_; 290 std::unique_ptr<WebVrRenderer> webvr_renderer_;
281 std::unique_ptr<ReticleRenderer> reticle_renderer_; 291 std::unique_ptr<ReticleRenderer> reticle_renderer_;
282 std::unique_ptr<LaserRenderer> laser_renderer_; 292 std::unique_ptr<LaserRenderer> laser_renderer_;
283 std::unique_ptr<ControllerRenderer> controller_renderer_; 293 std::unique_ptr<ControllerRenderer> controller_renderer_;
284 std::unique_ptr<GradientQuadRenderer> gradient_quad_renderer_; 294 std::unique_ptr<GradientQuadRenderer> gradient_quad_renderer_;
285 std::unique_ptr<GradientGridRenderer> gradient_grid_renderer_; 295 std::unique_ptr<GradientGridRenderer> gradient_grid_renderer_;
286 296
287 DISALLOW_COPY_AND_ASSIGN(VrShellRenderer); 297 DISALLOW_COPY_AND_ASSIGN(VrShellRenderer);
288 }; 298 };
289 299
290 } // namespace vr_shell 300 } // namespace vr_shell
291 301
292 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_ 302 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_RENDERER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698