Chromium Code Reviews

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc

Issue 851503003: Update from https://crrev.com/311076 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
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...)
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...)
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...)
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
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/context_group.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine