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 #include <limits> | 8 #include <limits> |
| 9 #include <map> |
9 | 10 |
10 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
11 #include "base/containers/hash_tables.h" | 12 #include "base/containers/hash_tables.h" |
12 #include "base/json/json_writer.h" | 13 #include "base/json/json_writer.h" |
13 #include "base/metrics/histogram.h" | 14 #include "base/metrics/histogram.h" |
14 #include "base/stl_util.h" | 15 #include "base/stl_util.h" |
15 #include "base/strings/stringprintf.h" | 16 #include "base/strings/stringprintf.h" |
16 #include "base/trace_event/trace_event_argument.h" | 17 #include "base/trace_event/trace_event_argument.h" |
17 #include "cc/animation/animation_id_provider.h" | 18 #include "cc/animation/animation_id_provider.h" |
18 #include "cc/animation/scroll_offset_animation_curve.h" | 19 #include "cc/animation/scroll_offset_animation_curve.h" |
19 #include "cc/animation/scrollbar_animation_controller.h" | 20 #include "cc/animation/scrollbar_animation_controller.h" |
20 #include "cc/animation/timing_function.h" | 21 #include "cc/animation/timing_function.h" |
21 #include "cc/base/math_util.h" | 22 #include "cc/base/math_util.h" |
22 #include "cc/base/util.h" | 23 #include "cc/base/util.h" |
23 #include "cc/debug/benchmark_instrumentation.h" | 24 #include "cc/debug/benchmark_instrumentation.h" |
24 #include "cc/debug/debug_rect_history.h" | 25 #include "cc/debug/debug_rect_history.h" |
25 #include "cc/debug/devtools_instrumentation.h" | 26 #include "cc/debug/devtools_instrumentation.h" |
26 #include "cc/debug/frame_rate_counter.h" | 27 #include "cc/debug/frame_rate_counter.h" |
| 28 #include "cc/debug/frame_viewer_instrumentation.h" |
27 #include "cc/debug/paint_time_counter.h" | 29 #include "cc/debug/paint_time_counter.h" |
28 #include "cc/debug/rendering_stats_instrumentation.h" | 30 #include "cc/debug/rendering_stats_instrumentation.h" |
29 #include "cc/debug/traced_value.h" | 31 #include "cc/debug/traced_value.h" |
30 #include "cc/input/page_scale_animation.h" | 32 #include "cc/input/page_scale_animation.h" |
31 #include "cc/input/scroll_elasticity_helper.h" | 33 #include "cc/input/scroll_elasticity_helper.h" |
32 #include "cc/input/top_controls_manager.h" | 34 #include "cc/input/top_controls_manager.h" |
33 #include "cc/layers/append_quads_data.h" | 35 #include "cc/layers/append_quads_data.h" |
34 #include "cc/layers/heads_up_display_layer_impl.h" | 36 #include "cc/layers/heads_up_display_layer_impl.h" |
35 #include "cc/layers/layer_impl.h" | 37 #include "cc/layers/layer_impl.h" |
36 #include "cc/layers/layer_iterator.h" | 38 #include "cc/layers/layer_iterator.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 | 163 |
162 LayerTreeHostImpl::FrameData::~FrameData() {} | 164 LayerTreeHostImpl::FrameData::~FrameData() {} |
163 | 165 |
164 scoped_ptr<LayerTreeHostImpl> LayerTreeHostImpl::Create( | 166 scoped_ptr<LayerTreeHostImpl> LayerTreeHostImpl::Create( |
165 const LayerTreeSettings& settings, | 167 const LayerTreeSettings& settings, |
166 LayerTreeHostImplClient* client, | 168 LayerTreeHostImplClient* client, |
167 Proxy* proxy, | 169 Proxy* proxy, |
168 RenderingStatsInstrumentation* rendering_stats_instrumentation, | 170 RenderingStatsInstrumentation* rendering_stats_instrumentation, |
169 SharedBitmapManager* shared_bitmap_manager, | 171 SharedBitmapManager* shared_bitmap_manager, |
170 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 172 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| 173 TaskGraphRunner* task_graph_runner, |
171 int id) { | 174 int id) { |
172 return make_scoped_ptr(new LayerTreeHostImpl(settings, | 175 return make_scoped_ptr(new LayerTreeHostImpl( |
173 client, | 176 settings, client, proxy, rendering_stats_instrumentation, |
174 proxy, | 177 shared_bitmap_manager, gpu_memory_buffer_manager, task_graph_runner, id)); |
175 rendering_stats_instrumentation, | |
176 shared_bitmap_manager, | |
177 gpu_memory_buffer_manager, | |
178 id)); | |
179 } | 178 } |
180 | 179 |
181 LayerTreeHostImpl::LayerTreeHostImpl( | 180 LayerTreeHostImpl::LayerTreeHostImpl( |
182 const LayerTreeSettings& settings, | 181 const LayerTreeSettings& settings, |
183 LayerTreeHostImplClient* client, | 182 LayerTreeHostImplClient* client, |
184 Proxy* proxy, | 183 Proxy* proxy, |
185 RenderingStatsInstrumentation* rendering_stats_instrumentation, | 184 RenderingStatsInstrumentation* rendering_stats_instrumentation, |
186 SharedBitmapManager* shared_bitmap_manager, | 185 SharedBitmapManager* shared_bitmap_manager, |
187 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, | 186 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
| 187 TaskGraphRunner* task_graph_runner, |
188 int id) | 188 int id) |
189 : client_(client), | 189 : client_(client), |
190 proxy_(proxy), | 190 proxy_(proxy), |
191 use_gpu_rasterization_(false), | 191 use_gpu_rasterization_(false), |
192 gpu_rasterization_status_(GpuRasterizationStatus::OFF_DEVICE), | 192 gpu_rasterization_status_(GpuRasterizationStatus::OFF_DEVICE), |
193 input_handler_client_(NULL), | 193 input_handler_client_(NULL), |
194 did_lock_scrolling_layer_(false), | 194 did_lock_scrolling_layer_(false), |
195 should_bubble_scrolls_(false), | 195 should_bubble_scrolls_(false), |
196 wheel_scrolling_(false), | 196 wheel_scrolling_(false), |
197 scroll_affects_scroll_handler_(false), | 197 scroll_affects_scroll_handler_(false), |
(...skipping 18 matching lines...) Expand all Loading... |
216 max_memory_needed_bytes_(0), | 216 max_memory_needed_bytes_(0), |
217 zero_budget_(false), | 217 zero_budget_(false), |
218 device_scale_factor_(1.f), | 218 device_scale_factor_(1.f), |
219 resourceless_software_draw_(false), | 219 resourceless_software_draw_(false), |
220 begin_impl_frame_interval_(BeginFrameArgs::DefaultInterval()), | 220 begin_impl_frame_interval_(BeginFrameArgs::DefaultInterval()), |
221 animation_registrar_(AnimationRegistrar::Create()), | 221 animation_registrar_(AnimationRegistrar::Create()), |
222 rendering_stats_instrumentation_(rendering_stats_instrumentation), | 222 rendering_stats_instrumentation_(rendering_stats_instrumentation), |
223 micro_benchmark_controller_(this), | 223 micro_benchmark_controller_(this), |
224 shared_bitmap_manager_(shared_bitmap_manager), | 224 shared_bitmap_manager_(shared_bitmap_manager), |
225 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), | 225 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), |
| 226 task_graph_runner_(task_graph_runner), |
226 id_(id), | 227 id_(id), |
227 requires_high_res_to_draw_(false), | 228 requires_high_res_to_draw_(false), |
228 is_likely_to_require_a_draw_(false), | 229 is_likely_to_require_a_draw_(false), |
229 frame_timing_tracker_(FrameTimingTracker::Create()) { | 230 frame_timing_tracker_(FrameTimingTracker::Create()) { |
230 DCHECK(proxy_->IsImplThread()); | 231 DCHECK(proxy_->IsImplThread()); |
231 DidVisibilityChange(this, visible_); | 232 DidVisibilityChange(this, visible_); |
232 animation_registrar_->set_supports_scroll_animations( | 233 animation_registrar_->set_supports_scroll_animations( |
233 proxy_->SupportsImplScrolling()); | 234 proxy_->SupportsImplScrolling()); |
234 | 235 |
235 SetDebugState(settings.initial_debug_state); | 236 SetDebugState(settings.initial_debug_state); |
(...skipping 1285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1521 [](LayerImpl* layer) { layer->DidBeginTracing(); }); | 1522 [](LayerImpl* layer) { layer->DidBeginTracing(); }); |
1522 } | 1523 } |
1523 LayerTreeHostCommon::CallFunctionForSubtree( | 1524 LayerTreeHostCommon::CallFunctionForSubtree( |
1524 active_tree_->root_layer(), | 1525 active_tree_->root_layer(), |
1525 [](LayerImpl* layer) { layer->DidBeginTracing(); }); | 1526 [](LayerImpl* layer) { layer->DidBeginTracing(); }); |
1526 } | 1527 } |
1527 | 1528 |
1528 { | 1529 { |
1529 TRACE_EVENT0("cc", "DrawLayers.FrameViewerTracing"); | 1530 TRACE_EVENT0("cc", "DrawLayers.FrameViewerTracing"); |
1530 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID( | 1531 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID( |
1531 TRACE_DISABLED_BY_DEFAULT("cc.debug") "," | 1532 frame_viewer_instrumentation::kCategoryLayerTree, |
1532 TRACE_DISABLED_BY_DEFAULT("cc.debug.quads") "," | 1533 "cc::LayerTreeHostImpl", id_, AsValueWithFrame(frame)); |
1533 TRACE_DISABLED_BY_DEFAULT("devtools.timeline.layers"), | |
1534 "cc::LayerTreeHostImpl", | |
1535 id_, | |
1536 AsValueWithFrame(frame)); | |
1537 } | 1534 } |
1538 | 1535 |
1539 const DrawMode draw_mode = GetDrawMode(); | 1536 const DrawMode draw_mode = GetDrawMode(); |
1540 | 1537 |
1541 // Because the contents of the HUD depend on everything else in the frame, the | 1538 // Because the contents of the HUD depend on everything else in the frame, the |
1542 // contents of its texture are updated as the last thing before the frame is | 1539 // contents of its texture are updated as the last thing before the frame is |
1543 // drawn. | 1540 // drawn. |
1544 if (active_tree_->hud_layer()) { | 1541 if (active_tree_->hud_layer()) { |
1545 TRACE_EVENT0("cc", "DrawLayers.UpdateHudTexture"); | 1542 TRACE_EVENT0("cc", "DrawLayers.UpdateHudTexture"); |
1546 active_tree_->hud_layer()->UpdateHudTexture(draw_mode, | 1543 active_tree_->hud_layer()->UpdateHudTexture(draw_mode, |
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2027 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() | 2024 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() |
2028 : proxy_->MainThreadTaskRunner(); | 2025 : proxy_->MainThreadTaskRunner(); |
2029 DCHECK(task_runner); | 2026 DCHECK(task_runner); |
2030 | 2027 |
2031 ContextProvider* context_provider = output_surface_->context_provider(); | 2028 ContextProvider* context_provider = output_surface_->context_provider(); |
2032 if (!context_provider) { | 2029 if (!context_provider) { |
2033 *resource_pool = | 2030 *resource_pool = |
2034 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); | 2031 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
2035 | 2032 |
2036 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( | 2033 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( |
2037 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), | 2034 task_runner, task_graph_runner_, resource_provider_.get()); |
2038 resource_provider_.get()); | |
2039 return; | 2035 return; |
2040 } | 2036 } |
2041 | 2037 |
2042 if (use_gpu_rasterization_) { | 2038 if (use_gpu_rasterization_) { |
2043 *resource_pool = | 2039 *resource_pool = |
2044 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); | 2040 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
2045 | 2041 |
2046 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( | 2042 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( |
2047 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), | 2043 task_runner, task_graph_runner_, |
2048 static_cast<GpuRasterizer*>(rasterizer_.get())); | 2044 static_cast<GpuRasterizer*>(rasterizer_.get())); |
2049 return; | 2045 return; |
2050 } | 2046 } |
2051 | 2047 |
2052 if (GetRendererCapabilities().using_image) { | 2048 if (GetRendererCapabilities().using_image) { |
2053 unsigned image_target = settings_.use_image_texture_target; | 2049 unsigned image_target = settings_.use_image_texture_target; |
2054 DCHECK_IMPLIES( | 2050 DCHECK_IMPLIES( |
2055 image_target == GL_TEXTURE_RECTANGLE_ARB, | 2051 image_target == GL_TEXTURE_RECTANGLE_ARB, |
2056 context_provider->ContextCapabilities().gpu.texture_rectangle); | 2052 context_provider->ContextCapabilities().gpu.texture_rectangle); |
2057 DCHECK_IMPLIES( | 2053 DCHECK_IMPLIES( |
2058 image_target == GL_TEXTURE_EXTERNAL_OES, | 2054 image_target == GL_TEXTURE_EXTERNAL_OES, |
2059 context_provider->ContextCapabilities().gpu.egl_image_external); | 2055 context_provider->ContextCapabilities().gpu.egl_image_external); |
2060 | 2056 |
2061 if (settings_.use_zero_copy || IsSynchronousSingleThreaded()) { | 2057 if (settings_.use_zero_copy || IsSynchronousSingleThreaded()) { |
2062 *resource_pool = | 2058 *resource_pool = |
2063 ResourcePool::Create(resource_provider_.get(), image_target); | 2059 ResourcePool::Create(resource_provider_.get(), image_target); |
2064 | 2060 |
2065 TaskGraphRunner* task_graph_runner; | 2061 TaskGraphRunner* task_graph_runner; |
2066 if (IsSynchronousSingleThreaded()) { | 2062 if (IsSynchronousSingleThreaded()) { |
2067 DCHECK(!single_thread_synchronous_task_graph_runner_); | 2063 DCHECK(!single_thread_synchronous_task_graph_runner_); |
2068 single_thread_synchronous_task_graph_runner_.reset(new TaskGraphRunner); | 2064 single_thread_synchronous_task_graph_runner_.reset(new TaskGraphRunner); |
2069 task_graph_runner = single_thread_synchronous_task_graph_runner_.get(); | 2065 task_graph_runner = single_thread_synchronous_task_graph_runner_.get(); |
2070 } else { | 2066 } else { |
2071 task_graph_runner = TileTaskWorkerPool::GetTaskGraphRunner(); | 2067 task_graph_runner = task_graph_runner_; |
2072 } | 2068 } |
2073 | 2069 |
2074 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( | 2070 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( |
2075 task_runner, task_graph_runner, resource_provider_.get()); | 2071 task_runner, task_graph_runner, resource_provider_.get()); |
2076 return; | 2072 return; |
2077 } | 2073 } |
2078 | 2074 |
2079 if (settings_.use_one_copy) { | 2075 if (settings_.use_one_copy) { |
2080 // We need to create a staging resource pool when using copy rasterizer. | 2076 // We need to create a staging resource pool when using copy rasterizer. |
2081 *staging_resource_pool = | 2077 *staging_resource_pool = |
2082 ResourcePool::Create(resource_provider_.get(), image_target); | 2078 ResourcePool::Create(resource_provider_.get(), image_target); |
2083 *resource_pool = | 2079 *resource_pool = |
2084 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); | 2080 ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
2085 | 2081 |
2086 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( | 2082 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( |
2087 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), | 2083 task_runner, task_graph_runner_, context_provider, |
2088 context_provider, resource_provider_.get(), | 2084 resource_provider_.get(), staging_resource_pool_.get()); |
2089 staging_resource_pool_.get()); | |
2090 return; | 2085 return; |
2091 } | 2086 } |
2092 } | 2087 } |
2093 | 2088 |
2094 // Synchronous single-threaded mode depends on tiles being ready to | 2089 // Synchronous single-threaded mode depends on tiles being ready to |
2095 // draw when raster is complete. Therefore, it must use one of zero | 2090 // draw when raster is complete. Therefore, it must use one of zero |
2096 // copy, software raster, or GPU raster (in the branches above). | 2091 // copy, software raster, or GPU raster (in the branches above). |
2097 DCHECK(!IsSynchronousSingleThreaded()); | 2092 DCHECK(!IsSynchronousSingleThreaded()); |
2098 | 2093 |
2099 *resource_pool = ResourcePool::Create( | 2094 *resource_pool = ResourcePool::Create( |
2100 resource_provider_.get(), GL_TEXTURE_2D); | 2095 resource_provider_.get(), GL_TEXTURE_2D); |
2101 | 2096 |
2102 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create( | 2097 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create( |
2103 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), context_provider, | 2098 task_runner, task_graph_runner_, context_provider, |
2104 resource_provider_.get(), | 2099 resource_provider_.get(), |
2105 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), | 2100 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), |
2106 settings_.renderer_settings.refresh_rate)); | 2101 settings_.renderer_settings.refresh_rate)); |
2107 } | 2102 } |
2108 | 2103 |
2109 void LayerTreeHostImpl::DestroyTileManager() { | 2104 void LayerTreeHostImpl::DestroyTileManager() { |
2110 tile_manager_ = nullptr; | 2105 tile_manager_ = nullptr; |
2111 resource_pool_ = nullptr; | 2106 resource_pool_ = nullptr; |
2112 staging_resource_pool_ = nullptr; | 2107 staging_resource_pool_ = nullptr; |
2113 tile_task_worker_pool_ = nullptr; | 2108 tile_task_worker_pool_ = nullptr; |
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3006 static void CollectScrollDeltas(ScrollAndScaleSet* scroll_info, | 3001 static void CollectScrollDeltas(ScrollAndScaleSet* scroll_info, |
3007 LayerImpl* layer_impl) { | 3002 LayerImpl* layer_impl) { |
3008 if (!layer_impl) | 3003 if (!layer_impl) |
3009 return; | 3004 return; |
3010 | 3005 |
3011 gfx::ScrollOffset scroll_delta = layer_impl->PullDeltaForMainThread(); | 3006 gfx::ScrollOffset scroll_delta = layer_impl->PullDeltaForMainThread(); |
3012 | 3007 |
3013 if (!scroll_delta.IsZero()) { | 3008 if (!scroll_delta.IsZero()) { |
3014 LayerTreeHostCommon::ScrollUpdateInfo scroll; | 3009 LayerTreeHostCommon::ScrollUpdateInfo scroll; |
3015 scroll.layer_id = layer_impl->id(); | 3010 scroll.layer_id = layer_impl->id(); |
3016 scroll.scroll_delta = gfx::Vector2dF(scroll_delta.x(), scroll_delta.y()); | 3011 scroll.scroll_delta = gfx::Vector2d(scroll_delta.x(), scroll_delta.y()); |
3017 scroll_info->scrolls.push_back(scroll); | 3012 scroll_info->scrolls.push_back(scroll); |
3018 } | 3013 } |
3019 | 3014 |
3020 for (size_t i = 0; i < layer_impl->children().size(); ++i) | 3015 for (size_t i = 0; i < layer_impl->children().size(); ++i) |
3021 CollectScrollDeltas(scroll_info, layer_impl->children()[i]); | 3016 CollectScrollDeltas(scroll_info, layer_impl->children()[i]); |
3022 } | 3017 } |
3023 | 3018 |
3024 scoped_ptr<ScrollAndScaleSet> LayerTreeHostImpl::ProcessScrollDeltas() { | 3019 scoped_ptr<ScrollAndScaleSet> LayerTreeHostImpl::ProcessScrollDeltas() { |
3025 scoped_ptr<ScrollAndScaleSet> scroll_info(new ScrollAndScaleSet()); | 3020 scoped_ptr<ScrollAndScaleSet> scroll_info(new ScrollAndScaleSet()); |
3026 | 3021 |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3240 FrameData* frame, | 3235 FrameData* frame, |
3241 base::trace_event::TracedValue* state) const { | 3236 base::trace_event::TracedValue* state) const { |
3242 if (this->pending_tree_) { | 3237 if (this->pending_tree_) { |
3243 state->BeginDictionary("activation_state"); | 3238 state->BeginDictionary("activation_state"); |
3244 ActivationStateAsValueInto(state); | 3239 ActivationStateAsValueInto(state); |
3245 state->EndDictionary(); | 3240 state->EndDictionary(); |
3246 } | 3241 } |
3247 MathUtil::AddToTracedValue("device_viewport_size", device_viewport_size_, | 3242 MathUtil::AddToTracedValue("device_viewport_size", device_viewport_size_, |
3248 state); | 3243 state); |
3249 | 3244 |
3250 std::set<const Tile*> tiles; | 3245 std::map<const Tile*, TilePriority> tile_map; |
3251 active_tree_->GetAllTilesForTracing(&tiles); | 3246 active_tree_->GetAllTilesAndPrioritiesForTracing(&tile_map); |
3252 if (pending_tree_) | 3247 if (pending_tree_) |
3253 pending_tree_->GetAllTilesForTracing(&tiles); | 3248 pending_tree_->GetAllTilesAndPrioritiesForTracing(&tile_map); |
3254 | 3249 |
3255 state->BeginArray("active_tiles"); | 3250 state->BeginArray("active_tiles"); |
3256 for (std::set<const Tile*>::const_iterator it = tiles.begin(); | 3251 for (const auto& pair : tile_map) { |
3257 it != tiles.end(); | 3252 const Tile* tile = pair.first; |
3258 ++it) { | 3253 const TilePriority& priority = pair.second; |
3259 const Tile* tile = *it; | |
3260 | 3254 |
3261 state->BeginDictionary(); | 3255 state->BeginDictionary(); |
3262 tile->AsValueInto(state); | 3256 tile->AsValueWithPriorityInto(priority, state); |
3263 state->EndDictionary(); | 3257 state->EndDictionary(); |
3264 } | 3258 } |
3265 state->EndArray(); | 3259 state->EndArray(); |
3266 | 3260 |
3267 if (tile_manager_) { | 3261 if (tile_manager_) { |
3268 state->BeginDictionary("tile_manager_basic_state"); | 3262 state->BeginDictionary("tile_manager_basic_state"); |
3269 tile_manager_->BasicStateAsValueInto(state); | 3263 tile_manager_->BasicStateAsValueInto(state); |
3270 state->EndDictionary(); | 3264 state->EndDictionary(); |
3271 } | 3265 } |
3272 state->BeginDictionary("active_tree"); | 3266 state->BeginDictionary("active_tree"); |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3470 new_target.SetToMin(layer_impl->MaxScrollOffset()); | 3464 new_target.SetToMin(layer_impl->MaxScrollOffset()); |
3471 | 3465 |
3472 curve->UpdateTarget( | 3466 curve->UpdateTarget( |
3473 animation->TrimTimeToCurrentIteration(CurrentBeginFrameArgs().frame_time) | 3467 animation->TrimTimeToCurrentIteration(CurrentBeginFrameArgs().frame_time) |
3474 .InSecondsF(), | 3468 .InSecondsF(), |
3475 new_target); | 3469 new_target); |
3476 | 3470 |
3477 return true; | 3471 return true; |
3478 } | 3472 } |
3479 } // namespace cc | 3473 } // namespace cc |
OLD | NEW |