| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "gpu/command_buffer/service/gl_utils.h" | 8 #include "gpu/command_buffer/service/gl_utils.h" |
| 9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" | 9 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
| 10 | 10 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 uniform vec4 u_clear_color; | 30 uniform vec4 u_clear_color; |
| 31 void main(void) { | 31 void main(void) { |
| 32 gl_FragColor = u_clear_color; | 32 gl_FragColor = u_clear_color; |
| 33 } | 33 } |
| 34 ), | 34 ), |
| 35 }; | 35 }; |
| 36 | 36 |
| 37 void CompileShader(GLuint shader, const char* shader_source) { | 37 void CompileShader(GLuint shader, const char* shader_source) { |
| 38 glShaderSource(shader, 1, &shader_source, 0); | 38 glShaderSource(shader, 1, &shader_source, 0); |
| 39 glCompileShader(shader); | 39 glCompileShader(shader); |
| 40 #if DCHECK_IS_ON | 40 #if DCHECK_IS_ON() |
| 41 GLint compile_status = GL_FALSE; | 41 GLint compile_status = GL_FALSE; |
| 42 glGetShaderiv(shader, GL_COMPILE_STATUS, &compile_status); | 42 glGetShaderiv(shader, GL_COMPILE_STATUS, &compile_status); |
| 43 if (GL_TRUE != compile_status) { | 43 if (GL_TRUE != compile_status) { |
| 44 char buffer[1024]; | 44 char buffer[1024]; |
| 45 GLsizei length = 0; | 45 GLsizei length = 0; |
| 46 glGetShaderInfoLog(shader, sizeof(buffer), &length, buffer); | 46 glGetShaderInfoLog(shader, sizeof(buffer), &length, buffer); |
| 47 std::string log(buffer, length); | 47 std::string log(buffer, length); |
| 48 DLOG(ERROR) << "Error compiling shader: " << log; | 48 DLOG(ERROR) << "Error compiling shader: " << log; |
| 49 DLOG(ERROR) << "Shader compilation failure."; | 49 DLOG(ERROR) << "Shader compilation failure."; |
| 50 } | 50 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 if (!program_) { | 112 if (!program_) { |
| 113 program_ = glCreateProgram(); | 113 program_ = glCreateProgram(); |
| 114 GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER); | 114 GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER); |
| 115 CompileShader(vertex_shader, g_vertex_shader_source); | 115 CompileShader(vertex_shader, g_vertex_shader_source); |
| 116 glAttachShader(program_, vertex_shader); | 116 glAttachShader(program_, vertex_shader); |
| 117 GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER); | 117 GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER); |
| 118 CompileShader(fragment_shader, g_fragment_shader_source); | 118 CompileShader(fragment_shader, g_fragment_shader_source); |
| 119 glAttachShader(program_, fragment_shader); | 119 glAttachShader(program_, fragment_shader); |
| 120 glBindAttribLocation(program_, kVertexPositionAttrib, "a_position"); | 120 glBindAttribLocation(program_, kVertexPositionAttrib, "a_position"); |
| 121 glLinkProgram(program_); | 121 glLinkProgram(program_); |
| 122 #if DCHECK_IS_ON | 122 #if DCHECK_IS_ON() |
| 123 GLint linked = GL_FALSE; | 123 GLint linked = GL_FALSE; |
| 124 glGetProgramiv(program_, GL_LINK_STATUS, &linked); | 124 glGetProgramiv(program_, GL_LINK_STATUS, &linked); |
| 125 if (GL_TRUE != linked) | 125 if (GL_TRUE != linked) |
| 126 DLOG(ERROR) << "Program link failure."; | 126 DLOG(ERROR) << "Program link failure."; |
| 127 #endif | 127 #endif |
| 128 depth_handle_ = glGetUniformLocation(program_, "u_clear_depth"); | 128 depth_handle_ = glGetUniformLocation(program_, "u_clear_depth"); |
| 129 color_handle_ = glGetUniformLocation(program_, "u_clear_color"); | 129 color_handle_ = glGetUniformLocation(program_, "u_clear_color"); |
| 130 glDeleteShader(fragment_shader); | 130 glDeleteShader(fragment_shader); |
| 131 glDeleteShader(vertex_shader); | 131 glDeleteShader(vertex_shader); |
| 132 } | 132 } |
| 133 glUseProgram(program_); | 133 glUseProgram(program_); |
| 134 | 134 |
| 135 #if DCHECK_IS_ON | 135 #if DCHECK_IS_ON() |
| 136 glValidateProgram(program_); | 136 glValidateProgram(program_); |
| 137 GLint validation_status = GL_FALSE; | 137 GLint validation_status = GL_FALSE; |
| 138 glGetProgramiv(program_, GL_VALIDATE_STATUS, &validation_status); | 138 glGetProgramiv(program_, GL_VALIDATE_STATUS, &validation_status); |
| 139 if (GL_TRUE != validation_status) | 139 if (GL_TRUE != validation_status) |
| 140 DLOG(ERROR) << "Invalid shader."; | 140 DLOG(ERROR) << "Invalid shader."; |
| 141 #endif | 141 #endif |
| 142 | 142 |
| 143 decoder->ClearAllAttributes(); | 143 decoder->ClearAllAttributes(); |
| 144 glEnableVertexAttribArray(kVertexPositionAttrib); | 144 glEnableVertexAttribArray(kVertexPositionAttrib); |
| 145 | 145 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 glViewport(0, 0, framebuffer_size.width(), framebuffer_size.height()); | 179 glViewport(0, 0, framebuffer_size.width(), framebuffer_size.height()); |
| 180 glDrawArrays(GL_TRIANGLE_FAN, 0, 4); | 180 glDrawArrays(GL_TRIANGLE_FAN, 0, 4); |
| 181 | 181 |
| 182 decoder->RestoreAllAttributes(); | 182 decoder->RestoreAllAttributes(); |
| 183 decoder->RestoreProgramBindings(); | 183 decoder->RestoreProgramBindings(); |
| 184 decoder->RestoreBufferBindings(); | 184 decoder->RestoreBufferBindings(); |
| 185 decoder->RestoreGlobalState(); | 185 decoder->RestoreGlobalState(); |
| 186 } | 186 } |
| 187 | 187 |
| 188 } // namespace gpu | 188 } // namespace gpu |
| OLD | NEW |