| 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..77d04c6676ff4f4ce359d4e81206d46a0a3f635a 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);
|
| @@ -245,16 +243,6 @@ 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;
|
| - }
|
| }
|
|
|
| BaseRenderer::~BaseRenderer() = default;
|
| @@ -285,8 +273,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 +382,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 +429,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 +466,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 +508,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 +543,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");
|
|
|