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

Side by Side Diff: cc/trees/property_tree_builder.cc

Issue 2468113004: Revert of cc: Make visible rect computation aware of pixel-moving filters (Closed)
Patch Set: Created 4 years, 1 month 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/trees/layer_tree_host_common_unittest.cc ('k') | cc/trees/property_tree_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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/trees/property_tree_builder.h" 5 #include "cc/trees/property_tree_builder.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
11 11
12 #include "base/memory/ptr_util.h"
13 #include "cc/animation/animation_host.h" 12 #include "cc/animation/animation_host.h"
14 #include "cc/animation/mutable_properties.h" 13 #include "cc/animation/mutable_properties.h"
15 #include "cc/base/math_util.h" 14 #include "cc/base/math_util.h"
16 #include "cc/layers/layer.h" 15 #include "cc/layers/layer.h"
17 #include "cc/layers/layer_impl.h" 16 #include "cc/layers/layer_impl.h"
18 #include "cc/output/copy_output_request.h" 17 #include "cc/output/copy_output_request.h"
19 #include "cc/trees/clip_node.h" 18 #include "cc/trees/clip_node.h"
20 #include "cc/trees/draw_property_utils.h" 19 #include "cc/trees/draw_property_utils.h"
21 #include "cc/trees/effect_node.h" 20 #include "cc/trees/effect_node.h"
22 #include "cc/trees/layer_tree_impl.h" 21 #include "cc/trees/layer_tree_impl.h"
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 } 218 }
220 219
221 static size_t NumUnclippedDescendants(Layer* layer) { 220 static size_t NumUnclippedDescendants(Layer* layer) {
222 return layer->num_unclipped_descendants(); 221 return layer->num_unclipped_descendants();
223 } 222 }
224 223
225 static size_t NumUnclippedDescendants(LayerImpl* layer) { 224 static size_t NumUnclippedDescendants(LayerImpl* layer) {
226 return layer->test_properties()->num_unclipped_descendants; 225 return layer->test_properties()->num_unclipped_descendants;
227 } 226 }
228 227
229 static inline const FilterOperations& Filters(Layer* layer) {
230 return layer->filters();
231 }
232
233 static inline const FilterOperations& Filters(LayerImpl* layer) {
234 return layer->test_properties()->filters;
235 }
236
237 static Layer* MaskLayer(Layer* layer) { 228 static Layer* MaskLayer(Layer* layer) {
238 return layer->mask_layer(); 229 return layer->mask_layer();
239 } 230 }
240 231
241 static LayerImpl* MaskLayer(LayerImpl* layer) { 232 static LayerImpl* MaskLayer(LayerImpl* layer) {
242 return layer->test_properties()->mask_layer; 233 return layer->test_properties()->mask_layer;
243 } 234 }
244 235
245 static const gfx::Transform& Transform(Layer* layer) { 236 static const gfx::Transform& Transform(Layer* layer) {
246 return layer->transform(); 237 return layer->transform();
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 // clipping state from ancestors must continue to get propagated. 422 // clipping state from ancestors must continue to get propagated.
432 node.layer_clipping_uses_only_local_clip = 423 node.layer_clipping_uses_only_local_clip =
433 (created_render_surface && NumUnclippedDescendants(layer) == 0) || 424 (created_render_surface && NumUnclippedDescendants(layer) == 0) ||
434 !ancestor_clips_subtree; 425 !ancestor_clips_subtree;
435 } else { 426 } else {
436 // Otherwise, we're either unclipped, or exist only in order to apply our 427 // Otherwise, we're either unclipped, or exist only in order to apply our
437 // parent's clips in our space. 428 // parent's clips in our space.
438 node.layer_clipping_uses_only_local_clip = false; 429 node.layer_clipping_uses_only_local_clip = false;
439 } 430 }
440 431
441 if (layer_clips_subtree) { 432 if (layer_clips_subtree)
442 node.clip_type = ClipNode::ClipType::APPLIES_LOCAL_CLIP; 433 node.clip_type = ClipNode::ClipType::APPLIES_LOCAL_CLIP;
443 } else if (Filters(layer).HasFilterThatMovesPixels()) { 434 else
444 node.clip_type = ClipNode::ClipType::EXPANDS_CLIP;
445 node.clip_expander =
446 base::MakeUnique<ClipExpander>(layer->effect_tree_index());
447 } else {
448 node.clip_type = ClipNode::ClipType::NONE; 435 node.clip_type = ClipNode::ClipType::NONE;
449 }
450 node.resets_clip = has_unclipped_surface; 436 node.resets_clip = has_unclipped_surface;
451 node.target_is_clipped = data_for_children->target_is_clipped; 437 node.target_is_clipped = data_for_children->target_is_clipped;
452 node.layers_are_clipped = layers_are_clipped; 438 node.layers_are_clipped = layers_are_clipped;
453 node.layers_are_clipped_when_surfaces_disabled = 439 node.layers_are_clipped_when_surfaces_disabled =
454 layers_are_clipped_when_surfaces_disabled; 440 layers_are_clipped_when_surfaces_disabled;
455 441
456 data_for_children->clip_tree_parent = 442 data_for_children->clip_tree_parent =
457 data_for_children->property_trees->clip_tree.Insert(node, parent_id); 443 data_for_children->property_trees->clip_tree.Insert(node, parent_id);
458 data_for_children->property_trees->clip_id_to_index_map[layer->id()] = 444 data_for_children->property_trees->clip_id_to_index_map[layer->id()] =
459 data_for_children->clip_tree_parent; 445 data_for_children->clip_tree_parent;
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 } 803 }
818 804
819 static inline SkXfermode::Mode BlendMode(Layer* layer) { 805 static inline SkXfermode::Mode BlendMode(Layer* layer) {
820 return layer->blend_mode(); 806 return layer->blend_mode();
821 } 807 }
822 808
823 static inline SkXfermode::Mode BlendMode(LayerImpl* layer) { 809 static inline SkXfermode::Mode BlendMode(LayerImpl* layer) {
824 return layer->test_properties()->blend_mode; 810 return layer->test_properties()->blend_mode;
825 } 811 }
826 812
813 static inline const FilterOperations& Filters(Layer* layer) {
814 return layer->filters();
815 }
816
827 static inline const gfx::PointF FiltersOrigin(Layer* layer) { 817 static inline const gfx::PointF FiltersOrigin(Layer* layer) {
828 return layer->filters_origin(); 818 return layer->filters_origin();
829 } 819 }
830 820
831 static inline const gfx::PointF FiltersOrigin(LayerImpl* layer) { 821 static inline const gfx::PointF FiltersOrigin(LayerImpl* layer) {
832 return layer->test_properties()->filters_origin; 822 return layer->test_properties()->filters_origin;
833 } 823 }
834 824
825 static inline const FilterOperations& Filters(LayerImpl* layer) {
826 return layer->test_properties()->filters;
827 }
828
835 static inline const FilterOperations& BackgroundFilters(Layer* layer) { 829 static inline const FilterOperations& BackgroundFilters(Layer* layer) {
836 return layer->background_filters(); 830 return layer->background_filters();
837 } 831 }
838 832
839 static inline const FilterOperations& BackgroundFilters(LayerImpl* layer) { 833 static inline const FilterOperations& BackgroundFilters(LayerImpl* layer) {
840 return layer->test_properties()->background_filters; 834 return layer->test_properties()->background_filters;
841 } 835 }
842 836
843 static inline bool HideLayerAndSubtree(Layer* layer) { 837 static inline bool HideLayerAndSubtree(Layer* layer) {
844 return layer->hide_layer_and_subtree(); 838 return layer->hide_layer_and_subtree();
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after
1497 color = SkColorSetA(color, 255); 1491 color = SkColorSetA(color, 255);
1498 BuildPropertyTreesTopLevelInternal( 1492 BuildPropertyTreesTopLevelInternal(
1499 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1493 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1500 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1494 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1501 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1495 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1502 device_transform, property_trees, color); 1496 device_transform, property_trees, color);
1503 property_trees->ResetCachedData(); 1497 property_trees->ResetCachedData();
1504 } 1498 }
1505 1499
1506 } // namespace cc 1500 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_common_unittest.cc ('k') | cc/trees/property_tree_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698