Регион (X11)
Область экрана, хранимая как список непересекающихся прямоугольников, — основа того, как X11 перерисовывает только нужное.
Регион создают пустым через XCreateRegion или из многоугольника, затем наращивают: XUnionRectWithRegion, пересечение, разность, XOR. Внутри это список прямоугольников, разложенных по горизонтальным полосам, поэтому объединение тысячи перекрывающихся блоков превращается в одну компактную фигуру, где ничего не учтено дважды. Классический случай — обработка Expose: сервер присылает по событию на каждый открывшийся кусок окна, клиент складывает прямоугольники в регион, пока счётчик не дойдёт до нуля, ставит регион маской отсечения своего графического контекста через XSetRegion и перерисовывает ровно один раз.
Та же структура, miRegion, есть и на стороне сервера, и на ней говорят расширения Shape, Damage и XFIXES: форма окна — регион, повреждённая область — регион. Код оказался настолько живучим, что pixman, растеризатор под Cairo, несёт региональный код сервера дальше — с копирайтом DEC 1987 года в шапке файла.