Chromium Code Reviews| 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..3e3593b648008f310d14914c9e534c5a2971944a 100644 |
| --- a/cc/trees/layer_tree_host_impl.cc |
| +++ b/cc/trees/layer_tree_host_impl.cc |
| @@ -66,6 +66,7 @@ |
| #include "cc/trees/tree_synchronizer.h" |
| #include "gpu/GLES2/gl2extchromium.h" |
| #include "ui/gfx/frame_time.h" |
| +#include "ui/gfx/geometry/rect_conversions.h" |
| #include "ui/gfx/size_conversions.h" |
| #include "ui/gfx/vector2d_conversions.h" |
| @@ -1345,15 +1346,29 @@ 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, |
|
enne (OOO)
2014/07/25 18:44:30
Does cc even need to know about external_tiling_tr
|
| bool resourceless_software_draw) { |
| + gfx::Rect viewport_rect_for_tile_priority; |
| + if (!resourceless_software_draw_) { |
| + gfx::Transform screen_to_view(gfx::Transform::kSkipInitialization); |
| + if (external_tiling_transform.GetInverse(&screen_to_view)) { |
| + // Convert from screen space to view space. |
| + viewport_rect_for_tile_priority = gfx::ToEnclosingRect( |
| + MathUtil::ProjectClippedRect(screen_to_view, external_tiling_rect)); |
| + } |
| + } |
| + |
| if (external_transform_ != transform || external_viewport_ != viewport || |
| - resourceless_software_draw_ != resourceless_software_draw) { |
| + resourceless_software_draw_ != resourceless_software_draw || |
| + viewport_rect_for_tile_priority_ != viewport_rect_for_tile_priority) { |
| active_tree_->set_needs_update_draw_properties(); |
| } |
| external_transform_ = transform; |
| external_viewport_ = viewport; |
| external_clip_ = clip; |
| + viewport_rect_for_tile_priority_ = viewport_rect_for_tile_priority; |
| resourceless_software_draw_ = resourceless_software_draw; |
| } |
| @@ -2162,6 +2177,10 @@ void LayerTreeHostImpl::SetDeviceScaleFactor(float device_scale_factor) { |
| SetFullRootLayerDamage(); |
| } |
| +const gfx::Rect LayerTreeHostImpl::ViewportRectForTilePriority() const { |
| + return viewport_rect_for_tile_priority_; |
| +} |
| + |
| gfx::Size LayerTreeHostImpl::DrawViewportSize() const { |
| return DeviceViewport().size(); |
| } |