wlroots/util
Manuel Stoeckl d180f4d9b3 util: add struct to track union of rectangles
The new struct rect_union is designed to make it easier to
efficiently accumulate a list of rectangles, and then operate
on an exact cover of their union.

Using rect_union, the times needed to added t rectangles, and then
compute their exact cover will be O(t), and something between Ω(t) and
O(t^2), depending on the rectangle arrangement. If one tries to do
the same by storing a pixman_region32_t and updating it with
pixman_region32_union_rect(), then total time needed would be between
Ω(t^2) and O(t^3), depending on the input. Without changing the public
API (data structure + rectangle ordering rules) for pixman_region32_t,
it is impossible to improve its worst case time.
2023-10-05 11:45:32 +00:00
..
addon.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
array.c util/array: unclutter 2022-08-29 13:48:42 +00:00
box.c util/box: transform empty boxes' origins 2023-05-24 08:55:15 +00:00
env.c util/env: make env_parse_switch() return a size_t 2022-12-06 16:14:18 +01:00
global.c util/global: fix memory leak on display destroy in wlr_global_destroy_safe 2022-06-07 18:18:11 +02:00
log.c util/log: fix buffer overflow 2023-06-29 15:58:56 +03:00
meson.build util: add struct to track union of rectangles 2023-10-05 11:45:32 +00:00
rect_union.c util: add struct to track union of rectangles 2023-10-05 11:45:32 +00:00
region.c util/region: forbid "shrinking" a region with wlr_region_expand() 2022-12-09 16:46:36 +00:00
set.c util/set: overhaul 2022-08-29 13:48:42 +00:00
shm.c util/shm: clear mode permission bits in allocate_shm_file_pair 2022-05-12 19:58:50 +02:00
time.c util: add timespec_to_nsec 2023-06-05 19:50:07 +00:00
token.c util/token: don't leak /dev/urandom fd to children 2021-11-14 12:30:03 +01:00