Chromium Code Reviews| Index: cc/output/gl_renderer.cc |
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
| index 2b20d25d39f18f17a362c4b0d88c4efa9d506731..2758590fea0f19145fb48e42bfd49a963eb60173 100644 |
| --- a/cc/output/gl_renderer.cc |
| +++ b/cc/output/gl_renderer.cc |
| @@ -2192,14 +2192,23 @@ void GLRenderer::DrawStreamVideoQuad(const DrawingFrame* frame, |
| SetUseProgram(program->program()); |
| ToGLMatrix(&gl_matrix[0], quad->matrix); |
| - gl_->UniformMatrix4fv(program->vertex_shader().tex_matrix_location(), 1, |
| - false, gl_matrix); |
| ResourceProvider::ScopedReadLockGL lock(resource_provider_, |
| quad->resource_id()); |
| + |
| DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); |
| gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id()); |
| + // TODO(liberato): stream_texture_android should stop sending |gl_matrix| to |
| + // the video frame provider with this change (and to us), but it should |
| + // start reporting the current matrix via GLImage::GetCustomMatrix. Until |
| + // then, though, this will use the matrix that we provide to it, unless the |
| + // GLImage overrides it. This lets it also work with AVDACodecImage, which |
| + // provides the correct custom matrix and supplies a default one to us. |
| + gl_->UniformMatrix4fvWithCustomMatrixCHROMIUM( |
| + program->vertex_shader().tex_matrix_location(), 1, |
| + 12345 /* TODO(liberato): enum */, false, gl_matrix); |
|
piman
2016/02/16 23:56:33
The enum will go to gpu/GLES2/gl2extchromium.h
See
liberato (no reviews please)
2016/02/17 17:50:32
Done.
|
| + |
| gl_->Uniform1i(program->fragment_shader().sampler_location(), 0); |
| SetShaderOpacity(quad->shared_quad_state->opacity, |