19TilesHighlight::Tile::Tile(
const RenderResult *result) : rect(result->tilerect) {}
21TilesHighlight::Tile::Tile(
const int x,
const int y,
const int width,
const int height)
26uint64_t TilesHighlight::Tile::hash()
const
31void TilesHighlight::highlight_tile_for_result(
const RenderResult *result)
33 const Tile
tile(result);
37void TilesHighlight::unhighlight_tile_for_result(
const RenderResult *result)
39 const Tile
tile(result);
40 unhighlight_tile(
tile);
43void TilesHighlight::highlight_tile(
const int x,
const int y,
const int width,
const int height)
45 const Tile
tile(x, y, width, height);
49void TilesHighlight::unhighlight_tile(
const int x,
const int y,
const int width,
const int height)
51 const Tile
tile(x, y, width, height);
52 unhighlight_tile(
tile);
55void TilesHighlight::highlight_tile(
const Tile &
tile)
57 std::unique_lock
lock(mutex_);
59 highlighted_tiles_set_.add(
tile);
60 did_tiles_change_ =
true;
63void TilesHighlight::unhighlight_tile(
const Tile &
tile)
65 std::unique_lock
lock(mutex_);
67 highlighted_tiles_set_.remove(
tile);
68 did_tiles_change_ =
true;
71void TilesHighlight::clear()
73 std::unique_lock
lock(mutex_);
75 highlighted_tiles_set_.clear();
76 cached_highlighted_tiles_.clear_and_shrink();
79Span<rcti> TilesHighlight::get_all_highlighted_tiles()
const
81 std::unique_lock
lock(mutex_);
84 if (did_tiles_change_) {
85 if (highlighted_tiles_set_.is_empty()) {
86 cached_highlighted_tiles_.clear_and_shrink();
89 cached_highlighted_tiles_.reserve(highlighted_tiles_set_.size());
90 for (
const Tile &
tile : highlighted_tiles_set_) {
91 cached_highlighted_tiles_.append(
tile.rect);
95 did_tiles_change_ =
false;
98 return cached_highlighted_tiles_;
void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax)
Read Guarded memory(de)allocation.
ccl_global const KernelWorkTile * tile
uint64_t get_default_hash(const T &v)
unsigned __int64 uint64_t