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

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

Issue 2668093002: VrShell background implemented in JS. (Closed)
Patch Set: Fixed tests Created 3 years, 10 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 f3318f2e501764b21df0f39c5c50af829815fee2..e83a1141ec7963ac1d551aa82e1a39469944935a 100644
--- a/chrome/browser/android/vr_shell/vr_shell_renderer.h
+++ b/chrome/browser/android/vr_shell/vr_shell_renderer.h
@@ -15,6 +15,9 @@
namespace vr_shell {
+// TODO(tiborg): set background color through JS API.
+constexpr float kFogBrightness = 0.57f;
+
typedef unsigned int GLuint;
enum ShaderID {
@@ -27,8 +30,10 @@ enum ShaderID {
RETICLE_FRAGMENT_SHADER,
LASER_VERTEX_SHADER,
LASER_FRAGMENT_SHADER,
- BACKGROUND_VERTEX_SHADER,
- BACKGROUND_FRAGMENT_SHADER,
+ GRADIENT_QUAD_VERTEX_SHADER,
+ GRADIENT_QUAD_FRAGMENT_SHADER,
+ GRADIENT_GRID_VERTEX_SHADER,
+ GRADIENT_GRID_FRAGMENT_SHADER,
SHADER_ID_MAX
};
@@ -137,29 +142,48 @@ class LaserRenderer : public BaseRenderer {
DISALLOW_COPY_AND_ASSIGN(LaserRenderer);
};
-class BackgroundRenderer : public BaseRenderer {
+class GradientQuadRenderer : public BaseRenderer {
public:
- static constexpr float kFogBrightness = 0.57f;
- static constexpr float kGroundCeilingBrightness = 0.48f;
- static constexpr float kGridBrightness = 0.57f;
+ GradientQuadRenderer();
+ ~GradientQuadRenderer() override;
- BackgroundRenderer();
- ~BackgroundRenderer() override;
+ void Draw(const gvr::Mat4f& view_proj_matrix,
+ const Colorf& edge_color,
+ const Colorf& center_color,
+ float opacity);
- void Draw(const gvr::Mat4f& view_proj_matrix);
+ private:
+ GLuint model_view_proj_matrix_handle_;
+ GLuint scene_radius_handle_;
+ GLuint center_color_handle_;
+ GLuint edge_color_handle_;
+ GLuint opacity_handle_;
+
+ DISALLOW_COPY_AND_ASSIGN(GradientQuadRenderer);
+};
+
+class GradientGridRenderer : public BaseRenderer {
+ public:
+ GradientGridRenderer();
+ ~GradientGridRenderer() override;
+
+ void Draw(const gvr::Mat4f& view_proj_matrix,
+ const Colorf& edge_color,
+ const Colorf& center_color,
+ int gridline_count,
+ float opacity);
private:
+ void MakeGridLines(int gridline_count);
+
GLuint model_view_proj_matrix_handle_;
GLuint scene_radius_handle_;
GLuint center_color_handle_;
GLuint edge_color_handle_;
- std::vector<Line3d> ground_grid_lines_;
- std::vector<float> ground_ceiling_plane_positions_;
- gvr::Mat4f ground_plane_transform_mat_;
- gvr::Mat4f ceiling_plane_transform_mat_;
- float scene_radius_;
+ GLuint opacity_handle_;
+ std::vector<Line3d> grid_lines_;
- DISALLOW_COPY_AND_ASSIGN(BackgroundRenderer);
+ DISALLOW_COPY_AND_ASSIGN(GradientGridRenderer);
};
class VrShellRenderer {
@@ -183,8 +207,12 @@ class VrShellRenderer {
return laser_renderer_.get();
}
- BackgroundRenderer* GetBackgroundRenderer() {
- return background_renderer_.get();
+ GradientQuadRenderer* GetGradientQuadRenderer() {
+ return gradient_quad_renderer_.get();
+ }
+
+ GradientGridRenderer* GetGradientGridRenderer() {
+ return gradient_grid_renderer_.get();
}
private:
@@ -192,7 +220,8 @@ class VrShellRenderer {
std::unique_ptr<WebVrRenderer> webvr_renderer_;
std::unique_ptr<ReticleRenderer> reticle_renderer_;
std::unique_ptr<LaserRenderer> laser_renderer_;
- std::unique_ptr<BackgroundRenderer> background_renderer_;
+ std::unique_ptr<GradientQuadRenderer> gradient_quad_renderer_;
+ std::unique_ptr<GradientGridRenderer> gradient_grid_renderer_;
DISALLOW_COPY_AND_ASSIGN(VrShellRenderer);
};
« 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