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

Unified Diff: chrome/browser/android/vr_shell/vr_shell_renderer.h

Issue 2834543006: Hook up insecure content warnings for http webVR presentation. (Closed)
Patch Set: rebase 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 side-by-side diff with in-line comments
Download patch
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 98714797e3da986267b1ff2e6dc213ef2804a86c..0b1c5aaf7b495095288ceaceebf4367cf4bad02b 100644
--- a/chrome/browser/android/vr_shell/vr_shell_renderer.h
+++ b/chrome/browser/android/vr_shell/vr_shell_renderer.h
@@ -19,12 +19,10 @@ namespace vr_shell {
// TODO(tiborg): set background color through JS API.
constexpr float kFogBrightness = 0.57f;
-typedef unsigned int GLuint;
-
enum ShaderID {
SHADER_UNRECOGNIZED = 0,
- TEXTURE_QUAD_VERTEX_SHADER,
- TEXTURE_QUAD_FRAGMENT_SHADER,
+ EXTERNAL_TEXTURED_QUAD_VERTEX_SHADER,
+ EXTERNAL_TEXTURED_QUAD_FRAGMENT_SHADER,
WEBVR_VERTEX_SHADER,
WEBVR_FRAGMENT_SHADER,
RETICLE_VERTEX_SHADER,
@@ -37,6 +35,8 @@ enum ShaderID {
GRADIENT_GRID_FRAGMENT_SHADER,
CONTROLLER_VERTEX_SHADER,
CONTROLLER_FRAGMENT_SHADER,
+ TEXTURED_QUAD_VERTEX_SHADER,
+ TEXTURED_QUAD_FRAGMENT_SHADER,
SHADER_ID_MAX
};
@@ -58,7 +58,7 @@ struct Line3d {
Vertex3d end;
};
-struct TexturedQuad {
+struct SkiaQuad {
int texture_data_handle;
vr::Mat4f view_proj_matrix;
RectF copy_rect;
@@ -95,6 +95,26 @@ class BaseQuadRenderer : public BaseRenderer {
DISALLOW_COPY_AND_ASSIGN(BaseQuadRenderer);
};
+class ExternalTexturedQuadRenderer : public BaseQuadRenderer {
+ public:
+ ExternalTexturedQuadRenderer();
+ ~ExternalTexturedQuadRenderer() override;
+
+ // Draw the content rect in the texture quad.
+ void Draw(int texture_data_handle,
+ const vr::Mat4f& view_proj_matrix,
+ const gfx::RectF& copy_rect,
+ float opacity);
+
+ private:
+ GLuint model_view_proj_matrix_handle_;
+ GLuint copy_rect_uniform_handle_;
+ GLuint tex_uniform_handle_;
+ GLuint opacity_handle_;
+
+ DISALLOW_COPY_AND_ASSIGN(ExternalTexturedQuadRenderer);
+};
+
class TexturedQuadRenderer : public BaseQuadRenderer {
public:
TexturedQuadRenderer();
@@ -114,7 +134,7 @@ class TexturedQuadRenderer : public BaseQuadRenderer {
GLuint tex_uniform_handle_;
GLuint opacity_handle_;
- std::queue<TexturedQuad> quad_queue_;
+ std::queue<SkiaQuad> quad_queue_;
DISALLOW_COPY_AND_ASSIGN(TexturedQuadRenderer);
};
@@ -253,29 +273,19 @@ class VrShellRenderer {
VrShellRenderer();
~VrShellRenderer();
- TexturedQuadRenderer* GetTexturedQuadRenderer() {
- return textured_quad_renderer_.get();
- }
-
- WebVrRenderer* GetWebVrRenderer() { return webvr_renderer_.get(); }
-
- ReticleRenderer* GetReticleRenderer() { return reticle_renderer_.get(); }
-
- LaserRenderer* GetLaserRenderer() { return laser_renderer_.get(); }
-
- ControllerRenderer* GetControllerRenderer() {
- return controller_renderer_.get();
- }
-
- GradientQuadRenderer* GetGradientQuadRenderer() {
- return gradient_quad_renderer_.get();
- }
-
- GradientGridRenderer* GetGradientGridRenderer() {
- return gradient_grid_renderer_.get();
- }
+ ExternalTexturedQuadRenderer* GetExternalTexturedQuadRenderer();
+ TexturedQuadRenderer* GetTexturedQuadRenderer();
+ WebVrRenderer* GetWebVrRenderer();
+ ReticleRenderer* GetReticleRenderer();
+ LaserRenderer* GetLaserRenderer();
+ ControllerRenderer* GetControllerRenderer();
+ GradientQuadRenderer* GetGradientQuadRenderer();
+ GradientGridRenderer* GetGradientGridRenderer();
+ void Flush();
private:
+ std::unique_ptr<ExternalTexturedQuadRenderer>
+ external_textured_quad_renderer_;
std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_;
std::unique_ptr<WebVrRenderer> webvr_renderer_;
std::unique_ptr<ReticleRenderer> reticle_renderer_;
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_gl.cc ('k') | chrome/browser/android/vr_shell/vr_shell_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698