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...) 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...) 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...) 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 |