Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4569)

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 2099903002: Make tile size a function of the device scale factor. Base URL: https://chromium.googlesource.com/chromium/src.git@layouttests-display
Patch Set: tilesize: . Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_);

Powered by Google App Engine
This is Rietveld 408576698