Index: cc/output/gl_renderer.cc |
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
index f51e7149580f24f39020553b5db1f0baece9219d..ddfd6b6c8ab2f804d09aa7a23d8ee24c2e7bc5c0 100644 |
--- a/cc/output/gl_renderer.cc |
+++ b/cc/output/gl_renderer.cc |
@@ -2147,8 +2147,8 @@ void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame, |
int alpha_location = -1; |
int resource_multiplier_location = -1; |
int resource_offset_location = -1; |
- const VideoYUVProgram* program = GetVideoYUVProgram( |
- tex_coord_precision, sampler, use_alpha_plane, use_nv12, use_color_lut); |
+ const Program* program = GetProgram(ProgramKey::YUVVideo( |
+ tex_coord_precision, sampler, use_alpha_plane, use_nv12, use_color_lut)); |
DCHECK(program && (program->initialized() || IsContextLost())); |
SetUseProgram(program->program()); |
matrix_location = program->matrix_location(); |
@@ -2156,21 +2156,19 @@ void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame, |
ya_tex_offset_location = program->ya_tex_offset_location(); |
uv_tex_scale_location = program->uv_tex_scale_location(); |
uv_tex_offset_location = program->uv_tex_offset_location(); |
- y_texture_location = program->fragment_shader().y_texture_location(); |
- u_texture_location = program->fragment_shader().u_texture_location(); |
- v_texture_location = program->fragment_shader().v_texture_location(); |
- uv_texture_location = program->fragment_shader().uv_texture_location(); |
- a_texture_location = program->fragment_shader().a_texture_location(); |
- lut_texture_location = program->fragment_shader().lut_texture_location(); |
- yuv_matrix_location = program->fragment_shader().yuv_matrix_location(); |
- yuv_adj_location = program->fragment_shader().yuv_adj_location(); |
- ya_clamp_rect_location = program->fragment_shader().ya_clamp_rect_location(); |
- uv_clamp_rect_location = program->fragment_shader().uv_clamp_rect_location(); |
- alpha_location = program->fragment_shader().alpha_location(); |
- resource_multiplier_location = |
- program->fragment_shader().resource_multiplier_location(); |
- resource_offset_location = |
- program->fragment_shader().resource_offset_location(); |
+ y_texture_location = program->y_texture_location(); |
+ u_texture_location = program->u_texture_location(); |
+ v_texture_location = program->v_texture_location(); |
+ uv_texture_location = program->uv_texture_location(); |
+ a_texture_location = program->a_texture_location(); |
+ lut_texture_location = program->lut_texture_location(); |
+ yuv_matrix_location = program->yuv_matrix_location(); |
+ yuv_adj_location = program->yuv_adj_location(); |
+ ya_clamp_rect_location = program->ya_clamp_rect_location(); |
+ uv_clamp_rect_location = program->uv_clamp_rect_location(); |
+ alpha_location = program->alpha_location(); |
+ resource_multiplier_location = program->resource_multiplier_location(); |
+ resource_offset_location = program->resource_offset_location(); |
gfx::SizeF ya_tex_scale(1.0f, 1.0f); |
gfx::SizeF uv_tex_scale(1.0f, 1.0f); |
@@ -3114,28 +3112,6 @@ void GLRenderer::PrepareGeometry(BoundGeometry binding) { |
bound_geometry_ = binding; |
} |
-const GLRenderer::VideoYUVProgram* GLRenderer::GetVideoYUVProgram( |
- TexCoordPrecision precision, |
- SamplerType sampler, |
- bool use_alpha_plane, |
- bool use_nv12, |
- bool use_color_lut) { |
- DCHECK_GE(precision, 0); |
- DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); |
- DCHECK_GE(sampler, 0); |
- DCHECK_LE(sampler, LAST_SAMPLER_TYPE); |
- VideoYUVProgram* program = |
- &video_yuv_program_[precision][sampler][use_alpha_plane][use_nv12] |
- [use_color_lut]; |
- if (!program->initialized()) { |
- TRACE_EVENT0("cc", "GLRenderer::videoYUVProgram::initialize"); |
- program->InitializeVideoYUV(output_surface_->context_provider(), precision, |
- sampler, use_alpha_plane, use_nv12, |
- use_color_lut); |
- } |
- return program; |
-} |
- |
const Program* GLRenderer::GetProgram(const ProgramKey& desc) { |
std::unique_ptr<Program>& program = program_cache_[desc]; |
if (!program) { |
@@ -3156,17 +3132,6 @@ const Program* GLRenderer::GetProgramIfInitialized( |
void GLRenderer::CleanupSharedObjects() { |
shared_geometry_ = nullptr; |
- for (int i = 0; i <= LAST_TEX_COORD_PRECISION; ++i) { |
- for (int j = 0; j <= LAST_SAMPLER_TYPE; ++j) { |
- for (int k = 0; k < 2; k++) { |
- for (int l = 0; l < 2; l++) { |
- for (int m = 0; m < 2; m++) { |
- video_yuv_program_[i][j][k][l][m].Cleanup(gl_); |
- } |
- } |
- } |
- } |
- } |
for (auto& iter : program_cache_) |
iter.second->Cleanup(gl_); |
program_cache_.clear(); |