Coverage Report

Created: 2024-05-20 07:14

/src/skia/modules/sksg/include/SkSGInvalidationController.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2017 Google Inc.
3
 *
4
 * Use of this source code is governed by a BSD-style license that can be
5
 * found in the LICENSE file.
6
 */
7
8
#ifndef SkSGInvalidationController_DEFINED
9
#define SkSGInvalidationController_DEFINED
10
11
#include "include/core/SkMatrix.h"
12
#include "include/core/SkRect.h"
13
#include "include/core/SkTypes.h"
14
15
#include <vector>
16
17
namespace sksg {
18
19
/**
20
 * Receiver for invalidation events.
21
 *
22
 * Tracks dirty regions for repaint.
23
 */
24
class InvalidationController {
25
public:
26
    InvalidationController();
27
    InvalidationController(const InvalidationController&) = delete;
28
    InvalidationController& operator=(const InvalidationController&) = delete;
29
30
    void inval(const SkRect&, const SkMatrix& ctm = SkMatrix::I());
31
32
0
    const SkRect& bounds() const { return fBounds; }
33
34
0
    auto begin() const { return fRects.cbegin(); }
35
0
    auto   end() const { return fRects.cend();   }
36
37
    void reset();
38
39
private:
40
    std::vector<SkRect> fRects;
41
    SkRect              fBounds;
42
};
43
44
} // namespace sksg
45
46
#endif // SkSGInvalidationController_DEFINED