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

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

Issue 671653005: SetNeedsRedraw directly when updating a visible tile. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pinchblurmerge-test: . Created 6 years, 1 month 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 #ifndef CC_TREES_LAYER_TREE_HOST_IMPL_H_ 5 #ifndef CC_TREES_LAYER_TREE_HOST_IMPL_H_
6 #define CC_TREES_LAYER_TREE_HOST_IMPL_H_ 6 #define CC_TREES_LAYER_TREE_HOST_IMPL_H_
7 7
8 #include <list> 8 #include <list>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 virtual void DidSwapBuffersCompleteOnImplThread() = 0; 74 virtual void DidSwapBuffersCompleteOnImplThread() = 0;
75 virtual void OnCanDrawStateChanged(bool can_draw) = 0; 75 virtual void OnCanDrawStateChanged(bool can_draw) = 0;
76 virtual void NotifyReadyToActivate() = 0; 76 virtual void NotifyReadyToActivate() = 0;
77 virtual void NotifyReadyToDraw() = 0; 77 virtual void NotifyReadyToDraw() = 0;
78 // Please call these 3 functions through 78 // Please call these 3 functions through
79 // LayerTreeHostImpl's SetNeedsRedraw(), SetNeedsRedrawRect() and 79 // LayerTreeHostImpl's SetNeedsRedraw(), SetNeedsRedrawRect() and
80 // SetNeedsAnimate(). 80 // SetNeedsAnimate().
81 virtual void SetNeedsRedrawOnImplThread() = 0; 81 virtual void SetNeedsRedrawOnImplThread() = 0;
82 virtual void SetNeedsRedrawRectOnImplThread(const gfx::Rect& damage_rect) = 0; 82 virtual void SetNeedsRedrawRectOnImplThread(const gfx::Rect& damage_rect) = 0;
83 virtual void SetNeedsAnimateOnImplThread() = 0; 83 virtual void SetNeedsAnimateOnImplThread() = 0;
84 virtual void DidInitializeVisibleTileOnImplThread() = 0;
85 virtual void SetNeedsCommitOnImplThread() = 0; 84 virtual void SetNeedsCommitOnImplThread() = 0;
86 virtual void SetNeedsManageTilesOnImplThread() = 0; 85 virtual void SetNeedsManageTilesOnImplThread() = 0;
87 virtual void PostAnimationEventsToMainThreadOnImplThread( 86 virtual void PostAnimationEventsToMainThreadOnImplThread(
88 scoped_ptr<AnimationEventsVector> events) = 0; 87 scoped_ptr<AnimationEventsVector> events) = 0;
89 // Returns true if resources were deleted by this call. 88 // Returns true if resources were deleted by this call.
90 virtual bool ReduceContentsTextureMemoryOnImplThread( 89 virtual bool ReduceContentsTextureMemoryOnImplThread(
91 size_t limit_bytes, 90 size_t limit_bytes,
92 int priority_cutoff) = 0; 91 int priority_cutoff) = 0;
93 virtual bool IsInsideDraw() = 0; 92 virtual bool IsInsideDraw() = 0;
94 virtual void RenewTreePriority() = 0; 93 virtual void RenewTreePriority() = 0;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 FrameData(); 162 FrameData();
164 ~FrameData() override; 163 ~FrameData() override;
165 void AsValueInto(base::debug::TracedValue* value) const; 164 void AsValueInto(base::debug::TracedValue* value) const;
166 165
167 std::vector<gfx::Rect> occluding_screen_space_rects; 166 std::vector<gfx::Rect> occluding_screen_space_rects;
168 std::vector<gfx::Rect> non_occluding_screen_space_rects; 167 std::vector<gfx::Rect> non_occluding_screen_space_rects;
169 RenderPassList render_passes; 168 RenderPassList render_passes;
170 RenderPassIdHashMap render_passes_by_id; 169 RenderPassIdHashMap render_passes_by_id;
171 const LayerImplList* render_surface_layer_list; 170 const LayerImplList* render_surface_layer_list;
172 LayerImplList will_draw_layers; 171 LayerImplList will_draw_layers;
173 bool contains_incomplete_tile;
174 bool has_no_damage; 172 bool has_no_damage;
175 173
176 // RenderPassSink implementation. 174 // RenderPassSink implementation.
177 void AppendRenderPass(scoped_ptr<RenderPass> render_pass) override; 175 void AppendRenderPass(scoped_ptr<RenderPass> render_pass) override;
178 }; 176 };
179 177
180 virtual void BeginMainFrameAborted(bool did_handle); 178 virtual void BeginMainFrameAborted(bool did_handle);
181 virtual void BeginCommit(); 179 virtual void BeginCommit();
182 virtual void CommitComplete(); 180 virtual void CommitComplete();
183 virtual void Animate(base::TimeTicks monotonic_time); 181 virtual void Animate(base::TimeTicks monotonic_time);
(...skipping 17 matching lines...) Expand all
201 const LayerTreeSettings& settings() const { return settings_; } 199 const LayerTreeSettings& settings() const { return settings_; }
202 200
203 // Evict all textures by enforcing a memory policy with an allocation of 0. 201 // Evict all textures by enforcing a memory policy with an allocation of 0.
204 void EvictTexturesForTesting(); 202 void EvictTexturesForTesting();
205 203
206 // When blocking, this prevents client_->NotifyReadyToActivate() from being 204 // When blocking, this prevents client_->NotifyReadyToActivate() from being
207 // called. When disabled, it calls client_->NotifyReadyToActivate() 205 // called. When disabled, it calls client_->NotifyReadyToActivate()
208 // immediately if any notifications had been blocked while blocking. 206 // immediately if any notifications had been blocked while blocking.
209 virtual void BlockNotifyReadyToActivateForTesting(bool block); 207 virtual void BlockNotifyReadyToActivateForTesting(bool block);
210 208
211 // This allows us to inject DidInitializeVisibleTile events for testing.
212 void DidInitializeVisibleTileForTesting();
213
214 // Resets all of the trees to an empty state. 209 // Resets all of the trees to an empty state.
215 void ResetTreesForTesting(); 210 void ResetTreesForTesting();
216 211
217 DrawMode GetDrawMode() const; 212 DrawMode GetDrawMode() const;
218 213
219 // Viewport size in draw space: this size is in physical pixels and is used 214 // Viewport size in draw space: this size is in physical pixels and is used
220 // for draw properties, tilings, quads and render passes. 215 // for draw properties, tilings, quads and render passes.
221 gfx::Size DrawViewportSize() const; 216 gfx::Size DrawViewportSize() const;
222 217
223 // Viewport rect in view space used for tiling prioritization. 218 // Viewport rect in view space used for tiling prioritization.
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 const LayerTreeImpl* active_tree() const { return active_tree_.get(); } 288 const LayerTreeImpl* active_tree() const { return active_tree_.get(); }
294 LayerTreeImpl* pending_tree() { return pending_tree_.get(); } 289 LayerTreeImpl* pending_tree() { return pending_tree_.get(); }
295 const LayerTreeImpl* pending_tree() const { return pending_tree_.get(); } 290 const LayerTreeImpl* pending_tree() const { return pending_tree_.get(); }
296 LayerTreeImpl* recycle_tree() { return recycle_tree_.get(); } 291 LayerTreeImpl* recycle_tree() { return recycle_tree_.get(); }
297 const LayerTreeImpl* recycle_tree() const { return recycle_tree_.get(); } 292 const LayerTreeImpl* recycle_tree() const { return recycle_tree_.get(); }
298 // Returns the tree LTH synchronizes with. 293 // Returns the tree LTH synchronizes with.
299 LayerTreeImpl* sync_tree() { 294 LayerTreeImpl* sync_tree() {
300 return pending_tree_ ? pending_tree_.get() : active_tree_.get(); 295 return pending_tree_ ? pending_tree_.get() : active_tree_.get();
301 } 296 }
302 virtual void CreatePendingTree(); 297 virtual void CreatePendingTree();
303 virtual void UpdateVisibleTiles();
304 virtual void ActivateSyncTree(); 298 virtual void ActivateSyncTree();
305 299
306 // Shortcuts to layers on the active tree. 300 // Shortcuts to layers on the active tree.
307 LayerImpl* RootLayer() const; 301 LayerImpl* RootLayer() const;
308 LayerImpl* InnerViewportScrollLayer() const; 302 LayerImpl* InnerViewportScrollLayer() const;
309 LayerImpl* OuterViewportScrollLayer() const; 303 LayerImpl* OuterViewportScrollLayer() const;
310 LayerImpl* CurrentlyScrollingLayer() const; 304 LayerImpl* CurrentlyScrollingLayer() const;
311 305
312 int scroll_layer_id_when_mouse_over_scrollbar() const { 306 int scroll_layer_id_when_mouse_over_scrollbar() const {
313 return scroll_layer_id_when_mouse_over_scrollbar_; 307 return scroll_layer_id_when_mouse_over_scrollbar_;
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 LayerImpl* layer_hit_by_point, 559 LayerImpl* layer_hit_by_point,
566 bool* scroll_on_main_thread, 560 bool* scroll_on_main_thread,
567 bool* optional_has_ancestor_scroll_handler) const; 561 bool* optional_has_ancestor_scroll_handler) const;
568 float DeviceSpaceDistanceToLayer(const gfx::PointF& device_viewport_point, 562 float DeviceSpaceDistanceToLayer(const gfx::PointF& device_viewport_point,
569 LayerImpl* layer_impl); 563 LayerImpl* layer_impl);
570 void StartScrollbarFadeRecursive(LayerImpl* layer); 564 void StartScrollbarFadeRecursive(LayerImpl* layer);
571 void SetManagedMemoryPolicy(const ManagedMemoryPolicy& policy, 565 void SetManagedMemoryPolicy(const ManagedMemoryPolicy& policy,
572 bool zero_budget); 566 bool zero_budget);
573 void EnforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy); 567 void EnforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy);
574 568
575 void DidInitializeVisibleTile();
576
577 void MarkUIResourceNotEvicted(UIResourceId uid); 569 void MarkUIResourceNotEvicted(UIResourceId uid);
578 570
579 void NotifySwapPromiseMonitorsOfSetNeedsRedraw(); 571 void NotifySwapPromiseMonitorsOfSetNeedsRedraw();
580 void NotifySwapPromiseMonitorsOfForwardingToMainThread(); 572 void NotifySwapPromiseMonitorsOfForwardingToMainThread();
581 573
582 typedef base::hash_map<UIResourceId, UIResourceData> 574 typedef base::hash_map<UIResourceId, UIResourceData>
583 UIResourceMap; 575 UIResourceMap;
584 UIResourceMap ui_resource_map_; 576 UIResourceMap ui_resource_map_;
585 577
586 // Resources that were evicted by EvictAllUIResources. Resources are removed 578 // Resources that were evicted by EvictAllUIResources. Resources are removed
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 678
687 // Expected time between two begin impl frame calls. 679 // Expected time between two begin impl frame calls.
688 base::TimeDelta begin_impl_frame_interval_; 680 base::TimeDelta begin_impl_frame_interval_;
689 681
690 scoped_ptr<AnimationRegistrar> animation_registrar_; 682 scoped_ptr<AnimationRegistrar> animation_registrar_;
691 683
692 RenderingStatsInstrumentation* rendering_stats_instrumentation_; 684 RenderingStatsInstrumentation* rendering_stats_instrumentation_;
693 MicroBenchmarkControllerImpl micro_benchmark_controller_; 685 MicroBenchmarkControllerImpl micro_benchmark_controller_;
694 scoped_ptr<TaskGraphRunner> single_thread_synchronous_task_graph_runner_; 686 scoped_ptr<TaskGraphRunner> single_thread_synchronous_task_graph_runner_;
695 687
696 bool need_to_update_visible_tiles_before_draw_;
697
698 // Optional callback to notify of new tree activations. 688 // Optional callback to notify of new tree activations.
699 base::Closure tree_activation_callback_; 689 base::Closure tree_activation_callback_;
700 690
701 SharedBitmapManager* shared_bitmap_manager_; 691 SharedBitmapManager* shared_bitmap_manager_;
702 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager_; 692 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager_;
703 int id_; 693 int id_;
704 694
705 std::set<SwapPromiseMonitor*> swap_promise_monitor_; 695 std::set<SwapPromiseMonitor*> swap_promise_monitor_;
706 696
707 std::vector<PictureLayerImpl*> picture_layers_; 697 std::vector<PictureLayerImpl*> picture_layers_;
708 std::vector<PictureLayerImpl::Pair> picture_layer_pairs_; 698 std::vector<PictureLayerImpl::Pair> picture_layer_pairs_;
709 699
710 bool requires_high_res_to_draw_; 700 bool requires_high_res_to_draw_;
701 bool required_for_draw_tile_is_top_of_raster_queue_;
711 702
712 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); 703 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl);
713 }; 704 };
714 705
715 } // namespace cc 706 } // namespace cc
716 707
717 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_ 708 #endif // CC_TREES_LAYER_TREE_HOST_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698