Chromium Code Reviews| Index: chrome/browser/android/vr_shell/vr_shell_renderer.cc |
| diff --git a/chrome/browser/android/vr_shell/vr_shell_renderer.cc b/chrome/browser/android/vr_shell/vr_shell_renderer.cc |
| index 0ce95a9f712eda808e3f8c369c9094bd352a833b..ffe0d2d0ae6664272833b49902c659ea8921e9cf 100644 |
| --- a/chrome/browser/android/vr_shell/vr_shell_renderer.cc |
| +++ b/chrome/browser/android/vr_shell/vr_shell_renderer.cc |
| @@ -223,9 +223,7 @@ const char* GetShaderSource(vr_shell::ShaderID shader) { |
| namespace vr_shell { |
| -BaseRenderer::BaseRenderer(ShaderID vertex_id, |
| - ShaderID fragment_id, |
| - bool setup_vertex_buffer = true) { |
| +BaseRenderer::BaseRenderer(ShaderID vertex_id, ShaderID fragment_id) { |
| std::string error; |
| GLuint vertex_shader_handle = |
| CompileShader(GL_VERTEX_SHADER, GetShaderSource(vertex_id), error); |
| @@ -246,15 +244,7 @@ BaseRenderer::BaseRenderer(ShaderID vertex_id, |
| position_handle_ = glGetAttribLocation(program_handle_, "a_Position"); |
| tex_coord_handle_ = glGetAttribLocation(program_handle_, "a_TexCoordinate"); |
| - if (setup_vertex_buffer) { |
| - // Generate the vertex buffer |
| - glGenBuffersARB(1, &vertex_buffer_); |
| - glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_); |
| - glBufferData(GL_ARRAY_BUFFER, kTextureQuadVerticesSize, |
| - kTextureQuadVertices, GL_STATIC_DRAW); |
| - } else { |
| - vertex_buffer_ = 0; |
| - } |
| + vertex_buffer_ = 0; |
|
cjgrant
2017/03/21 16:16:47
This could now be done in the header file, FWIW.
acondor_
2017/03/21 19:31:30
Done.
|
| } |
| BaseRenderer::~BaseRenderer() = default; |
| @@ -285,8 +275,19 @@ void BaseRenderer::PrepareToDraw(GLuint view_proj_matrix_handle, |
| glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
| } |
| +BaseQuadRenderer::BaseQuadRenderer(ShaderID vertex_id, ShaderID fragment_id) |
| + : BaseRenderer(vertex_id, fragment_id) { |
| + glGenBuffersARB(1, &vertex_buffer_); |
| + glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_); |
| + glBufferData(GL_ARRAY_BUFFER, kTextureQuadVerticesSize, kTextureQuadVertices, |
| + GL_STATIC_DRAW); |
| +} |
| + |
| +BaseQuadRenderer::~BaseQuadRenderer() = default; |
| + |
| TexturedQuadRenderer::TexturedQuadRenderer() |
| - : BaseRenderer(TEXTURE_QUAD_VERTEX_SHADER, TEXTURE_QUAD_FRAGMENT_SHADER) { |
| + : BaseQuadRenderer(TEXTURE_QUAD_VERTEX_SHADER, |
| + TEXTURE_QUAD_FRAGMENT_SHADER) { |
| model_view_proj_matrix_handle_ = |
| glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix"); |
| tex_uniform_handle_ = glGetUniformLocation(program_handle_, "u_Texture"); |
| @@ -383,7 +384,7 @@ void TexturedQuadRenderer::Flush() { |
| TexturedQuadRenderer::~TexturedQuadRenderer() = default; |
| WebVrRenderer::WebVrRenderer() |
| - : BaseRenderer(WEBVR_VERTEX_SHADER, WEBVR_FRAGMENT_SHADER) { |
| + : BaseQuadRenderer(WEBVR_VERTEX_SHADER, WEBVR_FRAGMENT_SHADER) { |
| tex_uniform_handle_ = glGetUniformLocation(program_handle_, "u_Texture"); |
| } |
| @@ -430,7 +431,7 @@ void WebVrRenderer::Draw(int texture_handle) { |
| WebVrRenderer::~WebVrRenderer() = default; |
| ReticleRenderer::ReticleRenderer() |
| - : BaseRenderer(RETICLE_VERTEX_SHADER, RETICLE_FRAGMENT_SHADER) { |
| + : BaseQuadRenderer(RETICLE_VERTEX_SHADER, RETICLE_FRAGMENT_SHADER) { |
| model_view_proj_matrix_handle_ = |
| glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix"); |
| color_handle_ = glGetUniformLocation(program_handle_, "color"); |
| @@ -467,7 +468,7 @@ void ReticleRenderer::Draw(const gvr::Mat4f& view_proj_matrix) { |
| ReticleRenderer::~ReticleRenderer() = default; |
| LaserRenderer::LaserRenderer() |
| - : BaseRenderer(LASER_VERTEX_SHADER, LASER_FRAGMENT_SHADER) { |
| + : BaseQuadRenderer(LASER_VERTEX_SHADER, LASER_FRAGMENT_SHADER) { |
| model_view_proj_matrix_handle_ = |
| glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix"); |
| texture_unit_handle_ = glGetUniformLocation(program_handle_, "texture_unit"); |
| @@ -509,7 +510,8 @@ void LaserRenderer::Draw(const gvr::Mat4f& view_proj_matrix) { |
| LaserRenderer::~LaserRenderer() = default; |
| GradientQuadRenderer::GradientQuadRenderer() |
| - : BaseRenderer(GRADIENT_QUAD_VERTEX_SHADER, GRADIENT_QUAD_FRAGMENT_SHADER) { |
| + : BaseQuadRenderer(GRADIENT_QUAD_VERTEX_SHADER, |
| + GRADIENT_QUAD_FRAGMENT_SHADER) { |
| model_view_proj_matrix_handle_ = |
| glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix"); |
| scene_radius_handle_ = glGetUniformLocation(program_handle_, "u_SceneRadius"); |
| @@ -543,9 +545,7 @@ void GradientQuadRenderer::Draw(const gvr::Mat4f& view_proj_matrix, |
| GradientQuadRenderer::~GradientQuadRenderer() = default; |
| GradientGridRenderer::GradientGridRenderer() |
| - : BaseRenderer(GRADIENT_QUAD_VERTEX_SHADER, |
| - GRADIENT_QUAD_FRAGMENT_SHADER, |
| - false) { |
| + : BaseRenderer(GRADIENT_QUAD_VERTEX_SHADER, GRADIENT_QUAD_FRAGMENT_SHADER) { |
| model_view_proj_matrix_handle_ = |
| glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix"); |
| scene_radius_handle_ = glGetUniformLocation(program_handle_, "u_SceneRadius"); |