summaryrefslogtreecommitdiffstats
path: root/media/tools/player_x11/gles_video_renderer.cc
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-03 21:39:42 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-03 21:39:42 +0000
commitd2970673eb08326b1f8f639a2a7ab3e873e3b6c3 (patch)
tree2bf0e5f43589b2f841d0a081aa4e2b59a60e00fa /media/tools/player_x11/gles_video_renderer.cc
parentcfbe8e44e66cdac1d9fd259b66bb0e70dcca84d9 (diff)
downloadchromium_src-d2970673eb08326b1f8f639a2a7ab3e873e3b6c3.zip
chromium_src-d2970673eb08326b1f8f639a2a7ab3e873e3b6c3.tar.gz
chromium_src-d2970673eb08326b1f8f639a2a7ab3e873e3b6c3.tar.bz2
Fixing some subtle issues with player_x11 and GL/GLES video renderers.
BUG=n/a TEST=n/a Review URL: http://codereview.chromium.org/665008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40539 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/tools/player_x11/gles_video_renderer.cc')
-rw-r--r--media/tools/player_x11/gles_video_renderer.cc49
1 files changed, 26 insertions, 23 deletions
diff --git a/media/tools/player_x11/gles_video_renderer.cc b/media/tools/player_x11/gles_video_renderer.cc
index 084b119..ebdd5e0 100644
--- a/media/tools/player_x11/gles_video_renderer.cc
+++ b/media/tools/player_x11/gles_video_renderer.cc
@@ -309,65 +309,68 @@ bool GlesVideoRenderer::InitializeGles() {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glEnable(GL_TEXTURE_2D);
- GLuint program_ = glCreateProgram();
+ GLuint program = glCreateProgram();
// Create our YUV->RGB shader.
- GLuint vertex_shader_ = glCreateShader(GL_VERTEX_SHADER);
+ GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER);
const char* vs_source = kVertexShader;
int vs_size = sizeof(kVertexShader);
- glShaderSource(vertex_shader_, 1, &vs_source, &vs_size);
- glCompileShader(vertex_shader_);
+ glShaderSource(vertex_shader, 1, &vs_source, &vs_size);
+ glCompileShader(vertex_shader);
int result = GL_FALSE;
- glGetShaderiv(vertex_shader_, GL_COMPILE_STATUS, &result);
+ glGetShaderiv(vertex_shader, GL_COMPILE_STATUS, &result);
if (!result) {
char log[kErrorSize];
int len;
- glGetShaderInfoLog(vertex_shader_, kErrorSize - 1, &len, log);
+ glGetShaderInfoLog(vertex_shader, kErrorSize - 1, &len, log);
log[kErrorSize - 1] = 0;
LOG(FATAL) << log;
}
- glAttachShader(program_, vertex_shader_);
+ glAttachShader(program, vertex_shader);
+ glDeleteShader(vertex_shader);
- GLuint fragment_shader_ = glCreateShader(GL_FRAGMENT_SHADER);
+ GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
const char* ps_source = kFragmentShader;
int ps_size = sizeof(kFragmentShader);
- glShaderSource(fragment_shader_, 1, &ps_source, &ps_size);
- glCompileShader(fragment_shader_);
+ glShaderSource(fragment_shader, 1, &ps_source, &ps_size);
+ glCompileShader(fragment_shader);
result = GL_FALSE;
- glGetShaderiv(fragment_shader_, GL_COMPILE_STATUS, &result);
+ glGetShaderiv(fragment_shader, GL_COMPILE_STATUS, &result);
if (!result) {
char log[kErrorSize];
int len;
- glGetShaderInfoLog(fragment_shader_, kErrorSize - 1, &len, log);
+ glGetShaderInfoLog(fragment_shader, kErrorSize - 1, &len, log);
log[kErrorSize - 1] = 0;
LOG(FATAL) << log;
}
- glAttachShader(program_, fragment_shader_);
+ glAttachShader(program, fragment_shader);
+ glDeleteShader(fragment_shader);
- glLinkProgram(program_);
+ glLinkProgram(program);
result = GL_FALSE;
- glGetProgramiv(program_, GL_LINK_STATUS, &result);
+ glGetProgramiv(program, GL_LINK_STATUS, &result);
if (!result) {
char log[kErrorSize];
int len;
- glGetProgramInfoLog(program_, kErrorSize - 1, &len, log);
+ glGetProgramInfoLog(program, kErrorSize - 1, &len, log);
log[kErrorSize - 1] = 0;
LOG(FATAL) << log;
}
- glUseProgram(program_);
+ glUseProgram(program);
+ glDeleteProgram(program);
// Bind parameters.
- glUniform1i(glGetUniformLocation(program_, "y_tex"), 0);
- glUniform1i(glGetUniformLocation(program_, "u_tex"), 1);
- glUniform1i(glGetUniformLocation(program_, "v_tex"), 2);
- int yuv2rgb_location = glGetUniformLocation(program_, "yuv2rgb");
+ glUniform1i(glGetUniformLocation(program, "y_tex"), 0);
+ glUniform1i(glGetUniformLocation(program, "u_tex"), 1);
+ glUniform1i(glGetUniformLocation(program, "v_tex"), 2);
+ int yuv2rgb_location = glGetUniformLocation(program, "yuv2rgb");
glUniformMatrix3fv(yuv2rgb_location, 1, GL_FALSE, kYUV2RGB);
- int pos_location = glGetAttribLocation(program_, "in_pos");
+ int pos_location = glGetAttribLocation(program, "in_pos");
glEnableVertexAttribArray(pos_location);
glVertexAttribPointer(pos_location, 2, GL_FLOAT, GL_FALSE, 0, kVertices);
- int tc_location = glGetAttribLocation(program_, "in_tc");
+ int tc_location = glGetAttribLocation(program, "in_tc");
glEnableVertexAttribArray(tc_location);
glVertexAttribPointer(tc_location, 2, GL_FLOAT, GL_FALSE, 0,
kTextureCoords);