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

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

Issue 2308683004: Added WebVR Render path to VrShell (Closed)
Patch Set: Addressed feedback Created 4 years, 3 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
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell.cc ('k') | chrome/browser/android/vr_shell/vr_shell_renderer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 540e91b1849de9ece88ef56423b7ef1c383dbb9f..2c69069e00f25c14e1f2ba5dca658cc8c5e390c1 100644
--- a/chrome/browser/android/vr_shell/vr_shell_renderer.h
+++ b/chrome/browser/android/vr_shell/vr_shell_renderer.h
@@ -21,6 +21,8 @@ enum ShaderID {
SHADER_UNRECOGNIZED = 0,
TEXTURE_QUAD_VERTEX_SHADER,
TEXTURE_QUAD_FRAGMENT_SHADER,
+ WEBVR_VERTEX_SHADER,
+ WEBVR_FRAGMENT_SHADER,
SHADER_ID_MAX
};
@@ -44,6 +46,36 @@ class TexturedQuadRenderer {
DISALLOW_COPY_AND_ASSIGN(TexturedQuadRenderer);
};
+// Renders a page-generated stereo VR view.
+class WebVrRenderer {
+ public:
+ WebVrRenderer();
+ ~WebVrRenderer();
+
+ void Draw(int texture_handle);
+
+ void UpdateTextureBounds(int eye, const gvr::Rectf& bounds);
+
+ 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 src_rect_uniform_handle_;
+ GLuint position_handle_;
+ GLuint texcoord_handle_;
+ GLuint vertex_buffer_;
+
+ gvr::Rectf left_bounds_;
+ gvr::Rectf right_bounds_;
+
+ DISALLOW_COPY_AND_ASSIGN(WebVrRenderer);
+};
+
class VrShellRenderer {
public:
VrShellRenderer();
@@ -53,8 +85,13 @@ class VrShellRenderer {
return textured_quad_renderer_.get();
}
+ WebVrRenderer* GetWebVrRenderer() {
+ return webvr_renderer_.get();
+ }
+
private:
std::unique_ptr<TexturedQuadRenderer> textured_quad_renderer_;
+ std::unique_ptr<WebVrRenderer> webvr_renderer_;
DISALLOW_COPY_AND_ASSIGN(VrShellRenderer);
};
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell.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