| OLD | NEW |
| 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_host_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
| 10 #include "cc/base/math_util.h" | 10 #include "cc/base/math_util.h" |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 // the following steps need to be done: | 399 // the following steps need to be done: |
| 400 // Step 1a. transform from target surface space to the container's target | 400 // Step 1a. transform from target surface space to the container's target |
| 401 // surface space | 401 // surface space |
| 402 // Step 1b. transform from container's target surface space to the | 402 // Step 1b. transform from container's target surface space to the |
| 403 // container's layer space | 403 // container's layer space |
| 404 // Step 2. apply the compensation | 404 // Step 2. apply the compensation |
| 405 // Step 3. transform back to target surface space | 405 // Step 3. transform back to target surface space |
| 406 | 406 |
| 407 gfx::Transform target_surface_space_to_container_layer_space; | 407 gfx::Transform target_surface_space_to_container_layer_space; |
| 408 // Calculate step 1a | 408 // Calculate step 1a |
| 409 LayerImpl* container_target_surface = | 409 LayerImpl* container_target_surface = container->render_target(); |
| 410 container ? container->render_target() : 0; | |
| 411 for (LayerImpl* current_target_surface = NextTargetSurface(layer); | 410 for (LayerImpl* current_target_surface = NextTargetSurface(layer); |
| 412 current_target_surface && | 411 current_target_surface && |
| 413 current_target_surface != container_target_surface; | 412 current_target_surface != container_target_surface; |
| 414 current_target_surface = NextTargetSurface(current_target_surface)) { | 413 current_target_surface = NextTargetSurface(current_target_surface)) { |
| 415 // Note: Concat is used here to convert the result coordinate space from | 414 // Note: Concat is used here to convert the result coordinate space from |
| 416 // current render surface to the next render surface. | 415 // current render surface to the next render surface. |
| 417 target_surface_space_to_container_layer_space.ConcatTransform( | 416 target_surface_space_to_container_layer_space.ConcatTransform( |
| 418 current_target_surface->render_surface()->draw_transform()); | 417 current_target_surface->render_surface()->draw_transform()); |
| 419 } | 418 } |
| 420 // Calculate step 1b | 419 // Calculate step 1b |
| 421 if (container) { | 420 gfx::Transform container_layer_space_to_container_target_surface_space = |
| 422 gfx::Transform container_layer_space_to_container_target_surface_space = | 421 container->draw_transform(); |
| 423 container->draw_transform(); | 422 container_layer_space_to_container_target_surface_space.Scale( |
| 424 container_layer_space_to_container_target_surface_space.Scale( | 423 container->contents_scale_x(), container->contents_scale_y()); |
| 425 container->contents_scale_x(), container->contents_scale_y()); | |
| 426 | 424 |
| 427 gfx::Transform container_target_surface_space_to_container_layer_space; | 425 gfx::Transform container_target_surface_space_to_container_layer_space; |
| 428 if (container_layer_space_to_container_target_surface_space.GetInverse( | 426 if (container_layer_space_to_container_target_surface_space.GetInverse( |
| 429 &container_target_surface_space_to_container_layer_space)) { | 427 &container_target_surface_space_to_container_layer_space)) { |
| 430 // Note: Again, Concat is used to conver the result coordinate space from | 428 // Note: Again, Concat is used to conver the result coordinate space from |
| 431 // the container render surface to the container layer. | 429 // the container render surface to the container layer. |
| 432 target_surface_space_to_container_layer_space.ConcatTransform( | 430 target_surface_space_to_container_layer_space.ConcatTransform( |
| 433 container_target_surface_space_to_container_layer_space); | 431 container_target_surface_space_to_container_layer_space); |
| 434 } | |
| 435 } | 432 } |
| 436 | 433 |
| 437 // Apply step 3 | 434 // Apply step 3 |
| 438 gfx::Transform container_layer_space_to_target_surface_space; | 435 gfx::Transform container_layer_space_to_target_surface_space; |
| 439 if (target_surface_space_to_container_layer_space.GetInverse( | 436 if (target_surface_space_to_container_layer_space.GetInverse( |
| 440 &container_layer_space_to_target_surface_space)) { | 437 &container_layer_space_to_target_surface_space)) { |
| 441 result_transform.PreconcatTransform( | 438 result_transform.PreconcatTransform( |
| 442 container_layer_space_to_target_surface_space); | 439 container_layer_space_to_target_surface_space); |
| 443 } else { | 440 } else { |
| 444 // FIXME: A non-invertible matrix could still make meaningful projection. | 441 // FIXME: A non-invertible matrix could still make meaningful projection. |
| (...skipping 30 matching lines...) Expand all Loading... |
| 475 // Note carefully: this is Concat, not Preconcat | 472 // Note carefully: this is Concat, not Preconcat |
| 476 // (current_scroll_compensation * combined_transform). | 473 // (current_scroll_compensation * combined_transform). |
| 477 combined_transform->ConcatTransform(scroll_compensation); | 474 combined_transform->ConcatTransform(scroll_compensation); |
| 478 | 475 |
| 479 // For right-edge or bottom-edge anchored fixed position layers, | 476 // For right-edge or bottom-edge anchored fixed position layers, |
| 480 // the layer should relocate itself if the container changes its size. | 477 // the layer should relocate itself if the container changes its size. |
| 481 bool fixed_to_right_edge = | 478 bool fixed_to_right_edge = |
| 482 layer->position_constraint().is_fixed_to_right_edge(); | 479 layer->position_constraint().is_fixed_to_right_edge(); |
| 483 bool fixed_to_bottom_edge = | 480 bool fixed_to_bottom_edge = |
| 484 layer->position_constraint().is_fixed_to_bottom_edge(); | 481 layer->position_constraint().is_fixed_to_bottom_edge(); |
| 485 gfx::Vector2dF position_offset = | 482 gfx::Vector2dF position_offset = container->fixed_container_size_delta(); |
| 486 container ? container->fixed_container_size_delta() : gfx::Vector2dF(); | |
| 487 position_offset.set_x(fixed_to_right_edge ? position_offset.x() : 0); | 483 position_offset.set_x(fixed_to_right_edge ? position_offset.x() : 0); |
| 488 position_offset.set_y(fixed_to_bottom_edge ? position_offset.y() : 0); | 484 position_offset.set_y(fixed_to_bottom_edge ? position_offset.y() : 0); |
| 489 if (position_offset.IsZero()) | 485 if (position_offset.IsZero()) |
| 490 return; | 486 return; |
| 491 | 487 |
| 492 // Note: Again, this is Concat. The compensation matrix will be applied on | 488 // Note: Again, this is Concat. The compensation matrix will be applied on |
| 493 // the vector in target surface space. | 489 // the vector in target surface space. |
| 494 combined_transform->ConcatTransform( | 490 combined_transform->ConcatTransform( |
| 495 ComputeSizeDeltaCompensation(layer, container, position_offset)); | 491 ComputeSizeDeltaCompensation(layer, container, position_offset)); |
| 496 } | 492 } |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1108 if (!layer->double_sided() && TransformToParentIsKnown(layer) && | 1104 if (!layer->double_sided() && TransformToParentIsKnown(layer) && |
| 1109 IsSurfaceBackFaceVisible(layer, combined_transform)) | 1105 IsSurfaceBackFaceVisible(layer, combined_transform)) |
| 1110 return; | 1106 return; |
| 1111 | 1107 |
| 1112 if (!layer->render_surface()) | 1108 if (!layer->render_surface()) |
| 1113 layer->CreateRenderSurface(); | 1109 layer->CreateRenderSurface(); |
| 1114 | 1110 |
| 1115 RenderSurfaceType* render_surface = layer->render_surface(); | 1111 RenderSurfaceType* render_surface = layer->render_surface(); |
| 1116 render_surface->ClearLayerLists(); | 1112 render_surface->ClearLayerLists(); |
| 1117 | 1113 |
| 1118 // The owning layer's draw transform has a scale from content to layer | 1114 if (IsRootLayer(layer)) { |
| 1119 // space which we do not want; so here we use the combined_transform | 1115 // The root layer's render surface size is predetermined and so the root |
| 1120 // instead of the draw_transform. However, we do need to add a different | 1116 // layer can't directly support non-identity transforms. It should just |
| 1121 // scale factor that accounts for the surface's pixel dimensions. | 1117 // forward top-level transforms to the rest of the tree. |
| 1122 combined_transform.Scale(1.0 / render_surface_sublayer_scale.x(), | 1118 sublayer_matrix = combined_transform; |
| 1123 1.0 / render_surface_sublayer_scale.y()); | 1119 } else { |
| 1124 render_surface->SetDrawTransform(combined_transform); | 1120 // The owning layer's draw transform has a scale from content to layer |
| 1121 // space which we do not want; so here we use the combined_transform |
| 1122 // instead of the draw_transform. However, we do need to add a different |
| 1123 // scale factor that accounts for the surface's pixel dimensions. |
| 1124 combined_transform.Scale(1.0 / render_surface_sublayer_scale.x(), |
| 1125 1.0 / render_surface_sublayer_scale.y()); |
| 1126 render_surface->SetDrawTransform(combined_transform); |
| 1125 | 1127 |
| 1126 // If this is the root layer, there should be no scale in the surface's draw | 1128 // The owning layer's transform was re-parented by the surface, so the |
| 1127 // transform. | 1129 // layer's new draw_transform only needs to scale the layer to surface |
| 1128 if (IsRootLayer(layer)) { | 1130 // space. |
| 1129 DCHECK_EQ(render_surface_sublayer_scale.x(), | 1131 layer_draw_properties.target_space_transform.MakeIdentity(); |
| 1130 combined_transform_scales.x()); | 1132 layer_draw_properties.target_space_transform. |
| 1131 DCHECK_EQ(render_surface_sublayer_scale.y(), | 1133 Scale(render_surface_sublayer_scale.x() / layer->contents_scale_x(), |
| 1132 combined_transform_scales.y()); | 1134 render_surface_sublayer_scale.y() / layer->contents_scale_y()); |
| 1135 |
| 1136 // Inside the surface's subtree, we scale everything to the owning layer's |
| 1137 // scale. The sublayer matrix transforms layer rects into target surface |
| 1138 // content space. Conceptually, all layers in the subtree inherit the |
| 1139 // scale at the point of the render surface in the transform hierarchy, |
| 1140 // but we apply it explicitly to the owning layer and the remainder of the |
| 1141 // subtree independently. |
| 1142 DCHECK(sublayer_matrix.IsIdentity()); |
| 1143 sublayer_matrix.Scale(render_surface_sublayer_scale.x(), |
| 1144 render_surface_sublayer_scale.y()); |
| 1133 } | 1145 } |
| 1134 | 1146 |
| 1135 // The owning layer's transform was re-parented by the surface, so the | |
| 1136 // layer's new draw_transform only needs to scale the layer to surface | |
| 1137 // space. | |
| 1138 layer_draw_properties.target_space_transform.MakeIdentity(); | |
| 1139 layer_draw_properties.target_space_transform. | |
| 1140 Scale(render_surface_sublayer_scale.x() / layer->contents_scale_x(), | |
| 1141 render_surface_sublayer_scale.y() / layer->contents_scale_y()); | |
| 1142 | |
| 1143 // Inside the surface's subtree, we scale everything to the owning layer's | |
| 1144 // scale. The sublayer matrix transforms layer rects into target surface | |
| 1145 // content space. Conceptually, all layers in the subtree inherit the scale | |
| 1146 // at the point of the render surface in the transform hierarchy, but we | |
| 1147 // apply it explicitly to the owning layer and the remainder of the subtree | |
| 1148 // indenpendently. | |
| 1149 DCHECK(sublayer_matrix.IsIdentity()); | |
| 1150 sublayer_matrix.Scale(render_surface_sublayer_scale.x(), | |
| 1151 render_surface_sublayer_scale.y()); | |
| 1152 | |
| 1153 // The opacity value is moved from the layer to its surface, so that the | 1147 // The opacity value is moved from the layer to its surface, so that the |
| 1154 // entire subtree properly inherits opacity. | 1148 // entire subtree properly inherits opacity. |
| 1155 render_surface->SetDrawOpacity(accumulated_draw_opacity); | 1149 render_surface->SetDrawOpacity(accumulated_draw_opacity); |
| 1156 render_surface->SetDrawOpacityIsAnimating(animating_opacity_to_target); | 1150 render_surface->SetDrawOpacityIsAnimating(animating_opacity_to_target); |
| 1157 animating_opacity_to_target = false; | 1151 animating_opacity_to_target = false; |
| 1158 layer_draw_properties.opacity = 1.f; | 1152 layer_draw_properties.opacity = 1.f; |
| 1159 layer_draw_properties.opacity_is_animating = animating_opacity_to_target; | 1153 layer_draw_properties.opacity_is_animating = animating_opacity_to_target; |
| 1160 layer_draw_properties.screen_space_opacity_is_animating = | 1154 layer_draw_properties.screen_space_opacity_is_animating = |
| 1161 animating_opacity_to_screen; | 1155 animating_opacity_to_screen; |
| 1162 | 1156 |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1330 current_scroll_compensation_matrix); | 1324 current_scroll_compensation_matrix); |
| 1331 LayerType* next_fixed_container = | 1325 LayerType* next_fixed_container = |
| 1332 layer->IsContainerForFixedPositionLayers() ? | 1326 layer->IsContainerForFixedPositionLayers() ? |
| 1333 layer : current_fixed_container; | 1327 layer : current_fixed_container; |
| 1334 | 1328 |
| 1335 gfx::Rect accumulated_drawable_content_rect_of_children; | 1329 gfx::Rect accumulated_drawable_content_rect_of_children; |
| 1336 for (size_t i = 0; i < layer->children().size(); ++i) { | 1330 for (size_t i = 0; i < layer->children().size(); ++i) { |
| 1337 LayerType* child = | 1331 LayerType* child = |
| 1338 LayerTreeHostCommon::get_child_as_raw_ptr(layer->children(), i); | 1332 LayerTreeHostCommon::get_child_as_raw_ptr(layer->children(), i); |
| 1339 gfx::Rect drawable_content_rect_of_child_subtree; | 1333 gfx::Rect drawable_content_rect_of_child_subtree; |
| 1334 gfx::Transform identity_matrix; |
| 1340 CalculateDrawPropertiesInternal<LayerType, LayerList, RenderSurfaceType>( | 1335 CalculateDrawPropertiesInternal<LayerType, LayerList, RenderSurfaceType>( |
| 1341 child, | 1336 child, |
| 1342 sublayer_matrix, | 1337 sublayer_matrix, |
| 1343 next_hierarchy_matrix, | 1338 next_hierarchy_matrix, |
| 1344 next_scroll_compensation_matrix, | 1339 next_scroll_compensation_matrix, |
| 1345 next_fixed_container, | 1340 next_fixed_container, |
| 1346 clip_rect_for_subtree, | 1341 clip_rect_for_subtree, |
| 1347 clip_rect_for_subtree_in_descendant_space, | 1342 clip_rect_for_subtree_in_descendant_space, |
| 1348 subtree_should_be_clipped, | 1343 subtree_should_be_clipped, |
| 1349 nearest_ancestor_that_moves_pixels, | 1344 nearest_ancestor_that_moves_pixels, |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1519 layer->render_target()->render_surface()-> | 1514 layer->render_target()->render_surface()-> |
| 1520 AddContributingDelegatedRenderPassLayer(layer); | 1515 AddContributingDelegatedRenderPassLayer(layer); |
| 1521 } | 1516 } |
| 1522 | 1517 |
| 1523 SavePaintPropertiesLayer(layer); | 1518 SavePaintPropertiesLayer(layer); |
| 1524 } | 1519 } |
| 1525 | 1520 |
| 1526 void LayerTreeHostCommon::CalculateDrawProperties( | 1521 void LayerTreeHostCommon::CalculateDrawProperties( |
| 1527 Layer* root_layer, | 1522 Layer* root_layer, |
| 1528 gfx::Size device_viewport_size, | 1523 gfx::Size device_viewport_size, |
| 1524 const gfx::Transform& device_transform, |
| 1529 float device_scale_factor, | 1525 float device_scale_factor, |
| 1530 float page_scale_factor, | 1526 float page_scale_factor, |
| 1531 Layer* page_scale_application_layer, | 1527 Layer* page_scale_application_layer, |
| 1532 int max_texture_size, | 1528 int max_texture_size, |
| 1533 bool can_use_lcd_text, | 1529 bool can_use_lcd_text, |
| 1534 bool can_adjust_raster_scales, | 1530 bool can_adjust_raster_scales, |
| 1535 LayerList* render_surface_layer_list) { | 1531 LayerList* render_surface_layer_list) { |
| 1536 gfx::Rect total_drawable_content_rect; | 1532 gfx::Rect total_drawable_content_rect; |
| 1537 gfx::Transform identity_matrix; | 1533 gfx::Transform identity_matrix; |
| 1538 gfx::Transform device_scale_transform; | 1534 gfx::Transform scaled_device_transform = device_transform; |
| 1539 device_scale_transform.Scale(device_scale_factor, device_scale_factor); | 1535 scaled_device_transform.Scale(device_scale_factor, device_scale_factor); |
| 1540 LayerList dummy_layer_list; | 1536 LayerList dummy_layer_list; |
| 1541 | 1537 |
| 1542 // The root layer's render_surface should receive the device viewport as the | 1538 // The root layer's render_surface should receive the device viewport as the |
| 1543 // initial clip rect. | 1539 // initial clip rect. |
| 1544 bool subtree_should_be_clipped = true; | 1540 bool subtree_should_be_clipped = true; |
| 1545 gfx::Rect device_viewport_rect(device_viewport_size); | 1541 gfx::Rect device_viewport_rect(device_viewport_size); |
| 1546 bool in_subtree_of_page_scale_application_layer = false; | 1542 bool in_subtree_of_page_scale_application_layer = false; |
| 1547 | 1543 |
| 1548 // This function should have received a root layer. | 1544 // This function should have received a root layer. |
| 1549 DCHECK(IsRootLayer(root_layer)); | 1545 DCHECK(IsRootLayer(root_layer)); |
| 1550 | 1546 |
| 1551 PreCalculateMetaInformation<Layer>(root_layer); | 1547 PreCalculateMetaInformation<Layer>(root_layer); |
| 1552 CalculateDrawPropertiesInternal<Layer, LayerList, RenderSurface>( | 1548 CalculateDrawPropertiesInternal<Layer, LayerList, RenderSurface>( |
| 1553 root_layer, | 1549 root_layer, |
| 1554 device_scale_transform, | 1550 scaled_device_transform, |
| 1555 identity_matrix, | 1551 identity_matrix, |
| 1556 identity_matrix, | 1552 identity_matrix, |
| 1557 NULL, | 1553 root_layer, |
| 1558 device_viewport_rect, | 1554 device_viewport_rect, |
| 1559 device_viewport_rect, | 1555 device_viewport_rect, |
| 1560 subtree_should_be_clipped, | 1556 subtree_should_be_clipped, |
| 1561 NULL, | 1557 NULL, |
| 1562 render_surface_layer_list, | 1558 render_surface_layer_list, |
| 1563 &dummy_layer_list, | 1559 &dummy_layer_list, |
| 1564 NULL, | 1560 NULL, |
| 1565 max_texture_size, | 1561 max_texture_size, |
| 1566 device_scale_factor, | 1562 device_scale_factor, |
| 1567 page_scale_factor, | 1563 page_scale_factor, |
| 1568 page_scale_application_layer, | 1564 page_scale_application_layer, |
| 1569 in_subtree_of_page_scale_application_layer, | 1565 in_subtree_of_page_scale_application_layer, |
| 1570 can_use_lcd_text, | 1566 can_use_lcd_text, |
| 1571 can_adjust_raster_scales, | 1567 can_adjust_raster_scales, |
| 1572 &total_drawable_content_rect); | 1568 &total_drawable_content_rect); |
| 1573 | 1569 |
| 1574 // The dummy layer list should not have been used. | 1570 // The dummy layer list should not have been used. |
| 1575 DCHECK_EQ(0u, dummy_layer_list.size()); | 1571 DCHECK_EQ(0u, dummy_layer_list.size()); |
| 1576 // A root layer render_surface should always exist after | 1572 // A root layer render_surface should always exist after |
| 1577 // CalculateDrawProperties. | 1573 // CalculateDrawProperties. |
| 1578 DCHECK(root_layer->render_surface()); | 1574 DCHECK(root_layer->render_surface()); |
| 1579 } | 1575 } |
| 1580 | 1576 |
| 1581 void LayerTreeHostCommon::CalculateDrawProperties( | 1577 void LayerTreeHostCommon::CalculateDrawProperties( |
| 1582 LayerImpl* root_layer, | 1578 LayerImpl* root_layer, |
| 1583 gfx::Size device_viewport_size, | 1579 gfx::Size device_viewport_size, |
| 1580 const gfx::Transform& device_transform, |
| 1584 float device_scale_factor, | 1581 float device_scale_factor, |
| 1585 float page_scale_factor, | 1582 float page_scale_factor, |
| 1586 LayerImpl* page_scale_application_layer, | 1583 LayerImpl* page_scale_application_layer, |
| 1587 int max_texture_size, | 1584 int max_texture_size, |
| 1588 bool can_use_lcd_text, | 1585 bool can_use_lcd_text, |
| 1589 bool can_adjust_raster_scales, | 1586 bool can_adjust_raster_scales, |
| 1590 LayerImplList* render_surface_layer_list) { | 1587 LayerImplList* render_surface_layer_list) { |
| 1591 gfx::Rect total_drawable_content_rect; | 1588 gfx::Rect total_drawable_content_rect; |
| 1592 gfx::Transform identity_matrix; | 1589 gfx::Transform identity_matrix; |
| 1593 gfx::Transform device_scale_transform; | 1590 gfx::Transform scaled_device_transform = device_transform; |
| 1594 device_scale_transform.Scale(device_scale_factor, device_scale_factor); | 1591 scaled_device_transform.Scale(device_scale_factor, device_scale_factor); |
| 1595 LayerImplList dummy_layer_list; | 1592 LayerImplList dummy_layer_list; |
| 1596 LayerSorter layer_sorter; | 1593 LayerSorter layer_sorter; |
| 1597 | 1594 |
| 1598 // The root layer's render_surface should receive the device viewport as the | 1595 // The root layer's render_surface should receive the device viewport as the |
| 1599 // initial clip rect. | 1596 // initial clip rect. |
| 1600 bool subtree_should_be_clipped = true; | 1597 bool subtree_should_be_clipped = true; |
| 1601 gfx::Rect device_viewport_rect(device_viewport_size); | 1598 gfx::Rect device_viewport_rect(device_viewport_size); |
| 1602 bool in_subtree_of_page_scale_application_layer = false; | 1599 bool in_subtree_of_page_scale_application_layer = false; |
| 1603 | 1600 |
| 1604 // This function should have received a root layer. | 1601 // This function should have received a root layer. |
| 1605 DCHECK(IsRootLayer(root_layer)); | 1602 DCHECK(IsRootLayer(root_layer)); |
| 1606 | 1603 |
| 1607 PreCalculateMetaInformation<LayerImpl>(root_layer); | 1604 PreCalculateMetaInformation<LayerImpl>(root_layer); |
| 1608 CalculateDrawPropertiesInternal<LayerImpl, | 1605 CalculateDrawPropertiesInternal<LayerImpl, |
| 1609 LayerImplList, | 1606 LayerImplList, |
| 1610 RenderSurfaceImpl>( | 1607 RenderSurfaceImpl>( |
| 1611 root_layer, | 1608 root_layer, |
| 1612 device_scale_transform, | 1609 scaled_device_transform, |
| 1613 identity_matrix, | 1610 identity_matrix, |
| 1614 identity_matrix, | 1611 identity_matrix, |
| 1615 NULL, | 1612 root_layer, |
| 1616 device_viewport_rect, | 1613 device_viewport_rect, |
| 1617 device_viewport_rect, | 1614 device_viewport_rect, |
| 1618 subtree_should_be_clipped, | 1615 subtree_should_be_clipped, |
| 1619 NULL, | 1616 NULL, |
| 1620 render_surface_layer_list, | 1617 render_surface_layer_list, |
| 1621 &dummy_layer_list, | 1618 &dummy_layer_list, |
| 1622 &layer_sorter, | 1619 &layer_sorter, |
| 1623 max_texture_size, | 1620 max_texture_size, |
| 1624 device_scale_factor, | 1621 device_scale_factor, |
| 1625 page_scale_factor, | 1622 page_scale_factor, |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1821 // At this point, we think the point does hit the touch event handler region | 1818 // At this point, we think the point does hit the touch event handler region |
| 1822 // on the layer, but we need to walk up the parents to ensure that the layer | 1819 // on the layer, but we need to walk up the parents to ensure that the layer |
| 1823 // was not clipped in such a way that the hit point actually should not hit | 1820 // was not clipped in such a way that the hit point actually should not hit |
| 1824 // the layer. | 1821 // the layer. |
| 1825 if (PointIsClippedBySurfaceOrClipRect(screen_space_point, layer_impl)) | 1822 if (PointIsClippedBySurfaceOrClipRect(screen_space_point, layer_impl)) |
| 1826 return false; | 1823 return false; |
| 1827 | 1824 |
| 1828 return true; | 1825 return true; |
| 1829 } | 1826 } |
| 1830 } // namespace cc | 1827 } // namespace cc |
| OLD | NEW |