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() 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 33 LayerTreeDebugState::~LayerTreeDebugState() {} 34 35 void LayerTreeDebugState::SetRecordRenderingStats(bool enabled) { 36 record_rendering_stats_ = enabled; 37 } 38 39 bool LayerTreeDebugState::RecordRenderingStats() const { 40 return record_rendering_stats_ || continuous_painting; 41 } 42 43 bool LayerTreeDebugState::ShowHudInfo() const { 44 return show_fps_counter || continuous_painting || 45 ShowHudRects(); 46 } 47 48 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 57 bool LayerTreeDebugState::ShowMemoryStats() const { 58 return show_fps_counter || continuous_painting; 59 } 60 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 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