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

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

Issue 2906423002: [vr] Migrate from vr::Colorf to SkColor (Closed)
Patch Set: Created 3 years, 6 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
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_renderer.h ('k') | device/vr/vr_types.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "chrome/browser/android/vr_shell/vr_shell_renderer.h" 5 #include "chrome/browser/android/vr_shell/vr_shell_renderer.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <string> 9 #include <string>
10 10
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 lowp vec4 texture_color = texture2D(u_texture, v_TexCoordinate); 255 lowp vec4 texture_color = texture2D(u_texture, v_TexCoordinate);
256 gl_FragColor = texture_color * u_Opacity; 256 gl_FragColor = texture_color * u_Opacity;
257 } 257 }
258 /* clang-format on */); 258 /* clang-format on */);
259 default: 259 default:
260 LOG(ERROR) << "Shader source requested for unknown shader"; 260 LOG(ERROR) << "Shader source requested for unknown shader";
261 return ""; 261 return "";
262 } 262 }
263 } 263 }
264 264
265 void SetColorUniform(GLuint handle, SkColor c) {
266 glUniform4f(handle, SkColorGetR(c) / 255.0, SkColorGetG(c) / 255.0,
267 SkColorGetB(c) / 255.0, SkColorGetA(c) / 255.0);
268 }
269
265 } // namespace 270 } // namespace
266 271
267 namespace vr_shell { 272 namespace vr_shell {
268 273
269 BaseRenderer::BaseRenderer(ShaderID vertex_id, ShaderID fragment_id) { 274 BaseRenderer::BaseRenderer(ShaderID vertex_id, ShaderID fragment_id) {
270 std::string error; 275 std::string error;
271 GLuint vertex_shader_handle = 276 GLuint vertex_shader_handle =
272 CompileShader(GL_VERTEX_SHADER, GetShaderSource(vertex_id), error); 277 CompileShader(GL_VERTEX_SHADER, GetShaderSource(vertex_id), error);
273 CHECK(vertex_shader_handle) << error; 278 CHECK(vertex_shader_handle) << error;
274 279
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 GRADIENT_QUAD_FRAGMENT_SHADER) { 690 GRADIENT_QUAD_FRAGMENT_SHADER) {
686 model_view_proj_matrix_handle_ = 691 model_view_proj_matrix_handle_ =
687 glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix"); 692 glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix");
688 scene_radius_handle_ = glGetUniformLocation(program_handle_, "u_SceneRadius"); 693 scene_radius_handle_ = glGetUniformLocation(program_handle_, "u_SceneRadius");
689 center_color_handle_ = glGetUniformLocation(program_handle_, "u_CenterColor"); 694 center_color_handle_ = glGetUniformLocation(program_handle_, "u_CenterColor");
690 edge_color_handle_ = glGetUniformLocation(program_handle_, "u_EdgeColor"); 695 edge_color_handle_ = glGetUniformLocation(program_handle_, "u_EdgeColor");
691 opacity_handle_ = glGetUniformLocation(program_handle_, "u_Opacity"); 696 opacity_handle_ = glGetUniformLocation(program_handle_, "u_Opacity");
692 } 697 }
693 698
694 void GradientQuadRenderer::Draw(const vr::Mat4f& view_proj_matrix, 699 void GradientQuadRenderer::Draw(const vr::Mat4f& view_proj_matrix,
695 const vr::Colorf& edge_color, 700 SkColor edge_color,
696 const vr::Colorf& center_color, 701 SkColor center_color,
697 float opacity) { 702 float opacity) {
698 PrepareToDraw(model_view_proj_matrix_handle_, view_proj_matrix); 703 PrepareToDraw(model_view_proj_matrix_handle_, view_proj_matrix);
699 704
700 // Tell shader the grid size so that it can calculate the fading. 705 // Tell shader the grid size so that it can calculate the fading.
701 glUniform1f(scene_radius_handle_, kHalfSize); 706 glUniform1f(scene_radius_handle_, kHalfSize);
702 707
703 // Set the edge color to the fog color so that it seems to fade out. 708 // Set the edge color to the fog color so that it seems to fade out.
704 glUniform4f(edge_color_handle_, edge_color.r, edge_color.g, edge_color.b, 709 SetColorUniform(edge_color_handle_, edge_color);
705 edge_color.a); 710 SetColorUniform(center_color_handle_, center_color);
706 glUniform4f(center_color_handle_, center_color.r, center_color.g,
707 center_color.b, center_color.a);
708 glUniform1f(opacity_handle_, opacity); 711 glUniform1f(opacity_handle_, opacity);
709 712
710 glDrawArrays(GL_TRIANGLES, 0, kVerticesNumber); 713 glDrawArrays(GL_TRIANGLES, 0, kVerticesNumber);
711 714
712 glDisableVertexAttribArray(position_handle_); 715 glDisableVertexAttribArray(position_handle_);
713 glDisableVertexAttribArray(tex_coord_handle_); 716 glDisableVertexAttribArray(tex_coord_handle_);
714 } 717 }
715 718
716 GradientQuadRenderer::~GradientQuadRenderer() = default; 719 GradientQuadRenderer::~GradientQuadRenderer() = default;
717 720
718 GradientGridRenderer::GradientGridRenderer() 721 GradientGridRenderer::GradientGridRenderer()
719 : BaseRenderer(GRADIENT_QUAD_VERTEX_SHADER, GRADIENT_QUAD_FRAGMENT_SHADER) { 722 : BaseRenderer(GRADIENT_QUAD_VERTEX_SHADER, GRADIENT_QUAD_FRAGMENT_SHADER) {
720 model_view_proj_matrix_handle_ = 723 model_view_proj_matrix_handle_ =
721 glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix"); 724 glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix");
722 scene_radius_handle_ = glGetUniformLocation(program_handle_, "u_SceneRadius"); 725 scene_radius_handle_ = glGetUniformLocation(program_handle_, "u_SceneRadius");
723 center_color_handle_ = glGetUniformLocation(program_handle_, "u_CenterColor"); 726 center_color_handle_ = glGetUniformLocation(program_handle_, "u_CenterColor");
724 edge_color_handle_ = glGetUniformLocation(program_handle_, "u_EdgeColor"); 727 edge_color_handle_ = glGetUniformLocation(program_handle_, "u_EdgeColor");
725 opacity_handle_ = glGetUniformLocation(program_handle_, "u_Opacity"); 728 opacity_handle_ = glGetUniformLocation(program_handle_, "u_Opacity");
726 } 729 }
727 730
728 void GradientGridRenderer::Draw(const vr::Mat4f& view_proj_matrix, 731 void GradientGridRenderer::Draw(const vr::Mat4f& view_proj_matrix,
729 const vr::Colorf& edge_color, 732 SkColor edge_color,
730 const vr::Colorf& center_color, 733 SkColor center_color,
731 int gridline_count, 734 int gridline_count,
732 float opacity) { 735 float opacity) {
733 // In case the tile number changed we have to regenerate the grid lines. 736 // In case the tile number changed we have to regenerate the grid lines.
734 if (grid_lines_.size() != static_cast<size_t>(2 * (gridline_count + 1))) { 737 if (grid_lines_.size() != static_cast<size_t>(2 * (gridline_count + 1))) {
735 MakeGridLines(gridline_count); 738 MakeGridLines(gridline_count);
736 } 739 }
737 740
738 glUseProgram(program_handle_); 741 glUseProgram(program_handle_);
739 742
740 // Pass in model view project matrix. 743 // Pass in model view project matrix.
741 glUniformMatrix4fv(model_view_proj_matrix_handle_, 1, false, 744 glUniformMatrix4fv(model_view_proj_matrix_handle_, 1, false,
742 MatrixToGLArray(view_proj_matrix).data()); 745 MatrixToGLArray(view_proj_matrix).data());
743 746
744 // Tell shader the grid size so that it can calculate the fading. 747 // Tell shader the grid size so that it can calculate the fading.
745 glUniform1f(scene_radius_handle_, kHalfSize); 748 glUniform1f(scene_radius_handle_, kHalfSize);
746 749
747 // Set the edge color to the fog color so that it seems to fade out. 750 // Set the edge color to the fog color so that it seems to fade out.
748 glUniform4f(edge_color_handle_, edge_color.r, edge_color.g, edge_color.b, 751 SetColorUniform(edge_color_handle_, edge_color);
749 edge_color.a); 752 SetColorUniform(center_color_handle_, center_color);
750 glUniform4f(center_color_handle_, center_color.r, center_color.g,
751 center_color.b, center_color.a);
752 glUniform1f(opacity_handle_, opacity); 753 glUniform1f(opacity_handle_, opacity);
753 754
754 // Draw the grid. 755 // Draw the grid.
755 glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_); 756 glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_);
756 757
757 glVertexAttribPointer(position_handle_, kPositionDataSize, GL_FLOAT, false, 0, 758 glVertexAttribPointer(position_handle_, kPositionDataSize, GL_FLOAT, false, 0,
758 VOID_OFFSET(0)); 759 VOID_OFFSET(0));
759 glEnableVertexAttribArray(position_handle_); 760 glEnableVertexAttribArray(position_handle_);
760 glEnable(GL_BLEND); 761 glEnable(GL_BLEND);
761 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); 762 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
854 GradientGridRenderer* VrShellRenderer::GetGradientGridRenderer() { 855 GradientGridRenderer* VrShellRenderer::GetGradientGridRenderer() {
855 Flush(); 856 Flush();
856 return gradient_grid_renderer_.get(); 857 return gradient_grid_renderer_.get();
857 } 858 }
858 859
859 void VrShellRenderer::Flush() { 860 void VrShellRenderer::Flush() {
860 textured_quad_renderer_->Flush(); 861 textured_quad_renderer_->Flush();
861 } 862 }
862 863
863 } // namespace vr_shell 864 } // namespace vr_shell
OLDNEW
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_renderer.h ('k') | device/vr/vr_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698