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 6d8aaa614416f7b54b4c6a1c3fb1b7ee04d38a5d..a5c066591f605c54cccb9d5c58fac159f4c0e88e 100644 |
| --- a/cc/trees/layer_tree_host_impl.cc |
| +++ b/cc/trees/layer_tree_host_impl.cc |
| @@ -89,6 +89,7 @@ |
| #include "gpu/command_buffer/client/gles2_interface.h" |
| #include "ui/gfx/geometry/point_conversions.h" |
| #include "ui/gfx/geometry/rect_conversions.h" |
| +#include "ui/gfx/geometry/safe_integer_conversions.h" |
| #include "ui/gfx/geometry/scroll_offset.h" |
| #include "ui/gfx/geometry/size_conversions.h" |
| #include "ui/gfx/geometry/vector2d_conversions.h" |
| @@ -2408,7 +2409,7 @@ void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) { |
| active_tree_->set_needs_update_draw_properties(); |
| } |
| -const gfx::Rect LayerTreeHostImpl::ViewportRectForTilePriority() const { |
| +gfx::Rect LayerTreeHostImpl::ViewportRectForTilePriority() const { |
| if (viewport_rect_for_tile_priority_.IsEmpty()) |
| return DeviceViewport(); |
| @@ -2416,9 +2417,37 @@ const gfx::Rect LayerTreeHostImpl::ViewportRectForTilePriority() const { |
| } |
| gfx::Size LayerTreeHostImpl::DrawViewportSize() const { |
| + // XXX DIE DIE DIE DIE |
|
enne (OOO)
2016/06/28 18:39:02
https://www.youtube.com/watch?v=UrHVBfSaPtA
|
| return DeviceViewport().size(); |
| } |
| +gfx::Size LayerTreeHostImpl::GetStableScreenSize( |
|
enne (OOO)
2016/06/28 18:39:01
How does this relate to gfx::DeviceDisplayInfo::Ge
|
| + const LayerTreeImpl* tree) const { |
| + // TODO(crbug.com/622885): Get a stable screen size for any platform from |
| + // the embedder. |
| + |
| + // This size does not include an external viewport size. |
| + int width = device_viewport_size_.width(); |
| + int height = device_viewport_size_.height(); |
| + if (tree->top_controls_shrink_blink_size()) |
| + height += gfx::ToCeiledInt(tree->top_controls_height() * |
| + tree->device_scale_factor()); |
| + |
| + if (external_viewport_.IsEmpty()) |
| + return gfx::Size(width, height); |
| + |
| + int external_width = external_viewport_.width(); |
| + int external_height = external_viewport_.height(); |
| + if (tree->top_controls_shrink_blink_size()) |
| + external_height += gfx::ToCeiledInt(tree->top_controls_height() * |
| + tree->device_scale_factor()); |
| + |
| + // Take the smaller of the two. An external viewport may be much larger than |
| + // what will actually be on screen, or much smaller. |
| + return gfx::Size(std::min(width, external_width), |
| + std::min(height, external_height)); |
| +} |
| + |
| gfx::Rect LayerTreeHostImpl::DeviceViewport() const { |
| if (external_viewport_.IsEmpty()) |
| return gfx::Rect(device_viewport_size_); |