| 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/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 Proxy* proxy, | 158 Proxy* proxy, |
| 159 RenderingStatsInstrumentation* rendering_stats_instrumentation) | 159 RenderingStatsInstrumentation* rendering_stats_instrumentation) |
| 160 : client_(client), | 160 : client_(client), |
| 161 proxy_(proxy), | 161 proxy_(proxy), |
| 162 input_handler_client_(NULL), | 162 input_handler_client_(NULL), |
| 163 did_lock_scrolling_layer_(false), | 163 did_lock_scrolling_layer_(false), |
| 164 should_bubble_scrolls_(false), | 164 should_bubble_scrolls_(false), |
| 165 wheel_scrolling_(false), | 165 wheel_scrolling_(false), |
| 166 root_layer_scroll_offset_delegate_(NULL), | 166 root_layer_scroll_offset_delegate_(NULL), |
| 167 settings_(settings), | 167 settings_(settings), |
| 168 overdraw_bottom_height_(0.f), | |
| 169 device_scale_factor_(1.f), | |
| 170 visible_(true), | 168 visible_(true), |
| 171 managed_memory_policy_( | 169 managed_memory_policy_( |
| 172 PrioritizedResourceManager::DefaultMemoryAllocationLimit(), | 170 PrioritizedResourceManager::DefaultMemoryAllocationLimit(), |
| 173 ManagedMemoryPolicy::CUTOFF_ALLOW_EVERYTHING, | 171 ManagedMemoryPolicy::CUTOFF_ALLOW_EVERYTHING, |
| 174 0, | 172 0, |
| 175 ManagedMemoryPolicy::CUTOFF_ALLOW_NOTHING), | 173 ManagedMemoryPolicy::CUTOFF_ALLOW_NOTHING), |
| 176 pinch_gesture_active_(false), | 174 pinch_gesture_active_(false), |
| 177 fps_counter_(FrameRateCounter::Create(proxy_->HasImplThread())), | 175 fps_counter_(FrameRateCounter::Create(proxy_->HasImplThread())), |
| 178 paint_time_counter_(PaintTimeCounter::Create()), | 176 paint_time_counter_(PaintTimeCounter::Create()), |
| 179 memory_history_(MemoryHistory::Create()), | 177 memory_history_(MemoryHistory::Create()), |
| 180 debug_rect_history_(DebugRectHistory::Create()), | 178 debug_rect_history_(DebugRectHistory::Create()), |
| 181 max_memory_needed_bytes_(0), | 179 max_memory_needed_bytes_(0), |
| 182 last_sent_memory_visible_bytes_(0), | 180 last_sent_memory_visible_bytes_(0), |
| 183 last_sent_memory_visible_and_nearby_bytes_(0), | 181 last_sent_memory_visible_and_nearby_bytes_(0), |
| 184 last_sent_memory_use_bytes_(0), | 182 last_sent_memory_use_bytes_(0), |
| 183 device_scale_factor_(1.f), |
| 184 overdraw_bottom_height_(0.f), |
| 185 animation_registrar_(AnimationRegistrar::Create()), | 185 animation_registrar_(AnimationRegistrar::Create()), |
| 186 rendering_stats_instrumentation_(rendering_stats_instrumentation) { | 186 rendering_stats_instrumentation_(rendering_stats_instrumentation) { |
| 187 DCHECK(proxy_->IsImplThread()); | 187 DCHECK(proxy_->IsImplThread()); |
| 188 DidVisibilityChange(this, visible_); | 188 DidVisibilityChange(this, visible_); |
| 189 | 189 |
| 190 SetDebugState(settings.initial_debug_state); | 190 SetDebugState(settings.initial_debug_state); |
| 191 | 191 |
| 192 if (settings.calculate_top_controls_position) { | 192 if (settings.calculate_top_controls_position) { |
| 193 top_controls_manager_ = | 193 top_controls_manager_ = |
| 194 TopControlsManager::Create(this, | 194 TopControlsManager::Create(this, |
| (...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1038 EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy()); | 1038 EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy()); |
| 1039 } else { | 1039 } else { |
| 1040 DCHECK(proxy_->IsImplThread()); | 1040 DCHECK(proxy_->IsImplThread()); |
| 1041 EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy()); | 1041 EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy()); |
| 1042 } | 1042 } |
| 1043 | 1043 |
| 1044 if (needs_commit) | 1044 if (needs_commit) |
| 1045 client_->SetNeedsCommitOnImplThread(); | 1045 client_->SetNeedsCommitOnImplThread(); |
| 1046 } | 1046 } |
| 1047 | 1047 |
| 1048 void LayerTreeHostImpl::SetExternalDrawConstraints( |
| 1049 const gfx::Transform& transform, |
| 1050 gfx::Rect viewport) { |
| 1051 external_transform_ = transform; |
| 1052 external_viewport_ = viewport; |
| 1053 } |
| 1054 |
| 1048 void LayerTreeHostImpl::SetNeedsRedrawRect(gfx::Rect damage_rect) { | 1055 void LayerTreeHostImpl::SetNeedsRedrawRect(gfx::Rect damage_rect) { |
| 1049 client_->SetNeedsRedrawRectOnImplThread(damage_rect); | 1056 client_->SetNeedsRedrawRectOnImplThread(damage_rect); |
| 1050 } | 1057 } |
| 1051 | 1058 |
| 1052 void LayerTreeHostImpl::OnVSyncParametersChanged(base::TimeTicks timebase, | 1059 void LayerTreeHostImpl::OnVSyncParametersChanged(base::TimeTicks timebase, |
| 1053 base::TimeDelta interval) { | 1060 base::TimeDelta interval) { |
| 1054 client_->OnVSyncParametersChanged(timebase, interval); | 1061 client_->OnVSyncParametersChanged(timebase, interval); |
| 1055 } | 1062 } |
| 1056 | 1063 |
| 1057 void LayerTreeHostImpl::BeginFrame(base::TimeTicks frame_time) { | 1064 void LayerTreeHostImpl::BeginFrame(base::TimeTicks frame_time) { |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1204 renderer_->SwapBuffers(frame.latency_info); | 1211 renderer_->SwapBuffers(frame.latency_info); |
| 1205 active_tree_->ClearLatencyInfo(); | 1212 active_tree_->ClearLatencyInfo(); |
| 1206 return true; | 1213 return true; |
| 1207 } | 1214 } |
| 1208 | 1215 |
| 1209 void LayerTreeHostImpl::SetNeedsBeginFrame(bool enable) { | 1216 void LayerTreeHostImpl::SetNeedsBeginFrame(bool enable) { |
| 1210 if (output_surface_) | 1217 if (output_surface_) |
| 1211 output_surface_->SetNeedsBeginFrame(enable); | 1218 output_surface_->SetNeedsBeginFrame(enable); |
| 1212 } | 1219 } |
| 1213 | 1220 |
| 1214 gfx::Size LayerTreeHostImpl::DeviceViewportSize() const { | |
| 1215 return device_viewport_size(); | |
| 1216 } | |
| 1217 | |
| 1218 float LayerTreeHostImpl::DeviceScaleFactor() const { | 1221 float LayerTreeHostImpl::DeviceScaleFactor() const { |
| 1219 return device_scale_factor_; | 1222 return device_scale_factor_; |
| 1220 } | 1223 } |
| 1221 | 1224 |
| 1222 gfx::SizeF LayerTreeHostImpl::VisibleViewportSize() const { | 1225 gfx::SizeF LayerTreeHostImpl::VisibleViewportSize() const { |
| 1223 gfx::SizeF dip_size = | 1226 gfx::SizeF dip_size = |
| 1224 gfx::ScaleSize(DeviceViewportSize(), 1.f / device_scale_factor()); | 1227 gfx::ScaleSize(device_viewport_size(), 1.f / device_scale_factor()); |
| 1225 | 1228 |
| 1226 // The clip layer should be used if non-overlay scrollbars may exist since | 1229 // The clip layer should be used if non-overlay scrollbars may exist since |
| 1227 // it adjusts for them. | 1230 // it adjusts for them. |
| 1228 LayerImpl* clip_layer = active_tree_->RootClipLayer(); | 1231 LayerImpl* clip_layer = active_tree_->RootClipLayer(); |
| 1229 if (!Settings().solid_color_scrollbars && clip_layer && | 1232 if (!Settings().solid_color_scrollbars && clip_layer && |
| 1230 clip_layer->masks_to_bounds()) | 1233 clip_layer->masks_to_bounds()) |
| 1231 dip_size = clip_layer->bounds(); | 1234 dip_size = clip_layer->bounds(); |
| 1232 | 1235 |
| 1233 float top_offset = | 1236 float top_offset = |
| 1234 top_controls_manager_ ? top_controls_manager_->content_top_offset() : 0.f; | 1237 top_controls_manager_ ? top_controls_manager_->content_top_offset() : 0.f; |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1526 return; | 1529 return; |
| 1527 device_scale_factor_ = device_scale_factor; | 1530 device_scale_factor_ = device_scale_factor; |
| 1528 | 1531 |
| 1529 if (renderer_) | 1532 if (renderer_) |
| 1530 renderer_->ViewportChanged(); | 1533 renderer_->ViewportChanged(); |
| 1531 | 1534 |
| 1532 UpdateMaxScrollOffset(); | 1535 UpdateMaxScrollOffset(); |
| 1533 SetFullRootLayerDamage(); | 1536 SetFullRootLayerDamage(); |
| 1534 } | 1537 } |
| 1535 | 1538 |
| 1539 gfx::Rect LayerTreeHostImpl::DeviceViewport() const { |
| 1540 if (external_viewport_.IsEmpty()) |
| 1541 return gfx::Rect(device_viewport_size_); |
| 1542 |
| 1543 return external_viewport_; |
| 1544 } |
| 1545 |
| 1546 const gfx::Transform& LayerTreeHostImpl::DeviceTransform() const { |
| 1547 return external_transform_; |
| 1548 } |
| 1549 |
| 1536 void LayerTreeHostImpl::UpdateMaxScrollOffset() { | 1550 void LayerTreeHostImpl::UpdateMaxScrollOffset() { |
| 1537 active_tree_->UpdateMaxScrollOffset(); | 1551 active_tree_->UpdateMaxScrollOffset(); |
| 1538 } | 1552 } |
| 1539 | 1553 |
| 1540 void LayerTreeHostImpl::DidChangeTopControlsPosition() { | 1554 void LayerTreeHostImpl::DidChangeTopControlsPosition() { |
| 1541 client_->SetNeedsRedrawOnImplThread(); | 1555 client_->SetNeedsRedrawOnImplThread(); |
| 1542 active_tree_->set_needs_update_draw_properties(); | 1556 active_tree_->set_needs_update_draw_properties(); |
| 1543 SetFullRootLayerDamage(); | 1557 SetFullRootLayerDamage(); |
| 1544 } | 1558 } |
| 1545 | 1559 |
| (...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2253 } | 2267 } |
| 2254 | 2268 |
| 2255 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { | 2269 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { |
| 2256 if (debug_state_.continuous_painting != debug_state.continuous_painting) | 2270 if (debug_state_.continuous_painting != debug_state.continuous_painting) |
| 2257 paint_time_counter_->ClearHistory(); | 2271 paint_time_counter_->ClearHistory(); |
| 2258 | 2272 |
| 2259 debug_state_ = debug_state; | 2273 debug_state_ = debug_state; |
| 2260 } | 2274 } |
| 2261 | 2275 |
| 2262 } // namespace cc | 2276 } // namespace cc |
| OLD | NEW |