| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "media/tools/player_x11/gl_video_renderer.h" | 5 #include "media/tools/player_x11/gl_video_renderer.h" |
| 6 | 6 |
| 7 #include <X11/Xutil.h> | 7 #include <X11/Xutil.h> |
| 8 | 8 |
| 9 #include "app/gfx/gl/gl_implementation.h" | 9 #include "app/gfx/gl/gl_implementation.h" |
| 10 #include "media/base/buffers.h" | 10 #include "media/base/buffers.h" |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 // Create our YUV->RGB shader. | 162 // Create our YUV->RGB shader. |
| 163 GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER); | 163 GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER); |
| 164 const char* vs_source = kVertexShader; | 164 const char* vs_source = kVertexShader; |
| 165 int vs_size = sizeof(kVertexShader); | 165 int vs_size = sizeof(kVertexShader); |
| 166 glShaderSource(vertex_shader, 1, &vs_source, &vs_size); | 166 glShaderSource(vertex_shader, 1, &vs_source, &vs_size); |
| 167 glCompileShader(vertex_shader); | 167 glCompileShader(vertex_shader); |
| 168 int result = GL_FALSE; | 168 int result = GL_FALSE; |
| 169 glGetShaderiv(vertex_shader, GL_COMPILE_STATUS, &result); | 169 glGetShaderiv(vertex_shader, GL_COMPILE_STATUS, &result); |
| 170 if (!result) { | 170 if (!result) { |
| 171 char log[kErrorSize]; | 171 char log[kErrorSize]; |
| 172 int len = 0; | 172 int len; |
| 173 glGetShaderInfoLog(vertex_shader, kErrorSize - 1, &len, log); | 173 glGetShaderInfoLog(vertex_shader, kErrorSize - 1, &len, log); |
| 174 log[kErrorSize - 1] = 0; | 174 log[kErrorSize - 1] = 0; |
| 175 LOG(FATAL) << log; | 175 LOG(FATAL) << log; |
| 176 } | 176 } |
| 177 glAttachShader(program, vertex_shader); | 177 glAttachShader(program, vertex_shader); |
| 178 glDeleteShader(vertex_shader); | 178 glDeleteShader(vertex_shader); |
| 179 | 179 |
| 180 GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER); | 180 GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER); |
| 181 const char* ps_source = kFragmentShader; | 181 const char* ps_source = kFragmentShader; |
| 182 int ps_size = sizeof(kFragmentShader); | 182 int ps_size = sizeof(kFragmentShader); |
| 183 glShaderSource(fragment_shader, 1, &ps_source, &ps_size); | 183 glShaderSource(fragment_shader, 1, &ps_source, &ps_size); |
| 184 glCompileShader(fragment_shader); | 184 glCompileShader(fragment_shader); |
| 185 result = GL_FALSE; | 185 result = GL_FALSE; |
| 186 glGetShaderiv(fragment_shader, GL_COMPILE_STATUS, &result); | 186 glGetShaderiv(fragment_shader, GL_COMPILE_STATUS, &result); |
| 187 if (!result) { | 187 if (!result) { |
| 188 char log[kErrorSize]; | 188 char log[kErrorSize]; |
| 189 int len = 0; | 189 int len; |
| 190 glGetShaderInfoLog(fragment_shader, kErrorSize - 1, &len, log); | 190 glGetShaderInfoLog(fragment_shader, kErrorSize - 1, &len, log); |
| 191 log[kErrorSize - 1] = 0; | 191 log[kErrorSize - 1] = 0; |
| 192 LOG(FATAL) << log; | 192 LOG(FATAL) << log; |
| 193 } | 193 } |
| 194 glAttachShader(program, fragment_shader); | 194 glAttachShader(program, fragment_shader); |
| 195 glDeleteShader(fragment_shader); | 195 glDeleteShader(fragment_shader); |
| 196 | 196 |
| 197 glLinkProgram(program); | 197 glLinkProgram(program); |
| 198 result = GL_FALSE; | 198 result = GL_FALSE; |
| 199 glGetProgramiv(program, GL_LINK_STATUS, &result); | 199 glGetProgramiv(program, GL_LINK_STATUS, &result); |
| 200 if (!result) { | 200 if (!result) { |
| 201 char log[kErrorSize]; | 201 char log[kErrorSize]; |
| 202 int len = 0; | 202 int len; |
| 203 glGetProgramInfoLog(program, kErrorSize - 1, &len, log); | 203 glGetProgramInfoLog(program, kErrorSize - 1, &len, log); |
| 204 log[kErrorSize - 1] = 0; | 204 log[kErrorSize - 1] = 0; |
| 205 LOG(FATAL) << log; | 205 LOG(FATAL) << log; |
| 206 } | 206 } |
| 207 glUseProgram(program); | 207 glUseProgram(program); |
| 208 glDeleteProgram(program); | 208 glDeleteProgram(program); |
| 209 | 209 |
| 210 // Bind parameters. | 210 // Bind parameters. |
| 211 glUniform1i(glGetUniformLocation(program, "y_tex"), 0); | 211 glUniform1i(glGetUniformLocation(program, "y_tex"), 0); |
| 212 glUniform1i(glGetUniformLocation(program, "u_tex"), 1); | 212 glUniform1i(glGetUniformLocation(program, "u_tex"), 1); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 glActiveTexture(GL_TEXTURE0 + i); | 270 glActiveTexture(GL_TEXTURE0 + i); |
| 271 glPixelStorei(GL_UNPACK_ROW_LENGTH, video_frame->stride(i)); | 271 glPixelStorei(GL_UNPACK_ROW_LENGTH, video_frame->stride(i)); |
| 272 glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, | 272 glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, |
| 273 GL_LUMINANCE, GL_UNSIGNED_BYTE, video_frame->data(i)); | 273 GL_LUMINANCE, GL_UNSIGNED_BYTE, video_frame->data(i)); |
| 274 } | 274 } |
| 275 PutCurrentFrame(video_frame); | 275 PutCurrentFrame(video_frame); |
| 276 | 276 |
| 277 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); | 277 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); |
| 278 glXSwapBuffers(display_, window_); | 278 glXSwapBuffers(display_, window_); |
| 279 } | 279 } |
| OLD | NEW |