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 <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
745 if (disable_blending) | 745 if (disable_blending) |
746 SetBlendEnabled(true); | 746 SetBlendEnabled(true); |
747 } | 747 } |
748 | 748 |
749 // TODO(senorblanco): Cache this value so that we don't have to do it for both | 749 // TODO(senorblanco): Cache this value so that we don't have to do it for both |
750 // the surface and its replica. Apply filters to the contents texture. | 750 // the surface and its replica. Apply filters to the contents texture. |
751 SkBitmap filter_bitmap; | 751 SkBitmap filter_bitmap; |
752 SkScalar color_matrix[20]; | 752 SkScalar color_matrix[20]; |
753 bool use_color_matrix = false; | 753 bool use_color_matrix = false; |
754 if (quad->filter) { | 754 if (quad->filter) { |
755 SkColorFilter* cf; | 755 skia::RefPtr<SkColorFilter> cf; |
756 if ((quad->filter->asColorFilter(&cf)) && cf->asColorMatrix(color_matrix) && | 756 quad->filter->asColorFilter(cf.ReceiveAndAdoptRef()); |
757 !quad->filter->getInput(0)) { | 757 |
| 758 if (cf && cf->asColorMatrix(color_matrix) && !quad->filter->getInput(0)) { |
758 // We have a single color matrix as a filter; apply it locally | 759 // We have a single color matrix as a filter; apply it locally |
759 // in the compositor. | 760 // in the compositor. |
760 use_color_matrix = true; | 761 use_color_matrix = true; |
761 } else { | 762 } else { |
762 filter_bitmap = | 763 filter_bitmap = |
763 ApplyImageFilter(this, quad->filter.get(), contents_texture); | 764 ApplyImageFilter(this, quad->filter.get(), contents_texture); |
764 } | 765 } |
765 } else if (!quad->filters.IsEmpty()) { | 766 } else if (!quad->filters.IsEmpty()) { |
766 FilterOperations optimized_filters = | 767 FilterOperations optimized_filters = |
767 RenderSurfaceFilters::Optimize(quad->filters); | 768 RenderSurfaceFilters::Optimize(quad->filters); |
(...skipping 2320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3088 std::string unique_context_name = base::StringPrintf( | 3089 std::string unique_context_name = base::StringPrintf( |
3089 "%s-Offscreen-%p", | 3090 "%s-Offscreen-%p", |
3090 Settings().compositor_name.c_str(), | 3091 Settings().compositor_name.c_str(), |
3091 context_); | 3092 context_); |
3092 resource_provider()->offscreen_context_provider()->Context3d()-> | 3093 resource_provider()->offscreen_context_provider()->Context3d()-> |
3093 pushGroupMarkerEXT(unique_context_name.c_str()); | 3094 pushGroupMarkerEXT(unique_context_name.c_str()); |
3094 } | 3095 } |
3095 | 3096 |
3096 | 3097 |
3097 } // namespace cc | 3098 } // namespace cc |
OLD | NEW |