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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 2810813004: Hide fullscreen rotation jank (Closed)
Patch Set: Show a black frame during fullscreen transitions to hide jank Created 3 years, 7 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 1569 matching lines...) Expand 10 before | Expand all | Expand 10 after
1580 } 1580 }
1581 1581
1582 CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const { 1582 CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const {
1583 CompositorFrameMetadata metadata; 1583 CompositorFrameMetadata metadata;
1584 metadata.device_scale_factor = active_tree_->painted_device_scale_factor() * 1584 metadata.device_scale_factor = active_tree_->painted_device_scale_factor() *
1585 active_tree_->device_scale_factor(); 1585 active_tree_->device_scale_factor();
1586 1586
1587 metadata.page_scale_factor = active_tree_->current_page_scale_factor(); 1587 metadata.page_scale_factor = active_tree_->current_page_scale_factor();
1588 metadata.scrollable_viewport_size = active_tree_->ScrollableViewportSize(); 1588 metadata.scrollable_viewport_size = active_tree_->ScrollableViewportSize();
1589 metadata.root_layer_size = active_tree_->ScrollableSize(); 1589 metadata.root_layer_size = active_tree_->ScrollableSize();
1590 metadata.device_viewport_size = active_tree_->device_viewport_size();
1590 metadata.min_page_scale_factor = active_tree_->min_page_scale_factor(); 1591 metadata.min_page_scale_factor = active_tree_->min_page_scale_factor();
1591 metadata.max_page_scale_factor = active_tree_->max_page_scale_factor(); 1592 metadata.max_page_scale_factor = active_tree_->max_page_scale_factor();
1592 metadata.top_controls_height = 1593 metadata.top_controls_height =
1593 browser_controls_offset_manager_->TopControlsHeight(); 1594 browser_controls_offset_manager_->TopControlsHeight();
1594 metadata.top_controls_shown_ratio = 1595 metadata.top_controls_shown_ratio =
1595 browser_controls_offset_manager_->TopControlsShownRatio(); 1596 browser_controls_offset_manager_->TopControlsShownRatio();
1596 metadata.bottom_controls_height = 1597 metadata.bottom_controls_height =
1597 browser_controls_offset_manager_->BottomControlsHeight(); 1598 browser_controls_offset_manager_->BottomControlsHeight();
1598 metadata.bottom_controls_shown_ratio = 1599 metadata.bottom_controls_shown_ratio =
1599 browser_controls_offset_manager_->BottomControlsShownRatio(); 1600 browser_controls_offset_manager_->BottomControlsShownRatio();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1632 1633
1633 metadata.root_overflow_x_hidden |= 1634 metadata.root_overflow_x_hidden |=
1634 !InnerViewportScrollLayer()->user_scrollable_horizontal(); 1635 !InnerViewportScrollLayer()->user_scrollable_horizontal();
1635 metadata.root_overflow_y_hidden |= 1636 metadata.root_overflow_y_hidden |=
1636 !InnerViewportScrollLayer()->user_scrollable_vertical(); 1637 !InnerViewportScrollLayer()->user_scrollable_vertical();
1637 1638
1638 // TODO(miletus) : Change the metadata to hold ScrollOffset. 1639 // TODO(miletus) : Change the metadata to hold ScrollOffset.
1639 metadata.root_scroll_offset = 1640 metadata.root_scroll_offset =
1640 gfx::ScrollOffsetToVector2dF(active_tree_->TotalScrollOffset()); 1641 gfx::ScrollOffsetToVector2dF(active_tree_->TotalScrollOffset());
1641 1642
1643 metadata.is_fullscreen = is_fullscreen_;
1644
1642 return metadata; 1645 return metadata;
1643 } 1646 }
1644 1647
1645 bool LayerTreeHostImpl::DrawLayers(FrameData* frame) { 1648 bool LayerTreeHostImpl::DrawLayers(FrameData* frame) {
1646 DCHECK(CanDraw()); 1649 DCHECK(CanDraw());
1647 DCHECK_EQ(frame->has_no_damage, frame->render_passes.empty()); 1650 DCHECK_EQ(frame->has_no_damage, frame->render_passes.empty());
1648 1651
1649 TRACE_EVENT0("cc,benchmark", "LayerTreeHostImpl::DrawLayers"); 1652 TRACE_EVENT0("cc,benchmark", "LayerTreeHostImpl::DrawLayers");
1650 1653
1651 ResetRequiresHighResToDraw(); 1654 ResetRequiresHighResToDraw();
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
2140 if (visible_) { 2143 if (visible_) {
2141 // TODO(crbug.com/469175): Replace with RequiresHighResToDraw. 2144 // TODO(crbug.com/469175): Replace with RequiresHighResToDraw.
2142 SetRequiresHighResToDraw(); 2145 SetRequiresHighResToDraw();
2143 } else { 2146 } else {
2144 EvictAllUIResources(); 2147 EvictAllUIResources();
2145 // Call PrepareTiles to evict tiles when we become invisible. 2148 // Call PrepareTiles to evict tiles when we become invisible.
2146 PrepareTiles(); 2149 PrepareTiles();
2147 } 2150 }
2148 } 2151 }
2149 2152
2153 void LayerTreeHostImpl::SetIsFullscreen(bool is_fullscreen) {
2154 DCHECK(task_runner_provider_->IsImplThread());
2155
2156 is_fullscreen_ = is_fullscreen;
2157 }
2158
2150 void LayerTreeHostImpl::SetNeedsOneBeginImplFrame() { 2159 void LayerTreeHostImpl::SetNeedsOneBeginImplFrame() {
2151 // TODO(miletus): This is just the compositor-thread-side call to the 2160 // TODO(miletus): This is just the compositor-thread-side call to the
2152 // SwapPromiseMonitor to say something happened that may cause a swap in the 2161 // SwapPromiseMonitor to say something happened that may cause a swap in the
2153 // future. The name should not refer to SetNeedsRedraw but it does for now. 2162 // future. The name should not refer to SetNeedsRedraw but it does for now.
2154 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); 2163 NotifySwapPromiseMonitorsOfSetNeedsRedraw();
2155 client_->SetNeedsOneBeginImplFrameOnImplThread(); 2164 client_->SetNeedsOneBeginImplFrameOnImplThread();
2156 } 2165 }
2157 2166
2158 void LayerTreeHostImpl::SetNeedsRedraw() { 2167 void LayerTreeHostImpl::SetNeedsRedraw() {
2159 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); 2168 NotifySwapPromiseMonitorsOfSetNeedsRedraw();
(...skipping 2143 matching lines...) Expand 10 before | Expand all | Expand 10 after
4303 4312
4304 void LayerTreeHostImpl::ShowScrollbarsForImplScroll(ElementId element_id) { 4313 void LayerTreeHostImpl::ShowScrollbarsForImplScroll(ElementId element_id) {
4305 if (!element_id) 4314 if (!element_id)
4306 return; 4315 return;
4307 if (ScrollbarAnimationController* animation_controller = 4316 if (ScrollbarAnimationController* animation_controller =
4308 ScrollbarAnimationControllerForElementId(element_id)) 4317 ScrollbarAnimationControllerForElementId(element_id))
4309 animation_controller->DidScrollUpdate(); 4318 animation_controller->DidScrollUpdate();
4310 } 4319 }
4311 4320
4312 } // namespace cc 4321 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/proxy.h » ('j') | cc/trees/proxy.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698