• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #include "cc/debug/layer_tree_debug_state.h"
6 
7 #include "base/logging.h"
8 
9 namespace cc {
10 
11 // IMPORTANT: new fields must be added to Equal() and Unite()
LayerTreeDebugState()12 LayerTreeDebugState::LayerTreeDebugState()
13     : show_fps_counter(false),
14       show_debug_borders(false),
15       continuous_painting(false),
16       show_paint_rects(false),
17       show_property_changed_rects(false),
18       show_surface_damage_rects(false),
19       show_screen_space_rects(false),
20       show_replica_screen_space_rects(false),
21       show_occluding_rects(false),
22       show_non_occluding_rects(false),
23       show_touch_event_handler_rects(false),
24       show_wheel_event_handler_rects(false),
25       show_scroll_event_handler_rects(false),
26       show_non_fast_scrollable_rects(false),
27       show_layer_animation_bounds_rects(false),
28       slow_down_raster_scale_factor(0),
29       rasterize_only_visible_content(false),
30       show_picture_borders(false),
31       record_rendering_stats_(false) {}
32 
~LayerTreeDebugState()33 LayerTreeDebugState::~LayerTreeDebugState() {}
34 
SetRecordRenderingStats(bool enabled)35 void LayerTreeDebugState::SetRecordRenderingStats(bool enabled) {
36   record_rendering_stats_ = enabled;
37 }
38 
RecordRenderingStats() const39 bool LayerTreeDebugState::RecordRenderingStats() const {
40   return record_rendering_stats_ || continuous_painting;
41 }
42 
ShowHudInfo() const43 bool LayerTreeDebugState::ShowHudInfo() const {
44   return show_fps_counter || continuous_painting ||
45          ShowHudRects();
46 }
47 
ShowHudRects() const48 bool LayerTreeDebugState::ShowHudRects() const {
49   return show_paint_rects || show_property_changed_rects ||
50          show_surface_damage_rects || show_screen_space_rects ||
51          show_replica_screen_space_rects || show_occluding_rects ||
52          show_non_occluding_rects || show_touch_event_handler_rects ||
53          show_wheel_event_handler_rects || show_scroll_event_handler_rects ||
54          show_non_fast_scrollable_rects || show_layer_animation_bounds_rects;
55 }
56 
ShowMemoryStats() const57 bool LayerTreeDebugState::ShowMemoryStats() const {
58   return show_fps_counter || continuous_painting;
59 }
60 
Equal(const LayerTreeDebugState & a,const LayerTreeDebugState & b)61 bool LayerTreeDebugState::Equal(const LayerTreeDebugState& a,
62                                 const LayerTreeDebugState& b) {
63   return (
64       a.show_fps_counter == b.show_fps_counter &&
65       a.show_debug_borders == b.show_debug_borders &&
66       a.continuous_painting == b.continuous_painting &&
67       a.show_paint_rects == b.show_paint_rects &&
68       a.show_property_changed_rects == b.show_property_changed_rects &&
69       a.show_surface_damage_rects == b.show_surface_damage_rects &&
70       a.show_screen_space_rects == b.show_screen_space_rects &&
71       a.show_replica_screen_space_rects == b.show_replica_screen_space_rects &&
72       a.show_occluding_rects == b.show_occluding_rects &&
73       a.show_non_occluding_rects == b.show_non_occluding_rects &&
74       a.show_touch_event_handler_rects == b.show_touch_event_handler_rects &&
75       a.show_wheel_event_handler_rects == b.show_wheel_event_handler_rects &&
76       a.show_scroll_event_handler_rects == b.show_scroll_event_handler_rects &&
77       a.show_non_fast_scrollable_rects == b.show_non_fast_scrollable_rects &&
78       a.show_layer_animation_bounds_rects ==
79           b.show_layer_animation_bounds_rects &&
80       a.slow_down_raster_scale_factor == b.slow_down_raster_scale_factor &&
81       a.rasterize_only_visible_content == b.rasterize_only_visible_content &&
82       a.show_picture_borders == b.show_picture_borders &&
83       a.record_rendering_stats_ == b.record_rendering_stats_);
84 }
85 
Unite(const LayerTreeDebugState & a,const LayerTreeDebugState & b)86 LayerTreeDebugState LayerTreeDebugState::Unite(const LayerTreeDebugState& a,
87                                                const LayerTreeDebugState& b) {
88   LayerTreeDebugState r(a);
89 
90   r.show_fps_counter |= b.show_fps_counter;
91   r.show_debug_borders |= b.show_debug_borders;
92   r.continuous_painting |= b.continuous_painting;
93 
94   r.show_paint_rects |= b.show_paint_rects;
95   r.show_property_changed_rects |= b.show_property_changed_rects;
96   r.show_surface_damage_rects |= b.show_surface_damage_rects;
97   r.show_screen_space_rects |= b.show_screen_space_rects;
98   r.show_replica_screen_space_rects |= b.show_replica_screen_space_rects;
99   r.show_occluding_rects |= b.show_occluding_rects;
100   r.show_non_occluding_rects |= b.show_non_occluding_rects;
101   r.show_touch_event_handler_rects |= b.show_touch_event_handler_rects;
102   r.show_wheel_event_handler_rects |= b.show_wheel_event_handler_rects;
103   r.show_scroll_event_handler_rects |= b.show_scroll_event_handler_rects;
104   r.show_non_fast_scrollable_rects |= b.show_non_fast_scrollable_rects;
105   r.show_layer_animation_bounds_rects |= b.show_layer_animation_bounds_rects;
106 
107   if (b.slow_down_raster_scale_factor)
108     r.slow_down_raster_scale_factor = b.slow_down_raster_scale_factor;
109   r.rasterize_only_visible_content |= b.rasterize_only_visible_content;
110   r.show_picture_borders |= b.show_picture_borders;
111 
112   r.record_rendering_stats_ |= b.record_rendering_stats_;
113 
114   return r;
115 }
116 
117 }  // namespace cc
118