Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1069)

Side by Side Diff: cc/output/gl_renderer.cc

Issue 959283004: Background filters are affected by masks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more robust fuzzy comparator Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/gl_renderer.h ('k') | cc/output/gl_renderer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 background_image = 931 background_image =
932 ApplyBackgroundFilters(frame, quad, background_texture.get()); 932 ApplyBackgroundFilters(frame, quad, background_texture.get());
933 } 933 }
934 } 934 }
935 935
936 if (!background_texture) { 936 if (!background_texture) {
937 // Something went wrong with reading the backdrop. 937 // Something went wrong with reading the backdrop.
938 DCHECK(!background_image); 938 DCHECK(!background_image);
939 use_shaders_for_blending = false; 939 use_shaders_for_blending = false;
940 } else if (background_image) { 940 } else if (background_image) {
941 background_texture.reset(); 941 // Reset original background texture if there is not any mask
942 if (!quad->mask_resource_id)
943 background_texture.reset();
942 } else if (CanApplyBlendModeUsingBlendFunc(blend_mode) && 944 } else if (CanApplyBlendModeUsingBlendFunc(blend_mode) &&
943 ShouldApplyBackgroundFilters(frame, quad)) { 945 ShouldApplyBackgroundFilters(frame, quad)) {
944 // Something went wrong with applying background filters to the backdrop. 946 // Something went wrong with applying background filters to the backdrop.
945 use_shaders_for_blending = false; 947 use_shaders_for_blending = false;
946 background_texture.reset(); 948 background_texture.reset();
947 } 949 }
948 } 950 }
949 951 // Need original background texture for mask?
952 bool mask_for_background =
953 background_texture && // Have original background texture
954 background_image && // Have filtered background texture
955 quad->mask_resource_id; // Have mask texture
950 SetBlendEnabled( 956 SetBlendEnabled(
951 !use_shaders_for_blending && 957 !use_shaders_for_blending &&
952 (quad->ShouldDrawWithBlending() || !IsDefaultBlendMode(blend_mode))); 958 (quad->ShouldDrawWithBlending() || !IsDefaultBlendMode(blend_mode)));
953 959
954 // TODO(senorblanco): Cache this value so that we don't have to do it for both 960 // TODO(senorblanco): Cache this value so that we don't have to do it for both
955 // the surface and its replica. Apply filters to the contents texture. 961 // the surface and its replica. Apply filters to the contents texture.
956 skia::RefPtr<SkImage> filter_image; 962 skia::RefPtr<SkImage> filter_image;
957 SkScalar color_matrix[20]; 963 SkScalar color_matrix[20];
958 bool use_color_matrix = false; 964 bool use_color_matrix = false;
959 if (!quad->filters.IsEmpty()) { 965 if (!quad->filters.IsEmpty()) {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 1024
1019 ShaderLocations locations; 1025 ShaderLocations locations;
1020 1026
1021 DCHECK_EQ(background_texture || background_image, use_shaders_for_blending); 1027 DCHECK_EQ(background_texture || background_image, use_shaders_for_blending);
1022 BlendMode shader_blend_mode = use_shaders_for_blending 1028 BlendMode shader_blend_mode = use_shaders_for_blending
1023 ? BlendModeFromSkXfermode(blend_mode) 1029 ? BlendModeFromSkXfermode(blend_mode)
1024 : BLEND_MODE_NONE; 1030 : BLEND_MODE_NONE;
1025 1031
1026 if (use_aa && mask_texture_id && !use_color_matrix) { 1032 if (use_aa && mask_texture_id && !use_color_matrix) {
1027 const RenderPassMaskProgramAA* program = GetRenderPassMaskProgramAA( 1033 const RenderPassMaskProgramAA* program = GetRenderPassMaskProgramAA(
1028 tex_coord_precision, mask_sampler, shader_blend_mode); 1034 tex_coord_precision, mask_sampler,
1035 shader_blend_mode, mask_for_background);
1029 SetUseProgram(program->program()); 1036 SetUseProgram(program->program());
1030 program->vertex_shader().FillLocations(&locations); 1037 program->vertex_shader().FillLocations(&locations);
1031 program->fragment_shader().FillLocations(&locations); 1038 program->fragment_shader().FillLocations(&locations);
1032 GLC(gl_, gl_->Uniform1i(locations.sampler, 0)); 1039 GLC(gl_, gl_->Uniform1i(locations.sampler, 0));
1033 } else if (!use_aa && mask_texture_id && !use_color_matrix) { 1040 } else if (!use_aa && mask_texture_id && !use_color_matrix) {
1034 const RenderPassMaskProgram* program = GetRenderPassMaskProgram( 1041 const RenderPassMaskProgram* program = GetRenderPassMaskProgram(
1035 tex_coord_precision, mask_sampler, shader_blend_mode); 1042 tex_coord_precision, mask_sampler,
1043 shader_blend_mode, mask_for_background);
1036 SetUseProgram(program->program()); 1044 SetUseProgram(program->program());
1037 program->vertex_shader().FillLocations(&locations); 1045 program->vertex_shader().FillLocations(&locations);
1038 program->fragment_shader().FillLocations(&locations); 1046 program->fragment_shader().FillLocations(&locations);
1039 GLC(gl_, gl_->Uniform1i(locations.sampler, 0)); 1047 GLC(gl_, gl_->Uniform1i(locations.sampler, 0));
1040 } else if (use_aa && !mask_texture_id && !use_color_matrix) { 1048 } else if (use_aa && !mask_texture_id && !use_color_matrix) {
1041 const RenderPassProgramAA* program = 1049 const RenderPassProgramAA* program =
1042 GetRenderPassProgramAA(tex_coord_precision, shader_blend_mode); 1050 GetRenderPassProgramAA(tex_coord_precision, shader_blend_mode);
1043 SetUseProgram(program->program()); 1051 SetUseProgram(program->program());
1044 program->vertex_shader().FillLocations(&locations); 1052 program->vertex_shader().FillLocations(&locations);
1045 program->fragment_shader().FillLocations(&locations); 1053 program->fragment_shader().FillLocations(&locations);
1046 GLC(gl_, gl_->Uniform1i(locations.sampler, 0)); 1054 GLC(gl_, gl_->Uniform1i(locations.sampler, 0));
1047 } else if (use_aa && mask_texture_id && use_color_matrix) { 1055 } else if (use_aa && mask_texture_id && use_color_matrix) {
1048 const RenderPassMaskColorMatrixProgramAA* program = 1056 const RenderPassMaskColorMatrixProgramAA* program =
1049 GetRenderPassMaskColorMatrixProgramAA( 1057 GetRenderPassMaskColorMatrixProgramAA(
1050 tex_coord_precision, mask_sampler, shader_blend_mode); 1058 tex_coord_precision, mask_sampler,
1059 shader_blend_mode, mask_for_background);
1051 SetUseProgram(program->program()); 1060 SetUseProgram(program->program());
1052 program->vertex_shader().FillLocations(&locations); 1061 program->vertex_shader().FillLocations(&locations);
1053 program->fragment_shader().FillLocations(&locations); 1062 program->fragment_shader().FillLocations(&locations);
1054 GLC(gl_, gl_->Uniform1i(locations.sampler, 0)); 1063 GLC(gl_, gl_->Uniform1i(locations.sampler, 0));
1055 } else if (use_aa && !mask_texture_id && use_color_matrix) { 1064 } else if (use_aa && !mask_texture_id && use_color_matrix) {
1056 const RenderPassColorMatrixProgramAA* program = 1065 const RenderPassColorMatrixProgramAA* program =
1057 GetRenderPassColorMatrixProgramAA(tex_coord_precision, 1066 GetRenderPassColorMatrixProgramAA(tex_coord_precision,
1058 shader_blend_mode); 1067 shader_blend_mode);
1059 SetUseProgram(program->program()); 1068 SetUseProgram(program->program());
1060 program->vertex_shader().FillLocations(&locations); 1069 program->vertex_shader().FillLocations(&locations);
1061 program->fragment_shader().FillLocations(&locations); 1070 program->fragment_shader().FillLocations(&locations);
1062 GLC(gl_, gl_->Uniform1i(locations.sampler, 0)); 1071 GLC(gl_, gl_->Uniform1i(locations.sampler, 0));
1063 } else if (!use_aa && mask_texture_id && use_color_matrix) { 1072 } else if (!use_aa && mask_texture_id && use_color_matrix) {
1064 const RenderPassMaskColorMatrixProgram* program = 1073 const RenderPassMaskColorMatrixProgram* program =
1065 GetRenderPassMaskColorMatrixProgram( 1074 GetRenderPassMaskColorMatrixProgram(
1066 tex_coord_precision, mask_sampler, shader_blend_mode); 1075 tex_coord_precision, mask_sampler,
1076 shader_blend_mode, mask_for_background);
1067 SetUseProgram(program->program()); 1077 SetUseProgram(program->program());
1068 program->vertex_shader().FillLocations(&locations); 1078 program->vertex_shader().FillLocations(&locations);
1069 program->fragment_shader().FillLocations(&locations); 1079 program->fragment_shader().FillLocations(&locations);
1070 GLC(gl_, gl_->Uniform1i(locations.sampler, 0)); 1080 GLC(gl_, gl_->Uniform1i(locations.sampler, 0));
1071 } else if (!use_aa && !mask_texture_id && use_color_matrix) { 1081 } else if (!use_aa && !mask_texture_id && use_color_matrix) {
1072 const RenderPassColorMatrixProgram* program = 1082 const RenderPassColorMatrixProgram* program =
1073 GetRenderPassColorMatrixProgram(tex_coord_precision, shader_blend_mode); 1083 GetRenderPassColorMatrixProgram(tex_coord_precision, shader_blend_mode);
1074 SetUseProgram(program->program()); 1084 SetUseProgram(program->program());
1075 program->vertex_shader().FillLocations(&locations); 1085 program->vertex_shader().FillLocations(&locations);
1076 program->fragment_shader().FillLocations(&locations); 1086 program->fragment_shader().FillLocations(&locations);
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1170 background_rect.x(), 1180 background_rect.x(),
1171 background_rect.y(), 1181 background_rect.y(),
1172 background_rect.width(), 1182 background_rect.width(),
1173 background_rect.height())); 1183 background_rect.height()));
1174 1184
1175 if (background_image) { 1185 if (background_image) {
1176 GrTexture* texture = background_image->getTexture(); 1186 GrTexture* texture = background_image->getTexture();
1177 GLC(gl_, gl_->ActiveTexture(GL_TEXTURE0 + last_texture_unit)); 1187 GLC(gl_, gl_->ActiveTexture(GL_TEXTURE0 + last_texture_unit));
1178 gl_->BindTexture(GL_TEXTURE_2D, texture->getTextureHandle()); 1188 gl_->BindTexture(GL_TEXTURE_2D, texture->getTextureHandle());
1179 GLC(gl_, gl_->ActiveTexture(GL_TEXTURE0)); 1189 GLC(gl_, gl_->ActiveTexture(GL_TEXTURE0));
1180 } else { 1190 if (mask_for_background)
1191 GLC(gl_, gl_->Uniform1i(locations.original_backdrop,
1192 ++last_texture_unit));
1193 }
1194 if (background_texture) {
1181 shader_background_sampler_lock = make_scoped_ptr( 1195 shader_background_sampler_lock = make_scoped_ptr(
1182 new ResourceProvider::ScopedSamplerGL(resource_provider_, 1196 new ResourceProvider::ScopedSamplerGL(resource_provider_,
1183 background_texture->id(), 1197 background_texture->id(),
1184 GL_TEXTURE0 + last_texture_unit, 1198 GL_TEXTURE0 + last_texture_unit,
1185 GL_LINEAR)); 1199 GL_LINEAR));
1186 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D), 1200 DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D),
1187 shader_background_sampler_lock->target()); 1201 shader_background_sampler_lock->target());
1188 } 1202 }
1189 } 1203 }
1190 1204
(...skipping 1495 matching lines...) Expand 10 before | Expand all | Expand 10 after
2686 TRACE_EVENT0("cc", "GLRenderer::renderPassProgramAA::initialize"); 2700 TRACE_EVENT0("cc", "GLRenderer::renderPassProgramAA::initialize");
2687 program->Initialize(output_surface_->context_provider(), precision, 2701 program->Initialize(output_surface_->context_provider(), precision,
2688 SAMPLER_TYPE_2D, blend_mode); 2702 SAMPLER_TYPE_2D, blend_mode);
2689 } 2703 }
2690 return program; 2704 return program;
2691 } 2705 }
2692 2706
2693 const GLRenderer::RenderPassMaskProgram* GLRenderer::GetRenderPassMaskProgram( 2707 const GLRenderer::RenderPassMaskProgram* GLRenderer::GetRenderPassMaskProgram(
2694 TexCoordPrecision precision, 2708 TexCoordPrecision precision,
2695 SamplerType sampler, 2709 SamplerType sampler,
2696 BlendMode blend_mode) { 2710 BlendMode blend_mode,
2711 bool mask_for_background) {
2697 DCHECK_GE(precision, 0); 2712 DCHECK_GE(precision, 0);
2698 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 2713 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
2699 DCHECK_GE(sampler, 0); 2714 DCHECK_GE(sampler, 0);
2700 DCHECK_LE(sampler, LAST_SAMPLER_TYPE); 2715 DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
2701 DCHECK_GE(blend_mode, 0); 2716 DCHECK_GE(blend_mode, 0);
2702 DCHECK_LE(blend_mode, LAST_BLEND_MODE); 2717 DCHECK_LE(blend_mode, LAST_BLEND_MODE);
2703 RenderPassMaskProgram* program = 2718 RenderPassMaskProgram* program =
2704 &render_pass_mask_program_[precision][sampler][blend_mode]; 2719 &render_pass_mask_program_[precision][sampler][blend_mode]
2720 [mask_for_background ? HAS_MASK : NO_MASK];
2705 if (!program->initialized()) { 2721 if (!program->initialized()) {
2706 TRACE_EVENT0("cc", "GLRenderer::renderPassMaskProgram::initialize"); 2722 TRACE_EVENT0("cc", "GLRenderer::renderPassMaskProgram::initialize");
2707 program->Initialize( 2723 program->Initialize(
2708 output_surface_->context_provider(), precision, sampler, blend_mode); 2724 output_surface_->context_provider(), precision,
2725 sampler, blend_mode, mask_for_background);
2709 } 2726 }
2710 return program; 2727 return program;
2711 } 2728 }
2712 2729
2713 const GLRenderer::RenderPassMaskProgramAA* 2730 const GLRenderer::RenderPassMaskProgramAA*
2714 GLRenderer::GetRenderPassMaskProgramAA(TexCoordPrecision precision, 2731 GLRenderer::GetRenderPassMaskProgramAA(TexCoordPrecision precision,
2715 SamplerType sampler, 2732 SamplerType sampler,
2716 BlendMode blend_mode) { 2733 BlendMode blend_mode,
2734 bool mask_for_background) {
2717 DCHECK_GE(precision, 0); 2735 DCHECK_GE(precision, 0);
2718 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 2736 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
2719 DCHECK_GE(sampler, 0); 2737 DCHECK_GE(sampler, 0);
2720 DCHECK_LE(sampler, LAST_SAMPLER_TYPE); 2738 DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
2721 DCHECK_GE(blend_mode, 0); 2739 DCHECK_GE(blend_mode, 0);
2722 DCHECK_LE(blend_mode, LAST_BLEND_MODE); 2740 DCHECK_LE(blend_mode, LAST_BLEND_MODE);
2723 RenderPassMaskProgramAA* program = 2741 RenderPassMaskProgramAA* program =
2724 &render_pass_mask_program_aa_[precision][sampler][blend_mode]; 2742 &render_pass_mask_program_aa_[precision][sampler][blend_mode]
2743 [mask_for_background ? HAS_MASK : NO_MASK];
2725 if (!program->initialized()) { 2744 if (!program->initialized()) {
2726 TRACE_EVENT0("cc", "GLRenderer::renderPassMaskProgramAA::initialize"); 2745 TRACE_EVENT0("cc", "GLRenderer::renderPassMaskProgramAA::initialize");
2727 program->Initialize( 2746 program->Initialize(
2728 output_surface_->context_provider(), precision, sampler, blend_mode); 2747 output_surface_->context_provider(), precision,
2748 sampler, blend_mode, mask_for_background);
2729 } 2749 }
2730 return program; 2750 return program;
2731 } 2751 }
2732 2752
2733 const GLRenderer::RenderPassColorMatrixProgram* 2753 const GLRenderer::RenderPassColorMatrixProgram*
2734 GLRenderer::GetRenderPassColorMatrixProgram(TexCoordPrecision precision, 2754 GLRenderer::GetRenderPassColorMatrixProgram(TexCoordPrecision precision,
2735 BlendMode blend_mode) { 2755 BlendMode blend_mode) {
2736 DCHECK_GE(precision, 0); 2756 DCHECK_GE(precision, 0);
2737 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 2757 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
2738 DCHECK_GE(blend_mode, 0); 2758 DCHECK_GE(blend_mode, 0);
(...skipping 20 matching lines...) Expand all
2759 if (!program->initialized()) { 2779 if (!program->initialized()) {
2760 TRACE_EVENT0("cc", 2780 TRACE_EVENT0("cc",
2761 "GLRenderer::renderPassColorMatrixProgramAA::initialize"); 2781 "GLRenderer::renderPassColorMatrixProgramAA::initialize");
2762 program->Initialize(output_surface_->context_provider(), precision, 2782 program->Initialize(output_surface_->context_provider(), precision,
2763 SAMPLER_TYPE_2D, blend_mode); 2783 SAMPLER_TYPE_2D, blend_mode);
2764 } 2784 }
2765 return program; 2785 return program;
2766 } 2786 }
2767 2787
2768 const GLRenderer::RenderPassMaskColorMatrixProgram* 2788 const GLRenderer::RenderPassMaskColorMatrixProgram*
2769 GLRenderer::GetRenderPassMaskColorMatrixProgram(TexCoordPrecision precision, 2789 GLRenderer::GetRenderPassMaskColorMatrixProgram(
2770 SamplerType sampler, 2790 TexCoordPrecision precision,
2771 BlendMode blend_mode) { 2791 SamplerType sampler,
2792 BlendMode blend_mode,
2793 bool mask_for_background) {
2772 DCHECK_GE(precision, 0); 2794 DCHECK_GE(precision, 0);
2773 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 2795 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
2774 DCHECK_GE(sampler, 0); 2796 DCHECK_GE(sampler, 0);
2775 DCHECK_LE(sampler, LAST_SAMPLER_TYPE); 2797 DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
2776 DCHECK_GE(blend_mode, 0); 2798 DCHECK_GE(blend_mode, 0);
2777 DCHECK_LE(blend_mode, LAST_BLEND_MODE); 2799 DCHECK_LE(blend_mode, LAST_BLEND_MODE);
2778 RenderPassMaskColorMatrixProgram* program = 2800 RenderPassMaskColorMatrixProgram* program =
2779 &render_pass_mask_color_matrix_program_[precision][sampler][blend_mode]; 2801 &render_pass_mask_color_matrix_program_[precision][sampler][blend_mode]
2802 [mask_for_background ? HAS_MASK : NO_MASK];
2780 if (!program->initialized()) { 2803 if (!program->initialized()) {
2781 TRACE_EVENT0("cc", 2804 TRACE_EVENT0("cc",
2782 "GLRenderer::renderPassMaskColorMatrixProgram::initialize"); 2805 "GLRenderer::renderPassMaskColorMatrixProgram::initialize");
2783 program->Initialize( 2806 program->Initialize(
2784 output_surface_->context_provider(), precision, sampler, blend_mode); 2807 output_surface_->context_provider(), precision,
2808 sampler, blend_mode, mask_for_background);
2785 } 2809 }
2786 return program; 2810 return program;
2787 } 2811 }
2788 2812
2789 const GLRenderer::RenderPassMaskColorMatrixProgramAA* 2813 const GLRenderer::RenderPassMaskColorMatrixProgramAA*
2790 GLRenderer::GetRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision, 2814 GLRenderer::GetRenderPassMaskColorMatrixProgramAA(
2791 SamplerType sampler, 2815 TexCoordPrecision precision,
2792 BlendMode blend_mode) { 2816 SamplerType sampler,
2817 BlendMode blend_mode,
2818 bool mask_for_background) {
2793 DCHECK_GE(precision, 0); 2819 DCHECK_GE(precision, 0);
2794 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 2820 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
2795 DCHECK_GE(sampler, 0); 2821 DCHECK_GE(sampler, 0);
2796 DCHECK_LE(sampler, LAST_SAMPLER_TYPE); 2822 DCHECK_LE(sampler, LAST_SAMPLER_TYPE);
2797 DCHECK_GE(blend_mode, 0); 2823 DCHECK_GE(blend_mode, 0);
2798 DCHECK_LE(blend_mode, LAST_BLEND_MODE); 2824 DCHECK_LE(blend_mode, LAST_BLEND_MODE);
2799 RenderPassMaskColorMatrixProgramAA* program = 2825 RenderPassMaskColorMatrixProgramAA* program =
2800 &render_pass_mask_color_matrix_program_aa_[precision][sampler] 2826 &render_pass_mask_color_matrix_program_aa_[precision][sampler][blend_mode]
2801 [blend_mode]; 2827 [mask_for_background ? HAS_MASK : NO_MASK];
2802 if (!program->initialized()) { 2828 if (!program->initialized()) {
2803 TRACE_EVENT0("cc", 2829 TRACE_EVENT0("cc",
2804 "GLRenderer::renderPassMaskColorMatrixProgramAA::initialize"); 2830 "GLRenderer::renderPassMaskColorMatrixProgramAA::initialize");
2805 program->Initialize( 2831 program->Initialize(
2806 output_surface_->context_provider(), precision, sampler, blend_mode); 2832 output_surface_->context_provider(), precision,
2833 sampler, blend_mode, mask_for_background);
2807 } 2834 }
2808 return program; 2835 return program;
2809 } 2836 }
2810 2837
2811 const GLRenderer::TileProgram* GLRenderer::GetTileProgram( 2838 const GLRenderer::TileProgram* GLRenderer::GetTileProgram(
2812 TexCoordPrecision precision, 2839 TexCoordPrecision precision,
2813 SamplerType sampler) { 2840 SamplerType sampler) {
2814 DCHECK_GE(precision, 0); 2841 DCHECK_GE(precision, 0);
2815 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION); 2842 DCHECK_LE(precision, LAST_TEX_COORD_PRECISION);
2816 DCHECK_GE(sampler, 0); 2843 DCHECK_GE(sampler, 0);
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
3023 for (int i = 0; i <= LAST_TEX_COORD_PRECISION; ++i) { 3050 for (int i = 0; i <= LAST_TEX_COORD_PRECISION; ++i) {
3024 for (int j = 0; j <= LAST_SAMPLER_TYPE; ++j) { 3051 for (int j = 0; j <= LAST_SAMPLER_TYPE; ++j) {
3025 tile_program_[i][j].Cleanup(gl_); 3052 tile_program_[i][j].Cleanup(gl_);
3026 tile_program_opaque_[i][j].Cleanup(gl_); 3053 tile_program_opaque_[i][j].Cleanup(gl_);
3027 tile_program_swizzle_[i][j].Cleanup(gl_); 3054 tile_program_swizzle_[i][j].Cleanup(gl_);
3028 tile_program_swizzle_opaque_[i][j].Cleanup(gl_); 3055 tile_program_swizzle_opaque_[i][j].Cleanup(gl_);
3029 tile_program_aa_[i][j].Cleanup(gl_); 3056 tile_program_aa_[i][j].Cleanup(gl_);
3030 tile_program_swizzle_aa_[i][j].Cleanup(gl_); 3057 tile_program_swizzle_aa_[i][j].Cleanup(gl_);
3031 3058
3032 for (int k = 0; k <= LAST_BLEND_MODE; k++) { 3059 for (int k = 0; k <= LAST_BLEND_MODE; k++) {
3033 render_pass_mask_program_[i][j][k].Cleanup(gl_); 3060 for (int l = 0; l <= LAST_MASK_VALUE; ++l) {
3034 render_pass_mask_program_aa_[i][j][k].Cleanup(gl_); 3061 render_pass_mask_program_[i][j][k][l].Cleanup(gl_);
3035 render_pass_mask_color_matrix_program_aa_[i][j][k].Cleanup(gl_); 3062 render_pass_mask_program_aa_[i][j][k][l].Cleanup(gl_);
3036 render_pass_mask_color_matrix_program_[i][j][k].Cleanup(gl_); 3063 render_pass_mask_color_matrix_program_aa_[i][j][k][l].Cleanup(gl_);
3064 render_pass_mask_color_matrix_program_[i][j][k][l].Cleanup(gl_);
3065 }
3037 } 3066 }
3038 } 3067 }
3039 for (int j = 0; j <= LAST_BLEND_MODE; j++) { 3068 for (int j = 0; j <= LAST_BLEND_MODE; j++) {
3040 render_pass_program_[i][j].Cleanup(gl_); 3069 render_pass_program_[i][j].Cleanup(gl_);
3041 render_pass_program_aa_[i][j].Cleanup(gl_); 3070 render_pass_program_aa_[i][j].Cleanup(gl_);
3042 render_pass_color_matrix_program_[i][j].Cleanup(gl_); 3071 render_pass_color_matrix_program_[i][j].Cleanup(gl_);
3043 render_pass_color_matrix_program_aa_[i][j].Cleanup(gl_); 3072 render_pass_color_matrix_program_aa_[i][j].Cleanup(gl_);
3044 } 3073 }
3045 3074
3046 texture_program_[i].Cleanup(gl_); 3075 texture_program_[i].Cleanup(gl_);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
3143 context_support_->ScheduleOverlayPlane( 3172 context_support_->ScheduleOverlayPlane(
3144 overlay.plane_z_order, 3173 overlay.plane_z_order,
3145 overlay.transform, 3174 overlay.transform,
3146 pending_overlay_resources_.back()->texture_id(), 3175 pending_overlay_resources_.back()->texture_id(),
3147 overlay.display_rect, 3176 overlay.display_rect,
3148 overlay.uv_rect); 3177 overlay.uv_rect);
3149 } 3178 }
3150 } 3179 }
3151 3180
3152 } // namespace cc 3181 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.h ('k') | cc/output/gl_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698