| Index: cc/trees/layer_tree_host_common.cc
|
| diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc
|
| index 064e91e30c4a985311aaa1aa8e7354ad0196bf13..aa115f722648acc87a848bae40f36ff35eee9116 100644
|
| --- a/cc/trees/layer_tree_host_common.cc
|
| +++ b/cc/trees/layer_tree_host_common.cc
|
| @@ -681,9 +681,10 @@ static bool SubtreeShouldRenderToSeparateSurface(
|
| // This function returns a translation matrix that can be applied on a vector
|
| // that's in the layer's target surface coordinate, while the position offset is
|
| // specified in some ancestor layer's coordinate.
|
| +template <typename LayerType>
|
| gfx::Transform ComputeSizeDeltaCompensation(
|
| - LayerImpl* layer,
|
| - LayerImpl* container,
|
| + LayerType* layer,
|
| + LayerType* container,
|
| const gfx::Vector2dF& position_offset) {
|
| gfx::Transform result_transform;
|
|
|
| @@ -698,8 +699,8 @@ gfx::Transform ComputeSizeDeltaCompensation(
|
|
|
| gfx::Transform target_surface_space_to_container_layer_space;
|
| // Calculate step 1a
|
| - LayerImpl* container_target_surface = container->render_target();
|
| - for (LayerImpl* current_target_surface = NextTargetSurface(layer);
|
| + LayerType* container_target_surface = container->render_target();
|
| + for (LayerType* current_target_surface = NextTargetSurface(layer);
|
| current_target_surface &&
|
| current_target_surface != container_target_surface;
|
| current_target_surface = NextTargetSurface(current_target_surface)) {
|
| @@ -746,14 +747,10 @@ gfx::Transform ComputeSizeDeltaCompensation(
|
| return result_transform;
|
| }
|
|
|
| +template <typename LayerType>
|
| void ApplyPositionAdjustment(
|
| - Layer* layer,
|
| - Layer* container,
|
| - const gfx::Transform& scroll_compensation,
|
| - gfx::Transform* combined_transform) {}
|
| -void ApplyPositionAdjustment(
|
| - LayerImpl* layer,
|
| - LayerImpl* container,
|
| + LayerType* layer,
|
| + LayerType* container,
|
| const gfx::Transform& scroll_compensation,
|
| gfx::Transform* combined_transform) {
|
| if (!layer->position_constraint().is_fixed_position())
|
| @@ -784,8 +781,9 @@ void ApplyPositionAdjustment(
|
| ComputeSizeDeltaCompensation(layer, container, position_offset));
|
| }
|
|
|
| +template <typename LayerType>
|
| gfx::Transform ComputeScrollCompensationForThisLayer(
|
| - LayerImpl* scrolling_layer,
|
| + LayerType* scrolling_layer,
|
| const gfx::Transform& parent_matrix,
|
| const gfx::Vector2dF& scroll_delta) {
|
| // For every layer that has non-zero scroll_delta, we have to compute a
|
| @@ -823,18 +821,9 @@ gfx::Transform ComputeScrollCompensationForThisLayer(
|
| return scroll_compensation_for_this_layer;
|
| }
|
|
|
| +template <typename LayerType>
|
| gfx::Transform ComputeScrollCompensationMatrixForChildren(
|
| - Layer* current_layer,
|
| - const gfx::Transform& current_parent_matrix,
|
| - const gfx::Transform& current_scroll_compensation,
|
| - const gfx::Vector2dF& scroll_delta) {
|
| - // The main thread (i.e. Layer) does not need to worry about scroll
|
| - // compensation. So we can just return an identity matrix here.
|
| - return gfx::Transform();
|
| -}
|
| -
|
| -gfx::Transform ComputeScrollCompensationMatrixForChildren(
|
| - LayerImpl* layer,
|
| + LayerType* layer,
|
| const gfx::Transform& parent_matrix,
|
| const gfx::Transform& current_scroll_compensation_matrix,
|
| const gfx::Vector2dF& scroll_delta) {
|
|
|