Эквивалент областей windows gdi в linux - PullRequest
1 голос
/ 02 июня 2011

Я иногда использую области Windows GDI для рисования графики и аннулирования / проверки. Например, программа http://www.maxerist.net/main/soft-for-win/tubicus (oss) была создана с использованием только областей (без растровых изображений или закадрового буфера). Рисование было выполнено с помощью FillRgn и FrameRgn, аннулирование и рисование с помощью InvalidateRgn и CombineRgn, каждая ячейка (см. Скриншот) представляет собой простой регион, созданный с помощью CreateEllipticRgn, CreatePolygonRgn и CombineRgn.

У меня есть планы перенести его на Linux. Как я понял, в Linux много графических библиотек. Есть ли те, которые поддерживают Windows-подобные регионы?

Спасибо

Ответы [ 2 ]

1 голос
/ 02 июня 2011

Вы хотите использовать систему X Window, также известную как X11, в качестве графической платформы.Его клиентская библиотека называется Xlib.Платформа поддерживает многоугольные области.

Существует множество библиотек, написанных поверх Xlib (Gtk, Qt, wxWindows и других), но вы всегда можете использовать низкоуровневый API Xlib напрямую с любой из них.Qt даже поддерживает эллиптические области.Я не знаю деталей, но я думаю, что это реализовано поверх полигональных областей X11.

1 голос
/ 02 июня 2011

Qt имеет много опций для рисования, и использование QPainter с QPainterPath объектами может вам подойти. (Есть примеры в распределении Qt). Вы можете комбинировать (добавлять / пересекать / подкасаться) пути.

QGraphicsView framework также является хорошей альтернативой.

...