| Index: cc/output/gl_renderer.cc
|
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
|
| index c1937fd9d314f3883b208b7239ad4e06d802166c..e79f3b26e4dfdc7fde3d510c97c2f2d01afd7bf4 100644
|
| --- a/cc/output/gl_renderer.cc
|
| +++ b/cc/output/gl_renderer.cc
|
| @@ -3288,8 +3288,8 @@ void GLRenderer::PrepareGeometry(BoundGeometry binding) {
|
| const GLRenderer::DebugBorderProgram* GLRenderer::GetDebugBorderProgram() {
|
| if (!debug_border_program_.initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::debugBorderProgram::initialize");
|
| - debug_border_program_.Initialize(output_surface_->context_provider(),
|
| - TEX_COORD_PRECISION_NA, SAMPLER_TYPE_NA);
|
| + debug_border_program_.InitializeDebugBorderProgram(
|
| + output_surface_->context_provider());
|
| }
|
| return &debug_border_program_;
|
| }
|
| @@ -3297,8 +3297,8 @@ const GLRenderer::DebugBorderProgram* GLRenderer::GetDebugBorderProgram() {
|
| const GLRenderer::SolidColorProgram* GLRenderer::GetSolidColorProgram() {
|
| if (!solid_color_program_.initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::solidColorProgram::initialize");
|
| - solid_color_program_.Initialize(output_surface_->context_provider(),
|
| - TEX_COORD_PRECISION_NA, SAMPLER_TYPE_NA);
|
| + solid_color_program_.InitializeSolidColorProgram(
|
| + output_surface_->context_provider(), false);
|
| }
|
| return &solid_color_program_;
|
| }
|
| @@ -3306,8 +3306,8 @@ const GLRenderer::SolidColorProgram* GLRenderer::GetSolidColorProgram() {
|
| const GLRenderer::SolidColorProgramAA* GLRenderer::GetSolidColorProgramAA() {
|
| if (!solid_color_program_aa_.initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::solidColorProgramAA::initialize");
|
| - solid_color_program_aa_.Initialize(output_surface_->context_provider(),
|
| - TEX_COORD_PRECISION_NA, SAMPLER_TYPE_NA);
|
| + solid_color_program_aa_.InitializeSolidColorProgram(
|
| + output_surface_->context_provider(), true);
|
| }
|
| return &solid_color_program_aa_;
|
| }
|
| @@ -3322,8 +3322,9 @@ const GLRenderer::RenderPassProgram* GLRenderer::GetRenderPassProgram(
|
| RenderPassProgram* program = &render_pass_program_[precision][blend_mode];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::renderPassProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D, blend_mode);
|
| + program->InitializeRenderPassProgram(output_surface_->context_provider(),
|
| + precision, SAMPLER_TYPE_2D, blend_mode,
|
| + NO_AA, NO_MASK, false, false);
|
| }
|
| return program;
|
| }
|
| @@ -3339,8 +3340,9 @@ const GLRenderer::RenderPassProgramAA* GLRenderer::GetRenderPassProgramAA(
|
| &render_pass_program_aa_[precision][blend_mode];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::renderPassProgramAA::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D, blend_mode);
|
| + program->InitializeRenderPassProgram(output_surface_->context_provider(),
|
| + precision, SAMPLER_TYPE_2D, blend_mode,
|
| + USE_AA, NO_MASK, false, false);
|
| }
|
| return program;
|
| }
|
| @@ -3361,9 +3363,9 @@ const GLRenderer::RenderPassMaskProgram* GLRenderer::GetRenderPassMaskProgram(
|
| [mask_for_background ? HAS_MASK : NO_MASK];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::renderPassMaskProgram::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision,
|
| - sampler, blend_mode, mask_for_background);
|
| + program->InitializeRenderPassProgram(output_surface_->context_provider(),
|
| + precision, sampler, blend_mode, NO_AA,
|
| + HAS_MASK, mask_for_background, false);
|
| }
|
| return program;
|
| }
|
| @@ -3384,9 +3386,9 @@ GLRenderer::GetRenderPassMaskProgramAA(TexCoordPrecision precision,
|
| [mask_for_background ? HAS_MASK : NO_MASK];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::renderPassMaskProgramAA::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision,
|
| - sampler, blend_mode, mask_for_background);
|
| + program->InitializeRenderPassProgram(output_surface_->context_provider(),
|
| + precision, sampler, blend_mode, USE_AA,
|
| + HAS_MASK, mask_for_background, false);
|
| }
|
| return program;
|
| }
|
| @@ -3402,8 +3404,9 @@ GLRenderer::GetRenderPassColorMatrixProgram(TexCoordPrecision precision,
|
| &render_pass_color_matrix_program_[precision][blend_mode];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::renderPassColorMatrixProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D, blend_mode);
|
| + program->InitializeRenderPassProgram(output_surface_->context_provider(),
|
| + precision, SAMPLER_TYPE_2D, blend_mode,
|
| + NO_AA, NO_MASK, false, true);
|
| }
|
| return program;
|
| }
|
| @@ -3420,8 +3423,9 @@ GLRenderer::GetRenderPassColorMatrixProgramAA(TexCoordPrecision precision,
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc",
|
| "GLRenderer::renderPassColorMatrixProgramAA::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_2D, blend_mode);
|
| + program->InitializeRenderPassProgram(output_surface_->context_provider(),
|
| + precision, SAMPLER_TYPE_2D, blend_mode,
|
| + USE_AA, NO_MASK, false, true);
|
| }
|
| return program;
|
| }
|
| @@ -3444,9 +3448,9 @@ GLRenderer::GetRenderPassMaskColorMatrixProgram(
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc",
|
| "GLRenderer::renderPassMaskColorMatrixProgram::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision,
|
| - sampler, blend_mode, mask_for_background);
|
| + program->InitializeRenderPassProgram(output_surface_->context_provider(),
|
| + precision, sampler, blend_mode, NO_AA,
|
| + HAS_MASK, mask_for_background, true);
|
| }
|
| return program;
|
| }
|
| @@ -3469,9 +3473,9 @@ GLRenderer::GetRenderPassMaskColorMatrixProgramAA(
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc",
|
| "GLRenderer::renderPassMaskColorMatrixProgramAA::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision,
|
| - sampler, blend_mode, mask_for_background);
|
| + program->InitializeRenderPassProgram(output_surface_->context_provider(),
|
| + precision, sampler, blend_mode, USE_AA,
|
| + HAS_MASK, mask_for_background, true);
|
| }
|
| return program;
|
| }
|
| @@ -3486,8 +3490,9 @@ const GLRenderer::TileProgram* GLRenderer::GetTileProgram(
|
| TileProgram* program = &tile_program_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgram::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision, sampler);
|
| + program->InitializeTileProgram(output_surface_->context_provider(),
|
| + precision, sampler, NO_AA, NO_SWIZZLE,
|
| + NOT_OPAQUE);
|
| }
|
| return program;
|
| }
|
| @@ -3502,8 +3507,9 @@ const GLRenderer::TileProgramOpaque* GLRenderer::GetTileProgramOpaque(
|
| TileProgramOpaque* program = &tile_program_opaque_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramOpaque::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision, sampler);
|
| + program->InitializeTileProgram(output_surface_->context_provider(),
|
| + precision, sampler, NO_AA, NO_SWIZZLE,
|
| + IS_OPAQUE);
|
| }
|
| return program;
|
| }
|
| @@ -3518,8 +3524,9 @@ const GLRenderer::TileProgramAA* GLRenderer::GetTileProgramAA(
|
| TileProgramAA* program = &tile_program_aa_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramAA::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision, sampler);
|
| + program->InitializeTileProgram(output_surface_->context_provider(),
|
| + precision, sampler, USE_AA, NO_SWIZZLE,
|
| + NOT_OPAQUE);
|
| }
|
| return program;
|
| }
|
| @@ -3534,8 +3541,9 @@ const GLRenderer::TileProgramSwizzle* GLRenderer::GetTileProgramSwizzle(
|
| TileProgramSwizzle* program = &tile_program_swizzle_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramSwizzle::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision, sampler);
|
| + program->InitializeTileProgram(output_surface_->context_provider(),
|
| + precision, sampler, NO_AA, DO_SWIZZLE,
|
| + NOT_OPAQUE);
|
| }
|
| return program;
|
| }
|
| @@ -3551,8 +3559,9 @@ GLRenderer::GetTileProgramSwizzleOpaque(TexCoordPrecision precision,
|
| &tile_program_swizzle_opaque_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramSwizzleOpaque::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision, sampler);
|
| + program->InitializeTileProgram(output_surface_->context_provider(),
|
| + precision, sampler, NO_AA, DO_SWIZZLE,
|
| + IS_OPAQUE);
|
| }
|
| return program;
|
| }
|
| @@ -3567,8 +3576,9 @@ const GLRenderer::TileProgramSwizzleAA* GLRenderer::GetTileProgramSwizzleAA(
|
| TileProgramSwizzleAA* program = &tile_program_swizzle_aa_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::tileProgramSwizzleAA::initialize");
|
| - program->Initialize(
|
| - output_surface_->context_provider(), precision, sampler);
|
| + program->InitializeTileProgram(output_surface_->context_provider(),
|
| + precision, sampler, USE_AA, DO_SWIZZLE,
|
| + NOT_OPAQUE);
|
| }
|
| return program;
|
| }
|
| @@ -3583,8 +3593,9 @@ const GLRenderer::TextureProgram* GLRenderer::GetTextureProgram(
|
| TextureProgram* program = &texture_program_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::textureProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - sampler);
|
| + program->InitializeTextureProgram(output_surface_->context_provider(),
|
| + precision, sampler, PREMULTIPLIED_ALPHA,
|
| + false);
|
| }
|
| return program;
|
| }
|
| @@ -3601,8 +3612,9 @@ GLRenderer::GetNonPremultipliedTextureProgram(TexCoordPrecision precision,
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc",
|
| "GLRenderer::NonPremultipliedTextureProgram::Initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - sampler);
|
| + program->InitializeTextureProgram(output_surface_->context_provider(),
|
| + precision, sampler,
|
| + NON_PREMULTIPLIED_ALPHA, false);
|
| }
|
| return program;
|
| }
|
| @@ -3618,8 +3630,9 @@ GLRenderer::GetTextureBackgroundProgram(TexCoordPrecision precision,
|
| &texture_background_program_[precision][sampler];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::textureProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - sampler);
|
| + program->InitializeTextureProgram(output_surface_->context_provider(),
|
| + precision, sampler, PREMULTIPLIED_ALPHA,
|
| + true);
|
| }
|
| return program;
|
| }
|
| @@ -3637,8 +3650,9 @@ GLRenderer::GetNonPremultipliedTextureBackgroundProgram(
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc",
|
| "GLRenderer::NonPremultipliedTextureProgram::Initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - sampler);
|
| + program->InitializeTextureProgram(output_surface_->context_provider(),
|
| + precision, sampler,
|
| + NON_PREMULTIPLIED_ALPHA, true);
|
| }
|
| return program;
|
| }
|
| @@ -3658,10 +3672,9 @@ const GLRenderer::VideoYUVProgram* GLRenderer::GetVideoYUVProgram(
|
| [use_color_lut];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::videoYUVProgram::initialize");
|
| - program->mutable_fragment_shader()->SetFeatures(use_alpha_plane, use_nv12,
|
| - use_color_lut);
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - sampler);
|
| + program->InitializeVideoYUVProgram(output_surface_->context_provider(),
|
| + precision, sampler, use_alpha_plane,
|
| + use_nv12, use_color_lut);
|
| }
|
| return program;
|
| }
|
| @@ -3674,8 +3687,8 @@ GLRenderer::GetVideoStreamTextureProgram(TexCoordPrecision precision) {
|
| &video_stream_texture_program_[precision];
|
| if (!program->initialized()) {
|
| TRACE_EVENT0("cc", "GLRenderer::streamTextureProgram::initialize");
|
| - program->Initialize(output_surface_->context_provider(), precision,
|
| - SAMPLER_TYPE_EXTERNAL_OES);
|
| + program->InitializeVideoStreamProgram(output_surface_->context_provider(),
|
| + precision);
|
| }
|
| return program;
|
| }
|
|
|