IT-словарь › Инфраструктура › Регион (X11)

Регион (X11)

Инфраструктура Svenska → Обновлено: 2026-10-20

Область экрана, хранимая как список непересекающихся прямоугольников, — основа того, как X11 перерисовывает только нужное.

Регион создают пустым через XCreateRegion или из многоугольника, затем наращивают: XUnionRectWithRegion, пересечение, разность, XOR. Внутри это список прямоугольников, разложенных по горизонтальным полосам, поэтому объединение тысячи перекрывающихся блоков превращается в одну компактную фигуру, где ничего не учтено дважды. Классический случай — обработка Expose: сервер присылает по событию на каждый открывшийся кусок окна, клиент складывает прямоугольники в регион, пока счётчик не дойдёт до нуля, ставит регион маской отсечения своего графического контекста через XSetRegion и перерисовывает ровно один раз.

Та же структура, miRegion, есть и на стороне сервера, и на ней говорят расширения Shape, Damage и XFIXES: форма окна — регион, повреждённая область — регион. Код оказался настолько живучим, что pixman, растеризатор под Cairo, несёт региональный код сервера дальше — с копирайтом DEC 1987 года в шапке файла.

← Назад к словарю