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

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

Issue 18432002: Blend TextureLayer background-color at draw time. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: separate shaders for textures with background Created 7 years, 5 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 | Annotate | Revision Log
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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 gfx::PointF uv0 = quad->uv_top_left; 91 gfx::PointF uv0 = quad->uv_top_left;
92 gfx::PointF uv1 = quad->uv_bottom_right; 92 gfx::PointF uv1 = quad->uv_bottom_right;
93 Float4 xform = { { uv0.x(), uv0.y(), uv1.x() - uv0.x(), uv1.y() - uv0.y() } }; 93 Float4 xform = { { uv0.x(), uv0.y(), uv1.x() - uv0.x(), uv1.y() - uv0.y() } };
94 if (quad->flipped) { 94 if (quad->flipped) {
95 xform.data[1] = 1.0f - xform.data[1]; 95 xform.data[1] = 1.0f - xform.data[1];
96 xform.data[3] = -xform.data[3]; 96 xform.data[3] = -xform.data[3];
97 } 97 }
98 return xform; 98 return xform;
99 } 99 }
100 100
101 Float4 PremultipliedColor(SkColor color) {
102 const float factor = 1.0f / 255.0f;
103 const float alpha = SkColorGetA(color) * factor;
104
105 Float4 result = { {
106 SkColorGetR(color) * factor * alpha,
107 SkColorGetG(color) * factor * alpha,
108 SkColorGetB(color) * factor * alpha,
109 alpha
110 } };
111 return result;
112 }
113
101 // Smallest unit that impact anti-aliasing output. We use this to 114 // Smallest unit that impact anti-aliasing output. We use this to
102 // determine when anti-aliasing is unnecessary. 115 // determine when anti-aliasing is unnecessary.
103 const float kAntiAliasingEpsilon = 1.0f / 1024.0f; 116 const float kAntiAliasingEpsilon = 1.0f / 1024.0f;
104 117
105 } // anonymous namespace 118 } // anonymous namespace
106 119
107 struct GLRenderer::PendingAsyncReadPixels { 120 struct GLRenderer::PendingAsyncReadPixels {
108 PendingAsyncReadPixels() : buffer(0) {} 121 PendingAsyncReadPixels() : buffer(0) {}
109 122
110 scoped_ptr<CopyOutputRequest> copy_request; 123 scoped_ptr<CopyOutputRequest> copy_request;
(...skipping 1533 matching lines...) Expand 10 before | Expand all | Expand 10 after
1644 DrawContentQuad(frame, quad, on_demand_tile_raster_resource_id_); 1657 DrawContentQuad(frame, quad, on_demand_tile_raster_resource_id_);
1645 } 1658 }
1646 1659
1647 struct TextureProgramBinding { 1660 struct TextureProgramBinding {
1648 template <class Program> 1661 template <class Program>
1649 void Set(Program* program, WebKit::WebGraphicsContext3D* context) { 1662 void Set(Program* program, WebKit::WebGraphicsContext3D* context) {
1650 DCHECK(program && (program->initialized() || context->isContextLost())); 1663 DCHECK(program && (program->initialized() || context->isContextLost()));
1651 program_id = program->program(); 1664 program_id = program->program();
1652 sampler_location = program->fragment_shader().sampler_location(); 1665 sampler_location = program->fragment_shader().sampler_location();
1653 matrix_location = program->vertex_shader().matrix_location(); 1666 matrix_location = program->vertex_shader().matrix_location();
1654 alpha_location = program->fragment_shader().alpha_location(); 1667 background_color_location =
1668 program->fragment_shader().background_color_location();
1655 } 1669 }
1656 int program_id; 1670 int program_id;
1657 int sampler_location; 1671 int sampler_location;
1658 int matrix_location; 1672 int matrix_location;
1659 int alpha_location; 1673 int background_color_location;
1660 }; 1674 };
1661 1675
1662 struct TexTransformTextureProgramBinding : TextureProgramBinding { 1676 struct TexTransformTextureProgramBinding : TextureProgramBinding {
1663 template <class Program> 1677 template <class Program>
1664 void Set(Program* program, WebKit::WebGraphicsContext3D* context) { 1678 void Set(Program* program, WebKit::WebGraphicsContext3D* context) {
1665 TextureProgramBinding::Set(program, context); 1679 TextureProgramBinding::Set(program, context);
1666 tex_transform_location = program->vertex_shader().tex_transform_location(); 1680 tex_transform_location = program->vertex_shader().tex_transform_location();
1667 vertex_opacity_location = 1681 vertex_opacity_location =
1668 program->vertex_shader().vertex_opacity_location(); 1682 program->vertex_shader().vertex_opacity_location();
1669 } 1683 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1703 context_->uniformMatrix4fv( 1717 context_->uniformMatrix4fv(
1704 static_cast<int>(draw_cache_.matrix_location), 1718 static_cast<int>(draw_cache_.matrix_location),
1705 static_cast<int>(draw_cache_.matrix_data.size()), 1719 static_cast<int>(draw_cache_.matrix_data.size()),
1706 false, 1720 false,
1707 reinterpret_cast<float*>(&draw_cache_.matrix_data.front()))); 1721 reinterpret_cast<float*>(&draw_cache_.matrix_data.front())));
1708 GLC(context_, 1722 GLC(context_,
1709 context_->uniform4fv( 1723 context_->uniform4fv(
1710 static_cast<int>(draw_cache_.uv_xform_location), 1724 static_cast<int>(draw_cache_.uv_xform_location),
1711 static_cast<int>(draw_cache_.uv_xform_data.size()), 1725 static_cast<int>(draw_cache_.uv_xform_data.size()),
1712 reinterpret_cast<float*>(&draw_cache_.uv_xform_data.front()))); 1726 reinterpret_cast<float*>(&draw_cache_.uv_xform_data.front())));
1727
1728 if (draw_cache_.background_color != SK_ColorTRANSPARENT) {
1729 Float4 background_color = PremultipliedColor(draw_cache_.background_color);
1730 GLC(context_,
1731 context_->uniform4fv(
1732 draw_cache_.background_color_location, 1, background_color.data));
1733 }
1734
1713 GLC(context_, 1735 GLC(context_,
1714 context_->uniform1fv( 1736 context_->uniform1fv(
1715 static_cast<int>(draw_cache_.vertex_opacity_location), 1737 static_cast<int>(draw_cache_.vertex_opacity_location),
1716 static_cast<int>(draw_cache_.vertex_opacity_data.size()), 1738 static_cast<int>(draw_cache_.vertex_opacity_data.size()),
1717 static_cast<float*>(&draw_cache_.vertex_opacity_data.front()))); 1739 static_cast<float*>(&draw_cache_.vertex_opacity_data.front())));
1718 1740
1719 // Draw the quads! 1741 // Draw the quads!
1720 GLC(context_, 1742 GLC(context_,
1721 context_->drawElements(GL_TRIANGLES, 1743 context_->drawElements(GL_TRIANGLES,
1722 6 * draw_cache_.matrix_data.size(), 1744 6 * draw_cache_.matrix_data.size(),
1723 GL_UNSIGNED_SHORT, 1745 GL_UNSIGNED_SHORT,
1724 0)); 1746 0));
1725 1747
1726 // Clear the cache. 1748 // Clear the cache.
1727 draw_cache_.program_id = 0; 1749 draw_cache_.program_id = 0;
1728 draw_cache_.uv_xform_data.resize(0); 1750 draw_cache_.uv_xform_data.resize(0);
1729 draw_cache_.vertex_opacity_data.resize(0); 1751 draw_cache_.vertex_opacity_data.resize(0);
1730 draw_cache_.matrix_data.resize(0); 1752 draw_cache_.matrix_data.resize(0);
1731 } 1753 }
1732 1754
1733 void GLRenderer::EnqueueTextureQuad(const DrawingFrame* frame, 1755 void GLRenderer::EnqueueTextureQuad(const DrawingFrame* frame,
1734 const TextureDrawQuad* quad) { 1756 const TextureDrawQuad* quad) {
1735 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( 1757 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
1736 context_, &highp_threshold_cache_, highp_threshold_min_, 1758 context_, &highp_threshold_cache_, highp_threshold_min_,
1737 quad->shared_quad_state->visible_content_rect.bottom_right()); 1759 quad->shared_quad_state->visible_content_rect.bottom_right());
1738 1760
1739 // Choose the correct texture program binding 1761 // Choose the correct texture program binding
1740 TexTransformTextureProgramBinding binding; 1762 TexTransformTextureProgramBinding binding;
1741 if (quad->premultiplied_alpha) { 1763 if (quad->premultiplied_alpha) {
1742 binding.Set(GetTextureProgram(tex_coord_precision), Context()); 1764 if (quad->background_color == SK_ColorTRANSPARENT) {
1765 binding.Set(GetTextureProgram(tex_coord_precision), Context());
1766 } else {
1767 binding.Set(GetTextureBackgroundProgram(tex_coord_precision), Context());
1768 }
1743 } else { 1769 } else {
1744 binding.Set(GetNonPremultipliedTextureProgram(tex_coord_precision), 1770 if (quad->background_color == SK_ColorTRANSPARENT) {
1745 Context()); 1771 binding.Set(GetNonPremultipliedTextureProgram(tex_coord_precision),
1772 Context());
1773 } else {
1774 binding.Set(
1775 GetNonPremultipliedTextureBackgroundProgram(tex_coord_precision),
1776 Context());
1777 }
1746 } 1778 }
1747 1779
1748 int resource_id = quad->resource_id; 1780 int resource_id = quad->resource_id;
1749 1781
1750 if (draw_cache_.program_id != binding.program_id || 1782 if (draw_cache_.program_id != binding.program_id ||
1751 draw_cache_.resource_id != resource_id || 1783 draw_cache_.resource_id != resource_id ||
1752 draw_cache_.needs_blending != quad->ShouldDrawWithBlending() || 1784 draw_cache_.needs_blending != quad->ShouldDrawWithBlending() ||
1785 draw_cache_.background_color != quad->background_color ||
1753 draw_cache_.matrix_data.size() >= 8) { 1786 draw_cache_.matrix_data.size() >= 8) {
1754 FlushTextureQuadCache(); 1787 FlushTextureQuadCache();
1755 draw_cache_.program_id = binding.program_id; 1788 draw_cache_.program_id = binding.program_id;
1756 draw_cache_.resource_id = resource_id; 1789 draw_cache_.resource_id = resource_id;
1757 draw_cache_.needs_blending = quad->ShouldDrawWithBlending(); 1790 draw_cache_.needs_blending = quad->ShouldDrawWithBlending();
1791 draw_cache_.background_color = quad->background_color;
1758 1792
1759 draw_cache_.uv_xform_location = binding.tex_transform_location; 1793 draw_cache_.uv_xform_location = binding.tex_transform_location;
1794 draw_cache_.background_color_location = binding.background_color_location;
1760 draw_cache_.vertex_opacity_location = binding.vertex_opacity_location; 1795 draw_cache_.vertex_opacity_location = binding.vertex_opacity_location;
1761 draw_cache_.matrix_location = binding.matrix_location; 1796 draw_cache_.matrix_location = binding.matrix_location;
1762 draw_cache_.sampler_location = binding.sampler_location; 1797 draw_cache_.sampler_location = binding.sampler_location;
1763 } 1798 }
1764 1799
1765 // Generate the uv-transform 1800 // Generate the uv-transform
1766 draw_cache_.uv_xform_data.push_back(UVTransform(quad)); 1801 draw_cache_.uv_xform_data.push_back(UVTransform(quad));
1767 1802
1768 // Generate the vertex opacity 1803 // Generate the vertex opacity
1769 const float opacity = quad->opacity(); 1804 const float opacity = quad->opacity();
1770 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[0] * opacity); 1805 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[0] * opacity);
1771 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[1] * opacity); 1806 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[1] * opacity);
1772 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[2] * opacity); 1807 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[2] * opacity);
1773 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[3] * opacity); 1808 draw_cache_.vertex_opacity_data.push_back(quad->vertex_opacity[3] * opacity);
1774 1809
1775 // Generate the transform matrix 1810 // Generate the transform matrix
1776 gfx::Transform quad_rect_matrix; 1811 gfx::Transform quad_rect_matrix;
1777 QuadRectTransform(&quad_rect_matrix, quad->quadTransform(), quad->rect); 1812 QuadRectTransform(&quad_rect_matrix, quad->quadTransform(), quad->rect);
1778 quad_rect_matrix = frame->projection_matrix * quad_rect_matrix; 1813 quad_rect_matrix = frame->projection_matrix * quad_rect_matrix;
1779 1814
1780 Float16 m; 1815 Float16 m;
1781 quad_rect_matrix.matrix().asColMajorf(m.data); 1816 quad_rect_matrix.matrix().asColMajorf(m.data);
1782 draw_cache_.matrix_data.push_back(m); 1817 draw_cache_.matrix_data.push_back(m);
1783 } 1818 }
1784 1819
1785 void GLRenderer::DrawTextureQuad(const DrawingFrame* frame, 1820 void GLRenderer::DrawTextureQuad(const DrawingFrame* frame,
1786 const TextureDrawQuad* quad) { 1821 const TextureDrawQuad* quad) {
piman 2013/07/03 20:11:12 FYI this method was removed by https://codereview.
alokp 2013/07/09 00:08:06 Thanks for the heads up.
1787 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired( 1822 TexCoordPrecision tex_coord_precision = TexCoordPrecisionRequired(
1788 context_, &highp_threshold_cache_, highp_threshold_min_, 1823 context_, &highp_threshold_cache_, highp_threshold_min_,
1789 quad->shared_quad_state->visible_content_rect.bottom_right()); 1824 quad->shared_quad_state->visible_content_rect.bottom_right());
1790 1825
1791 TexTransformTextureProgramBinding binding; 1826 TexTransformTextureProgramBinding binding;
1792 if (quad->premultiplied_alpha) { 1827 if (quad->premultiplied_alpha) {
1793 binding.Set(GetTextureProgram(tex_coord_precision), Context()); 1828 if (quad->background_color == SK_ColorTRANSPARENT) {
1829 binding.Set(GetTextureProgram(tex_coord_precision), Context());
1830 } else {
1831 binding.Set(GetTextureBackgroundProgram(tex_coord_precision), Context());
1832 }
1794 } else { 1833 } else {
1795 binding.Set(GetNonPremultipliedTextureProgram(tex_coord_precision), 1834 if (quad->background_color == SK_ColorTRANSPARENT) {
1796 Context()); 1835 binding.Set(GetNonPremultipliedTextureProgram(tex_coord_precision),
1836 Context());
1837 } else {
1838 binding.Set(
1839 GetNonPremultipliedTextureBackgroundProgram(tex_coord_precision),
1840 Context());
1841 }
1797 } 1842 }
1798 SetUseProgram(binding.program_id); 1843 SetUseProgram(binding.program_id);
1799 GLC(Context(), Context()->uniform1i(binding.sampler_location, 0)); 1844 GLC(Context(), Context()->uniform1i(binding.sampler_location, 0));
1800 Float4 uv_xform = UVTransform(quad); 1845 Float4 uv_xform = UVTransform(quad);
1801 GLC(Context(), 1846 GLC(Context(),
1802 Context()->uniform4f(binding.tex_transform_location, 1847 Context()->uniform4f(binding.tex_transform_location,
1803 uv_xform.data[0], 1848 uv_xform.data[0],
1804 uv_xform.data[1], 1849 uv_xform.data[1],
1805 uv_xform.data[2], 1850 uv_xform.data[2],
1806 uv_xform.data[3])); 1851 uv_xform.data[3]));
1807 1852
1853 if (quad->background_color != SK_ColorTRANSPARENT) {
1854 Float4 background_color = PremultipliedColor(quad->background_color);
1855 GLC(Context(),
1856 Context()->uniform4fv(
1857 binding.background_color_location, 1, background_color.data));
1858 }
1859
1808 GLC(Context(), 1860 GLC(Context(),
1809 Context()->uniform1fv( 1861 Context()->uniform1fv(
1810 binding.vertex_opacity_location, 4, quad->vertex_opacity)); 1862 binding.vertex_opacity_location, 4, quad->vertex_opacity));
1811 1863
1812 ResourceProvider::ScopedSamplerGL quad_resource_lock( 1864 ResourceProvider::ScopedSamplerGL quad_resource_lock(
1813 resource_provider_, quad->resource_id, GL_TEXTURE_2D, GL_LINEAR); 1865 resource_provider_, quad->resource_id, GL_TEXTURE_2D, GL_LINEAR);
1814 1866
1815 DrawQuadGeometry( 1867 DrawQuadGeometry(
1816 frame, quad->quadTransform(), quad->rect, binding.matrix_location); 1868 frame, quad->quadTransform(), quad->rect, binding.matrix_location);
1817 } 1869 }
(...skipping 957 matching lines...) Expand 10 before | Expand all | Expand 10 after
2775 new NonPremultipliedTextureProgram(context_, precision)); 2827 new NonPremultipliedTextureProgram(context_, precision));
2776 } 2828 }
2777 if (!program->initialized()) { 2829 if (!program->initialized()) {
2778 TRACE_EVENT0("cc", 2830 TRACE_EVENT0("cc",
2779 "GLRenderer::NonPremultipliedTextureProgram::Initialize"); 2831 "GLRenderer::NonPremultipliedTextureProgram::Initialize");
2780 program->Initialize(context_, is_using_bind_uniform_); 2832 program->Initialize(context_, is_using_bind_uniform_);
2781 } 2833 }
2782 return program.get(); 2834 return program.get();
2783 } 2835 }
2784 2836
2837 const GLRenderer::TextureBackgroundProgram*
2838 GLRenderer::GetTextureBackgroundProgram(TexCoordPrecision precision) {
2839 scoped_ptr<TextureBackgroundProgram>& program =
2840 (precision == TexCoordPrecisionHigh) ? texture_background_program_highp_
2841 : texture_background_program_;
2842 if (!program)
2843 program = make_scoped_ptr(
2844 new TextureBackgroundProgram(context_, precision));
2845 if (!program->initialized()) {
2846 TRACE_EVENT0("cc", "GLRenderer::textureProgram::initialize");
2847 program->Initialize(context_, is_using_bind_uniform_);
2848 }
2849 return program.get();
2850 }
2851
2852 const GLRenderer::NonPremultipliedTextureBackgroundProgram*
2853 GLRenderer::GetNonPremultipliedTextureBackgroundProgram(
2854 TexCoordPrecision precision) {
2855 scoped_ptr<NonPremultipliedTextureBackgroundProgram>& program =
2856 (precision == TexCoordPrecisionHigh) ?
2857 nonpremultiplied_texture_background_program_highp_ :
2858 nonpremultiplied_texture_background_program_;
2859 if (!program) {
2860 program = make_scoped_ptr(
2861 new NonPremultipliedTextureBackgroundProgram(context_, precision));
2862 }
2863 if (!program->initialized()) {
2864 TRACE_EVENT0("cc",
2865 "GLRenderer::NonPremultipliedTextureProgram::Initialize");
2866 program->Initialize(context_, is_using_bind_uniform_);
2867 }
2868 return program.get();
2869 }
2870
2785 const GLRenderer::TextureIOSurfaceProgram* 2871 const GLRenderer::TextureIOSurfaceProgram*
2786 GLRenderer::GetTextureIOSurfaceProgram(TexCoordPrecision precision) { 2872 GLRenderer::GetTextureIOSurfaceProgram(TexCoordPrecision precision) {
2787 scoped_ptr<TextureIOSurfaceProgram>& program = 2873 scoped_ptr<TextureIOSurfaceProgram>& program =
2788 (precision == TexCoordPrecisionHigh) ? texture_io_surface_program_highp_ 2874 (precision == TexCoordPrecisionHigh) ? texture_io_surface_program_highp_
2789 : texture_io_surface_program_; 2875 : texture_io_surface_program_;
2790 if (!program) 2876 if (!program)
2791 program = 2877 program =
2792 make_scoped_ptr(new TextureIOSurfaceProgram(context_, precision)); 2878 make_scoped_ptr(new TextureIOSurfaceProgram(context_, precision));
2793 if (!program->initialized()) { 2879 if (!program->initialized()) {
2794 TRACE_EVENT0("cc", "GLRenderer::textureIOSurfaceProgram::initialize"); 2880 TRACE_EVENT0("cc", "GLRenderer::textureIOSurfaceProgram::initialize");
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
2906 render_pass_mask_color_matrix_program_aa_highp_->Cleanup(context_); 2992 render_pass_mask_color_matrix_program_aa_highp_->Cleanup(context_);
2907 if (render_pass_color_matrix_program_aa_highp_) 2993 if (render_pass_color_matrix_program_aa_highp_)
2908 render_pass_color_matrix_program_aa_highp_->Cleanup(context_); 2994 render_pass_color_matrix_program_aa_highp_->Cleanup(context_);
2909 if (render_pass_mask_color_matrix_program_highp_) 2995 if (render_pass_mask_color_matrix_program_highp_)
2910 render_pass_mask_color_matrix_program_highp_->Cleanup(context_); 2996 render_pass_mask_color_matrix_program_highp_->Cleanup(context_);
2911 2997
2912 if (texture_program_) 2998 if (texture_program_)
2913 texture_program_->Cleanup(context_); 2999 texture_program_->Cleanup(context_);
2914 if (nonpremultiplied_texture_program_) 3000 if (nonpremultiplied_texture_program_)
2915 nonpremultiplied_texture_program_->Cleanup(context_); 3001 nonpremultiplied_texture_program_->Cleanup(context_);
3002 if (texture_background_program_)
3003 texture_background_program_->Cleanup(context_);
3004 if (nonpremultiplied_texture_background_program_)
3005 nonpremultiplied_texture_background_program_->Cleanup(context_);
2916 if (texture_io_surface_program_) 3006 if (texture_io_surface_program_)
2917 texture_io_surface_program_->Cleanup(context_); 3007 texture_io_surface_program_->Cleanup(context_);
2918 3008
2919 if (texture_program_highp_) 3009 if (texture_program_highp_)
2920 texture_program_highp_->Cleanup(context_); 3010 texture_program_highp_->Cleanup(context_);
2921 if (nonpremultiplied_texture_program_highp_) 3011 if (nonpremultiplied_texture_program_highp_)
2922 nonpremultiplied_texture_program_highp_->Cleanup(context_); 3012 nonpremultiplied_texture_program_highp_->Cleanup(context_);
3013 if (texture_background_program_highp_)
3014 texture_background_program_highp_->Cleanup(context_);
3015 if (nonpremultiplied_texture_background_program_highp_)
3016 nonpremultiplied_texture_background_program_highp_->Cleanup(context_);
2923 if (texture_io_surface_program_highp_) 3017 if (texture_io_surface_program_highp_)
2924 texture_io_surface_program_highp_->Cleanup(context_); 3018 texture_io_surface_program_highp_->Cleanup(context_);
2925 3019
2926 if (video_yuv_program_) 3020 if (video_yuv_program_)
2927 video_yuv_program_->Cleanup(context_); 3021 video_yuv_program_->Cleanup(context_);
2928 if (video_yuva_program_) 3022 if (video_yuva_program_)
2929 video_yuva_program_->Cleanup(context_); 3023 video_yuva_program_->Cleanup(context_);
2930 if (video_stream_texture_program_) 3024 if (video_stream_texture_program_)
2931 video_stream_texture_program_->Cleanup(context_); 3025 video_stream_texture_program_->Cleanup(context_);
2932 3026
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
3009 std::string unique_context_name = base::StringPrintf( 3103 std::string unique_context_name = base::StringPrintf(
3010 "%s-Offscreen-%p", 3104 "%s-Offscreen-%p",
3011 Settings().compositor_name.c_str(), 3105 Settings().compositor_name.c_str(),
3012 context_); 3106 context_);
3013 resource_provider()->offscreen_context_provider()->Context3d()-> 3107 resource_provider()->offscreen_context_provider()->Context3d()->
3014 pushGroupMarkerEXT(unique_context_name.c_str()); 3108 pushGroupMarkerEXT(unique_context_name.c_str());
3015 } 3109 }
3016 3110
3017 3111
3018 } // namespace cc 3112 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698