Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 868 device_viewport_damage_rect.Union(viewport_damage_rect_); | 868 device_viewport_damage_rect.Union(viewport_damage_rect_); |
| 869 viewport_damage_rect_ = gfx::Rect(); | 869 viewport_damage_rect_ = gfx::Rect(); |
| 870 | 870 |
| 871 active_tree_->root_layer()->render_surface()->damage_tracker()-> | 871 active_tree_->root_layer()->render_surface()->damage_tracker()-> |
| 872 AddDamageNextUpdate(device_viewport_damage_rect); | 872 AddDamageNextUpdate(device_viewport_damage_rect); |
| 873 } | 873 } |
| 874 | 874 |
| 875 if (!CalculateRenderPasses(frame)) | 875 if (!CalculateRenderPasses(frame)) |
| 876 return false; | 876 return false; |
| 877 | 877 |
| 878 frame->latency_info = active_tree_->GetLatencyInfo(); | |
| 879 | |
| 878 // If we return true, then we expect DrawLayers() to be called before this | 880 // If we return true, then we expect DrawLayers() to be called before this |
| 879 // function is called again. | 881 // function is called again. |
| 880 return true; | 882 return true; |
| 881 } | 883 } |
| 882 | 884 |
| 883 void LayerTreeHostImpl::EnforceManagedMemoryPolicy( | 885 void LayerTreeHostImpl::EnforceManagedMemoryPolicy( |
| 884 const ManagedMemoryPolicy& policy) { | 886 const ManagedMemoryPolicy& policy) { |
| 885 bool evicted_resources = client_->ReduceContentsTextureMemoryOnImplThread( | 887 bool evicted_resources = client_->ReduceContentsTextureMemoryOnImplThread( |
| 886 visible_ ? policy.bytes_limit_when_visible | 888 visible_ ? policy.bytes_limit_when_visible |
| 887 : policy.bytes_limit_when_not_visible, | 889 : policy.bytes_limit_when_not_visible, |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1012 gfx::Vector2dF(0.f, top_controls_manager_->controls_top_offset()); | 1014 gfx::Vector2dF(0.f, top_controls_manager_->controls_top_offset()); |
| 1013 metadata.location_bar_content_translation = | 1015 metadata.location_bar_content_translation = |
| 1014 gfx::Vector2dF(0.f, top_controls_manager_->content_top_offset()); | 1016 gfx::Vector2dF(0.f, top_controls_manager_->content_top_offset()); |
| 1015 metadata.overdraw_bottom_height = overdraw_bottom_height_; | 1017 metadata.overdraw_bottom_height = overdraw_bottom_height_; |
| 1016 } | 1018 } |
| 1017 | 1019 |
| 1018 if (!RootScrollLayer()) | 1020 if (!RootScrollLayer()) |
| 1019 return metadata; | 1021 return metadata; |
| 1020 | 1022 |
| 1021 metadata.root_scroll_offset = RootScrollLayer()->TotalScrollOffset(); | 1023 metadata.root_scroll_offset = RootScrollLayer()->TotalScrollOffset(); |
| 1024 metadata.latency_info = active_tree_->GetLatencyInfo(); | |
| 1022 | 1025 |
| 1023 return metadata; | 1026 return metadata; |
| 1024 } | 1027 } |
| 1025 | 1028 |
| 1026 bool LayerTreeHostImpl::AllowPartialSwap() const { | 1029 bool LayerTreeHostImpl::AllowPartialSwap() const { |
| 1027 // We don't track damage on the HUD layer (it interacts with damage tracking | 1030 // We don't track damage on the HUD layer (it interacts with damage tracking |
| 1028 // visualizations), so disable partial swaps to make the HUD layer display | 1031 // visualizations), so disable partial swaps to make the HUD layer display |
| 1029 // properly. | 1032 // properly. |
| 1030 return !debug_state_.ShowHudRects(); | 1033 return !debug_state_.ShowHudRects(); |
| 1031 } | 1034 } |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1111 return renderer_ && renderer_->IsContextLost(); | 1114 return renderer_ && renderer_->IsContextLost(); |
| 1112 } | 1115 } |
| 1113 | 1116 |
| 1114 const RendererCapabilities& LayerTreeHostImpl::GetRendererCapabilities() const { | 1117 const RendererCapabilities& LayerTreeHostImpl::GetRendererCapabilities() const { |
| 1115 return renderer_->Capabilities(); | 1118 return renderer_->Capabilities(); |
| 1116 } | 1119 } |
| 1117 | 1120 |
| 1118 bool LayerTreeHostImpl::SwapBuffers(const LayerTreeHostImpl::FrameData& frame) { | 1121 bool LayerTreeHostImpl::SwapBuffers(const LayerTreeHostImpl::FrameData& frame) { |
| 1119 if (frame.has_no_damage) | 1122 if (frame.has_no_damage) |
| 1120 return false; | 1123 return false; |
| 1121 return renderer_->SwapBuffers(); | 1124 bool result = renderer_->SwapBuffers(frame.latency_info); |
| 1125 active_tree_->ClearLatencyInfo(); | |
|
jamesr
2013/04/19 01:25:38
do we want to clear the latency info if the swap f
| |
| 1126 return result; | |
| 1122 } | 1127 } |
| 1123 | 1128 |
| 1124 void LayerTreeHostImpl::EnableVSyncNotification(bool enable) { | 1129 void LayerTreeHostImpl::EnableVSyncNotification(bool enable) { |
| 1125 if (output_surface_) | 1130 if (output_surface_) |
| 1126 output_surface_->EnableVSyncNotification(enable); | 1131 output_surface_->EnableVSyncNotification(enable); |
| 1127 } | 1132 } |
| 1128 | 1133 |
| 1129 gfx::Size LayerTreeHostImpl::DeviceViewportSize() const { | 1134 gfx::Size LayerTreeHostImpl::DeviceViewportSize() const { |
| 1130 return device_viewport_size(); | 1135 return device_viewport_size(); |
| 1131 } | 1136 } |
| (...skipping 963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2095 } | 2100 } |
| 2096 | 2101 |
| 2097 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { | 2102 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { |
| 2098 if (debug_state_.continuous_painting != debug_state.continuous_painting) | 2103 if (debug_state_.continuous_painting != debug_state.continuous_painting) |
| 2099 paint_time_counter_->ClearHistory(); | 2104 paint_time_counter_->ClearHistory(); |
| 2100 | 2105 |
| 2101 debug_state_ = debug_state; | 2106 debug_state_ = debug_state; |
| 2102 } | 2107 } |
| 2103 | 2108 |
| 2104 } // namespace cc | 2109 } // namespace cc |
| OLD | NEW |