20TilesHighlight::Tile::Tile(
const int x,
const int y,
const int width,
const int height)
25uint64_t TilesHighlight::Tile::hash()
const
39 unhighlight_tile(
tile);
42void TilesHighlight::highlight_tile(
const int x,
const int y,
const int width,
const int height)
44 const Tile
tile(
x,
y, width, height);
48void TilesHighlight::unhighlight_tile(
const int x,
const int y,
const int width,
const int height)
50 const Tile
tile(
x,
y, width, height);
51 unhighlight_tile(
tile);
54void TilesHighlight::highlight_tile(
const Tile &
tile)
56 std::unique_lock
lock(mutex_);
58 highlighted_tiles_set_.add(
tile);
59 did_tiles_change_ =
true;
62void TilesHighlight::unhighlight_tile(
const Tile &
tile)
64 std::unique_lock
lock(mutex_);
66 highlighted_tiles_set_.remove(
tile);
67 did_tiles_change_ =
true;
70void TilesHighlight::clear()
72 std::unique_lock
lock(mutex_);
74 highlighted_tiles_set_.clear();
75 cached_highlighted_tiles_.clear_and_shrink();
78Span<rcti> TilesHighlight::get_all_highlighted_tiles()
const
80 std::unique_lock
lock(mutex_);
83 if (did_tiles_change_) {
84 if (highlighted_tiles_set_.is_empty()) {
85 cached_highlighted_tiles_.clear_and_shrink();
88 cached_highlighted_tiles_.reserve(highlighted_tiles_set_.size());
89 for (
const Tile &
tile : highlighted_tiles_set_) {
90 cached_highlighted_tiles_.append(
tile.rect);
94 did_tiles_change_ =
false;
97 return cached_highlighted_tiles_;
void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax)
const ccl_global KernelWorkTile * tile
uint64_t get_default_hash(const T &v, const Args &...args)
unsigned __int64 uint64_t