OLD | NEW |
1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "cc/output/gl_renderer.h" | 5 #include "cc/output/gl_renderer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 2390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2401 SetUseProgram(program->program()); | 2401 SetUseProgram(program->program()); |
2402 | 2402 |
2403 ToGLMatrix(&gl_matrix[0], quad->matrix); | 2403 ToGLMatrix(&gl_matrix[0], quad->matrix); |
2404 | 2404 |
2405 ResourceProvider::ScopedReadLockGL lock(resource_provider_, | 2405 ResourceProvider::ScopedReadLockGL lock(resource_provider_, |
2406 quad->resource_id()); | 2406 quad->resource_id()); |
2407 | 2407 |
2408 DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); | 2408 DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_)); |
2409 gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id()); | 2409 gl_->BindTexture(GL_TEXTURE_EXTERNAL_OES, lock.texture_id()); |
2410 | 2410 |
2411 // TODO(liberato): stream_texture_android should stop sending |gl_matrix| to | |
2412 // the video frame provider with this change (and to us), but it should | |
2413 // start reporting the current matrix via | |
2414 // GLStreamTextureImage::GetTextureMatrix. Until then, though, this will use | |
2415 // the matrix that we provide to it, unless the GLStreamTextureImage | |
2416 // overrides it. This lets it also work with AVDACodecImage, which provides | |
2417 // the correct custom matrix and supplies a default one to us. | |
2418 gl_->UniformMatrix4fvStreamTextureMatrixCHROMIUM( | 2411 gl_->UniformMatrix4fvStreamTextureMatrixCHROMIUM( |
2419 program->vertex_shader().tex_matrix_location(), false, gl_matrix); | 2412 program->vertex_shader().tex_matrix_location(), false, gl_matrix); |
2420 | 2413 |
2421 gl_->Uniform1i(program->fragment_shader().sampler_location(), 0); | 2414 gl_->Uniform1i(program->fragment_shader().sampler_location(), 0); |
2422 | 2415 |
2423 SetShaderOpacity(quad->shared_quad_state->opacity, | 2416 SetShaderOpacity(quad->shared_quad_state->opacity, |
2424 program->fragment_shader().alpha_location()); | 2417 program->fragment_shader().alpha_location()); |
2425 if (!clip_region) { | 2418 if (!clip_region) { |
2426 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform, | 2419 DrawQuadGeometry(frame, quad->shared_quad_state->quad_to_target_transform, |
2427 gfx::RectF(quad->rect), | 2420 gfx::RectF(quad->rect), |
(...skipping 1437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3865 resource_provider_, contents_texture->id())); | 3858 resource_provider_, contents_texture->id())); |
3866 source_texture = source->texture_id(); | 3859 source_texture = source->texture_id(); |
3867 } | 3860 } |
3868 gl_->CopySubTextureCHROMIUM(source_texture, destination.texture_id(), 0, 0, 0, | 3861 gl_->CopySubTextureCHROMIUM(source_texture, destination.texture_id(), 0, 0, 0, |
3869 0, contents_texture->size().width(), | 3862 0, contents_texture->size().width(), |
3870 contents_texture->size().height(), GL_TRUE, | 3863 contents_texture->size().height(), GL_TRUE, |
3871 GL_FALSE, GL_FALSE); | 3864 GL_FALSE, GL_FALSE); |
3872 } | 3865 } |
3873 | 3866 |
3874 } // namespace cc | 3867 } // namespace cc |
OLD | NEW |