summaryrefslogtreecommitdiffstats
path: root/cc/layer_tree_debug_state.cc
blob: abe94bb39949c7251ee8209f710eaf5d52343e73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Copyright 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "cc/layer_tree_debug_state.h"

#include "base/logging.h"

namespace cc {

// IMPORTANT: new fields must be added to equal() and unite()
LayerTreeDebugState::LayerTreeDebugState()
  : showFPSCounter(false)
  , showPlatformLayerTree(false)
  , showDebugBorders(false)
  , continuousPainting(false)
  , showPaintRects(false)
  , showPropertyChangedRects(false)
  , showSurfaceDamageRects(false)
  , showScreenSpaceRects(false)
  , showReplicaScreenSpaceRects(false)
  , showOccludingRects(false)
  , showNonOccludingRects(false)
  , slowDownRasterScaleFactor(0)
  , m_recordRenderingStats(false)
  , traceAllRenderedFrames(false) { }

LayerTreeDebugState::~LayerTreeDebugState() {
}

void LayerTreeDebugState::setRecordRenderingStats(bool enabled) {
    m_recordRenderingStats = enabled;
}

bool LayerTreeDebugState::recordRenderingStats() const {
    return m_recordRenderingStats || continuousPainting;
}

bool LayerTreeDebugState::showHudInfo() const {
    return showFPSCounter || showPlatformLayerTree || continuousPainting || showHudRects();
}

bool LayerTreeDebugState::showHudRects() const {
    return showPaintRects || showPropertyChangedRects || showSurfaceDamageRects || showScreenSpaceRects || showReplicaScreenSpaceRects || showOccludingRects || showNonOccludingRects;
}

bool LayerTreeDebugState::equal(const LayerTreeDebugState& a, const LayerTreeDebugState& b) {
    return (a.showFPSCounter == b.showFPSCounter &&
            a.showPlatformLayerTree == b.showPlatformLayerTree &&
            a.showDebugBorders == b.showDebugBorders &&
            a.continuousPainting == b.continuousPainting &&
            a.showPaintRects == b.showPaintRects &&
            a.showPropertyChangedRects == b.showPropertyChangedRects &&
            a.showSurfaceDamageRects == b.showSurfaceDamageRects &&
            a.showScreenSpaceRects == b.showScreenSpaceRects &&
            a.showReplicaScreenSpaceRects == b.showReplicaScreenSpaceRects &&
            a.showOccludingRects == b.showOccludingRects &&
            a.showNonOccludingRects == b.showNonOccludingRects &&
            a.slowDownRasterScaleFactor == b.slowDownRasterScaleFactor &&
            a.m_recordRenderingStats == b.m_recordRenderingStats &&
            a.traceAllRenderedFrames == b.traceAllRenderedFrames);
}

LayerTreeDebugState LayerTreeDebugState::unite(const LayerTreeDebugState& a, const LayerTreeDebugState& b) {
    LayerTreeDebugState r(a);

    r.showFPSCounter |= b.showFPSCounter;
    r.showPlatformLayerTree |= b.showPlatformLayerTree;
    r.showDebugBorders |= b.showDebugBorders;
    r.continuousPainting |= b.continuousPainting;

    r.showPaintRects |= b.showPaintRects;
    r.showPropertyChangedRects |= b.showPropertyChangedRects;
    r.showSurfaceDamageRects |= b.showSurfaceDamageRects;
    r.showScreenSpaceRects |= b.showScreenSpaceRects;
    r.showReplicaScreenSpaceRects |= b.showReplicaScreenSpaceRects;
    r.showOccludingRects |= b.showOccludingRects;
    r.showNonOccludingRects |= b.showNonOccludingRects;

    if (b.slowDownRasterScaleFactor)
      r.slowDownRasterScaleFactor = b.slowDownRasterScaleFactor;

    r.m_recordRenderingStats |= b.m_recordRenderingStats;
    r.traceAllRenderedFrames |= b.traceAllRenderedFrames;

    return r;
}

}  // namespace cc