Index: gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc b/gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc |
index 99b43fd02543212fe5a7af3d02c82a4d4ed73432..b0fcd5f61958e38bde5bfcde865ee18c8d8a9735 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc |
@@ -4,13 +4,9 @@ |
#include "gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h" |
-#include <string> |
- |
#include "gpu/command_buffer/service/gl_utils.h" |
#include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
-#include "gpu/command_buffer/service/shader_translator.h" |
#include "ui/gfx/geometry/size.h" |
-#include "ui/gl/gl_version_info.h" |
namespace { |
@@ -61,13 +57,8 @@ |
namespace gles2 { |
ClearFramebufferResourceManager::ClearFramebufferResourceManager( |
- const gles2::GLES2Decoder* decoder, |
- const gl::GLVersionInfo& gl_version_info) |
- : initialized_(false), |
- is_desktop_core_profile_(gl_version_info.is_desktop_core_profile), |
- program_(0u), |
- vao_(0u), |
- buffer_id_(0u) { |
+ const gles2::GLES2Decoder* decoder) |
+ : initialized_(false), program_(0u), buffer_id_(0u) { |
Initialize(decoder); |
} |
@@ -78,10 +69,6 @@ |
void ClearFramebufferResourceManager::Initialize( |
const gles2::GLES2Decoder* decoder) { |
- name_map_["a_position"] = "a_position"; |
- name_map_["u_clear_depth"] = "u_clear_depth"; |
- name_map_["u_clear_color"] = "u_clear_color"; |
- |
static_assert( |
kVertexPositionAttrib == 0u, |
"kVertexPositionAttrib must be 0"); |
@@ -95,39 +82,8 @@ |
-1.0f, 1.0f}; |
glBufferData( |
GL_ARRAY_BUFFER, sizeof(kQuadVertices), kQuadVertices, GL_STATIC_DRAW); |
- |
- if (is_desktop_core_profile_) { |
- glGenVertexArraysOES(1, &vao_); |
- glBindVertexArrayOES(vao_); |
- glEnableVertexAttribArray(kVertexPositionAttrib); |
- glVertexAttribPointer(kVertexPositionAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0); |
- decoder->RestoreAllAttributes(); |
- } |
decoder->RestoreBufferBindings(); |
initialized_ = true; |
-} |
- |
-void ClearFramebufferResourceManager::InitShader(const GLES2Decoder* decoder, |
- GLenum type) { |
- std::string source_string(type == GL_VERTEX_SHADER |
- ? g_vertex_shader_source |
- : g_fragment_shader_source); |
- std::string& translated_string(type == GL_VERTEX_SHADER |
- ? vertex_shader_source_ |
- : fragment_shader_source_); |
- if (is_desktop_core_profile_) { |
- scoped_refptr<ShaderTranslatorInterface> translator = |
- decoder->GetTranslator(type); |
- int shader_version = 0; |
- NameMap map; |
- translator->Translate(source_string, NULL, &translated_string, |
- &shader_version, 0, 0, 0, 0, 0, &map); |
- for (const auto& pair : map) { |
- name_map_[pair.second] = pair.first; |
- } |
- } else { |
- translated_string = std::string(source_string); |
- } |
} |
void ClearFramebufferResourceManager::Destroy() { |
@@ -135,10 +91,6 @@ |
return; |
glDeleteProgram(program_); |
- if (vao_ != 0) { |
- glDeleteVertexArraysOES(1, &vao_); |
- vao_ = 0; |
- } |
glDeleteBuffersARB(1, &buffer_id_); |
buffer_id_ = 0; |
} |
@@ -160,16 +112,13 @@ |
if (!program_) { |
program_ = glCreateProgram(); |
- InitShader(decoder, GL_VERTEX_SHADER); |
GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER); |
- CompileShader(vertex_shader, vertex_shader_source_.c_str()); |
+ CompileShader(vertex_shader, g_vertex_shader_source); |
glAttachShader(program_, vertex_shader); |
- InitShader(decoder, GL_FRAGMENT_SHADER); |
GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER); |
- CompileShader(fragment_shader, fragment_shader_source_.c_str()); |
+ CompileShader(fragment_shader, g_fragment_shader_source); |
glAttachShader(program_, fragment_shader); |
- glBindAttribLocation(program_, kVertexPositionAttrib, |
- name_map_["a_position"].c_str()); |
+ glBindAttribLocation(program_, kVertexPositionAttrib, "a_position"); |
glLinkProgram(program_); |
#if DCHECK_IS_ON() |
GLint linked = GL_FALSE; |
@@ -177,12 +126,8 @@ |
if (GL_TRUE != linked) |
DLOG(ERROR) << "Program link failure."; |
#endif |
- depth_handle_ = |
- glGetUniformLocation(program_, name_map_["u_clear_depth"].c_str()); |
- color_handle_ = |
- glGetUniformLocation(program_, name_map_["u_clear_color"].c_str()); |
- DCHECK(depth_handle_ != -1); |
- DCHECK(color_handle_ != -1); |
+ depth_handle_ = glGetUniformLocation(program_, "u_clear_depth"); |
+ color_handle_ = glGetUniformLocation(program_, "u_clear_color"); |
glDeleteShader(fragment_shader); |
glDeleteShader(vertex_shader); |
} |
@@ -196,15 +141,11 @@ |
DLOG(ERROR) << "Invalid shader."; |
#endif |
- if (vao_) { |
- glBindVertexArrayOES(vao_); |
- } else { |
- decoder->ClearAllAttributes(); |
- glEnableVertexAttribArray(kVertexPositionAttrib); |
+ decoder->ClearAllAttributes(); |
+ glEnableVertexAttribArray(kVertexPositionAttrib); |
- glBindBuffer(GL_ARRAY_BUFFER, buffer_id_); |
- glVertexAttribPointer(kVertexPositionAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0); |
- } |
+ glBindBuffer(GL_ARRAY_BUFFER, buffer_id_); |
+ glVertexAttribPointer(kVertexPositionAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0); |
glUniform1f(depth_handle_, clear_depth_value); |
glUniform4f(color_handle_, clear_color_red, clear_color_green, |
@@ -239,11 +180,9 @@ |
glViewport(0, 0, framebuffer_size.width(), framebuffer_size.height()); |
glDrawArrays(GL_TRIANGLE_FAN, 0, 4); |
- if (vao_ == 0) { |
- decoder->RestoreBufferBindings(); |
- } |
decoder->RestoreAllAttributes(); |
decoder->RestoreProgramBindings(); |
+ decoder->RestoreBufferBindings(); |
decoder->RestoreGlobalState(); |
} |