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

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

Issue 2858053003: Delete code in PointIsClippedByAncestorClipNode which checked render surface clip. (Closed)
Patch Set: Created 3 years, 7 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 | « no previous file | cc/trees/layer_tree_impl_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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/layer_tree_impl.h" 5 #include "cc/trees/layer_tree_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 1779 matching lines...) Expand 10 before | Expand all | Expand 10 after
1790 1790
1791 // If ProjectPoint could not project to a valid value, then we assume that 1791 // If ProjectPoint could not project to a valid value, then we assume that
1792 // this point doesn't hit this region. 1792 // this point doesn't hit this region.
1793 if (clipped) 1793 if (clipped)
1794 return false; 1794 return false;
1795 1795
1796 return layer_space_region.Contains( 1796 return layer_space_region.Contains(
1797 gfx::ToRoundedPoint(hit_test_point_in_layer_space)); 1797 gfx::ToRoundedPoint(hit_test_point_in_layer_space));
1798 } 1798 }
1799 1799
1800 static const gfx::Transform SurfaceScreenSpaceTransform(
1801 const LayerImpl* layer) {
1802 const PropertyTrees* property_trees =
1803 layer->layer_tree_impl()->property_trees();
1804 RenderSurfaceImpl* render_surface = layer->GetRenderSurface();
1805 DCHECK(render_surface);
1806 return layer->contributes_to_drawn_render_surface()
1807 ? render_surface->screen_space_transform()
1808 : property_trees
1809 ->ToScreenSpaceTransformWithoutSurfaceContentsScale(
1810 render_surface->TransformTreeIndex(),
1811 render_surface->EffectTreeIndex());
1812 }
1813
1814 static bool PointIsClippedByAncestorClipNode( 1800 static bool PointIsClippedByAncestorClipNode(
1815 const gfx::PointF& screen_space_point, 1801 const gfx::PointF& screen_space_point,
1816 const LayerImpl* layer) { 1802 const LayerImpl* layer) {
1817 // We need to visit all ancestor clip nodes to check this. Checking with just 1803 // We need to visit all ancestor clip nodes to check this. Checking with just
1818 // the combined clip stored at a clip node is not enough because parent 1804 // the combined clip stored at a clip node is not enough because parent
1819 // combined clip can sometimes be smaller than current combined clip. This can 1805 // combined clip can sometimes be smaller than current combined clip. This can
1820 // happen when we have transforms like rotation that inflate the combined 1806 // happen when we have transforms like rotation that inflate the combined
1821 // clip's bounds. Also, the point can be clipped by the content rect of an 1807 // clip's bounds. Also, the point can be clipped by the content rect of an
1822 // ancestor render surface. 1808 // ancestor render surface.
1823 1809
(...skipping 13 matching lines...) Expand all
1837 if (clip_node->clip_type == ClipNode::ClipType::APPLIES_LOCAL_CLIP) { 1823 if (clip_node->clip_type == ClipNode::ClipType::APPLIES_LOCAL_CLIP) {
1838 gfx::Rect clip = gfx::ToEnclosingRect(clip_node->clip); 1824 gfx::Rect clip = gfx::ToEnclosingRect(clip_node->clip);
1839 1825
1840 gfx::Transform screen_space_transform = 1826 gfx::Transform screen_space_transform =
1841 transform_tree.ToScreen(clip_node->transform_id); 1827 transform_tree.ToScreen(clip_node->transform_id);
1842 if (!PointHitsRect(screen_space_point, screen_space_transform, clip, 1828 if (!PointHitsRect(screen_space_point, screen_space_transform, clip,
1843 NULL)) { 1829 NULL)) {
1844 return true; 1830 return true;
1845 } 1831 }
1846 } 1832 }
1847 const LayerImpl* clip_node_owner =
1848 layer->layer_tree_impl()->LayerById(clip_node->owning_layer_id);
1849 RenderSurfaceImpl* render_surface = clip_node_owner->GetRenderSurface();
1850 if (render_surface &&
1851 !PointHitsRect(screen_space_point,
1852 SurfaceScreenSpaceTransform(clip_node_owner),
1853 render_surface->content_rect(), NULL)) {
1854 return true;
1855 }
1856 } 1833 }
1857 return false; 1834 return false;
1858 } 1835 }
1859 1836
1860 static bool PointIsClippedBySurfaceOrClipRect( 1837 static bool PointIsClippedBySurfaceOrClipRect(
1861 const gfx::PointF& screen_space_point, 1838 const gfx::PointF& screen_space_point,
1862 const LayerImpl* layer) { 1839 const LayerImpl* layer) {
1863 // Walk up the layer tree and hit-test any render_surfaces and any layer 1840 // Walk up the layer tree and hit-test any render_surfaces and any layer
1864 // clip rects that are active. 1841 // clip rects that are active.
1865 return PointIsClippedByAncestorClipNode(screen_space_point, layer); 1842 return PointIsClippedByAncestorClipNode(screen_space_point, layer);
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
2120 2097
2121 void LayerTreeImpl::ResetAllChangeTracking() { 2098 void LayerTreeImpl::ResetAllChangeTracking() {
2122 layers_that_should_push_properties_.clear(); 2099 layers_that_should_push_properties_.clear();
2123 // Iterate over all layers, including masks. 2100 // Iterate over all layers, including masks.
2124 for (auto& layer : *layers_) 2101 for (auto& layer : *layers_)
2125 layer->ResetChangeTracking(); 2102 layer->ResetChangeTracking();
2126 property_trees_.ResetAllChangeTracking(); 2103 property_trees_.ResetAllChangeTracking();
2127 } 2104 }
2128 2105
2129 } // namespace cc 2106 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/layer_tree_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698