Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index 94b8bfa1cfac7e9daaa5cef94a4e41954d7a8880..38683c29bbe1c0408ce30ebe86e4300a20cbbbc0 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -1345,9 +1345,13 @@ void LayerTreeHostImpl::SetExternalDrawConstraints( |
const gfx::Transform& transform, |
const gfx::Rect& viewport, |
const gfx::Rect& clip, |
+ const gfx::Rect& external_tiling_rect, |
+ const gfx::Transform& external_tiling_transform, |
bool resourceless_software_draw) { |
if (external_transform_ != transform || external_viewport_ != viewport || |
- resourceless_software_draw_ != resourceless_software_draw) { |
+ resourceless_software_draw_ != resourceless_software_draw || |
+ external_tiling_rect_ != external_tiling_rect || |
+ external_tiling_transform_ != external_tiling_transform) { |
active_tree_->set_needs_update_draw_properties(); |
} |
@@ -1355,6 +1359,11 @@ void LayerTreeHostImpl::SetExternalDrawConstraints( |
external_viewport_ = viewport; |
external_clip_ = clip; |
resourceless_software_draw_ = resourceless_software_draw; |
+ |
+ if (!resourceless_software_draw_) { |
+ external_tiling_rect_ = external_tiling_rect; |
+ external_tiling_transform_ = external_tiling_transform; |
+ } |
} |
void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) { |
@@ -2166,6 +2175,17 @@ gfx::Size LayerTreeHostImpl::DrawViewportSize() const { |
return DeviceViewport().size(); |
} |
+gfx::Rect LayerTreeHostImpl::ExternalTilingRect() const { |
+ if (external_tiling_rect_.IsEmpty()) |
+ return gfx::Rect(DrawViewportSize()); |
+ |
+ return external_tiling_rect_; |
+} |
+ |
+const gfx::Transform& LayerTreeHostImpl::ExternalTilingTransform() const { |
+ return external_tiling_transform_; |
+} |
+ |
gfx::Rect LayerTreeHostImpl::DeviceViewport() const { |
if (external_viewport_.IsEmpty()) |
return gfx::Rect(device_viewport_size_); |