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

Side by Side 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, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 #include "cc/trees/latency_info_swap_promise_monitor.h" 82 #include "cc/trees/latency_info_swap_promise_monitor.h"
83 #include "cc/trees/layer_tree_host.h" 83 #include "cc/trees/layer_tree_host.h"
84 #include "cc/trees/layer_tree_host_common.h" 84 #include "cc/trees/layer_tree_host_common.h"
85 #include "cc/trees/layer_tree_impl.h" 85 #include "cc/trees/layer_tree_impl.h"
86 #include "cc/trees/single_thread_proxy.h" 86 #include "cc/trees/single_thread_proxy.h"
87 #include "cc/trees/tree_synchronizer.h" 87 #include "cc/trees/tree_synchronizer.h"
88 #include "gpu/GLES2/gl2extchromium.h" 88 #include "gpu/GLES2/gl2extchromium.h"
89 #include "gpu/command_buffer/client/gles2_interface.h" 89 #include "gpu/command_buffer/client/gles2_interface.h"
90 #include "ui/gfx/geometry/point_conversions.h" 90 #include "ui/gfx/geometry/point_conversions.h"
91 #include "ui/gfx/geometry/rect_conversions.h" 91 #include "ui/gfx/geometry/rect_conversions.h"
92 #include "ui/gfx/geometry/safe_integer_conversions.h"
92 #include "ui/gfx/geometry/scroll_offset.h" 93 #include "ui/gfx/geometry/scroll_offset.h"
93 #include "ui/gfx/geometry/size_conversions.h" 94 #include "ui/gfx/geometry/size_conversions.h"
94 #include "ui/gfx/geometry/vector2d_conversions.h" 95 #include "ui/gfx/geometry/vector2d_conversions.h"
95 96
96 namespace cc { 97 namespace cc {
97 namespace { 98 namespace {
98 99
99 // Small helper class that saves the current viewport location as the user sees 100 // Small helper class that saves the current viewport location as the user sees
100 // it and resets to the same location. 101 // it and resets to the same location.
101 class ViewportAnchor { 102 class ViewportAnchor {
(...skipping 2299 matching lines...) Expand 10 before | Expand all | Expand 10 after
2401 active_tree_->SetViewportSizeInvalid(); 2402 active_tree_->SetViewportSizeInvalid();
2402 2403
2403 device_viewport_size_ = device_viewport_size; 2404 device_viewport_size_ = device_viewport_size;
2404 2405
2405 UpdateViewportContainerSizes(); 2406 UpdateViewportContainerSizes();
2406 client_->OnCanDrawStateChanged(CanDraw()); 2407 client_->OnCanDrawStateChanged(CanDraw());
2407 SetFullRootLayerDamage(); 2408 SetFullRootLayerDamage();
2408 active_tree_->set_needs_update_draw_properties(); 2409 active_tree_->set_needs_update_draw_properties();
2409 } 2410 }
2410 2411
2411 const gfx::Rect LayerTreeHostImpl::ViewportRectForTilePriority() const { 2412 gfx::Rect LayerTreeHostImpl::ViewportRectForTilePriority() const {
2412 if (viewport_rect_for_tile_priority_.IsEmpty()) 2413 if (viewport_rect_for_tile_priority_.IsEmpty())
2413 return DeviceViewport(); 2414 return DeviceViewport();
2414 2415
2415 return viewport_rect_for_tile_priority_; 2416 return viewport_rect_for_tile_priority_;
2416 } 2417 }
2417 2418
2418 gfx::Size LayerTreeHostImpl::DrawViewportSize() const { 2419 gfx::Size LayerTreeHostImpl::DrawViewportSize() const {
2420 // XXX DIE DIE DIE DIE
enne (OOO) 2016/06/28 18:39:02 https://www.youtube.com/watch?v=UrHVBfSaPtA
2419 return DeviceViewport().size(); 2421 return DeviceViewport().size();
2420 } 2422 }
2421 2423
2424 gfx::Size LayerTreeHostImpl::GetStableScreenSize(
enne (OOO) 2016/06/28 18:39:01 How does this relate to gfx::DeviceDisplayInfo::Ge
2425 const LayerTreeImpl* tree) const {
2426 // TODO(crbug.com/622885): Get a stable screen size for any platform from
2427 // the embedder.
2428
2429 // This size does not include an external viewport size.
2430 int width = device_viewport_size_.width();
2431 int height = device_viewport_size_.height();
2432 if (tree->top_controls_shrink_blink_size())
2433 height += gfx::ToCeiledInt(tree->top_controls_height() *
2434 tree->device_scale_factor());
2435
2436 if (external_viewport_.IsEmpty())
2437 return gfx::Size(width, height);
2438
2439 int external_width = external_viewport_.width();
2440 int external_height = external_viewport_.height();
2441 if (tree->top_controls_shrink_blink_size())
2442 external_height += gfx::ToCeiledInt(tree->top_controls_height() *
2443 tree->device_scale_factor());
2444
2445 // Take the smaller of the two. An external viewport may be much larger than
2446 // what will actually be on screen, or much smaller.
2447 return gfx::Size(std::min(width, external_width),
2448 std::min(height, external_height));
2449 }
2450
2422 gfx::Rect LayerTreeHostImpl::DeviceViewport() const { 2451 gfx::Rect LayerTreeHostImpl::DeviceViewport() const {
2423 if (external_viewport_.IsEmpty()) 2452 if (external_viewport_.IsEmpty())
2424 return gfx::Rect(device_viewport_size_); 2453 return gfx::Rect(device_viewport_size_);
2425 2454
2426 return external_viewport_; 2455 return external_viewport_;
2427 } 2456 }
2428 2457
2429 gfx::Rect LayerTreeHostImpl::DeviceClip() const { 2458 gfx::Rect LayerTreeHostImpl::DeviceClip() const {
2430 if (external_clip_.IsEmpty()) 2459 if (external_clip_.IsEmpty())
2431 return DeviceViewport(); 2460 return DeviceViewport();
(...skipping 1578 matching lines...) Expand 10 before | Expand all | Expand 10 after
4010 return task_runner_provider_->HasImplThread(); 4039 return task_runner_provider_->HasImplThread();
4011 } 4040 }
4012 4041
4013 bool LayerTreeHostImpl::CommitToActiveTree() const { 4042 bool LayerTreeHostImpl::CommitToActiveTree() const {
4014 // In single threaded mode we skip the pending tree and commit directly to the 4043 // In single threaded mode we skip the pending tree and commit directly to the
4015 // active tree. 4044 // active tree.
4016 return !task_runner_provider_->HasImplThread(); 4045 return !task_runner_provider_->HasImplThread();
4017 } 4046 }
4018 4047
4019 } // namespace cc 4048 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698