Я написал приложение, которое использует Cairo для рисования объектов на экране (точнее, на Gtk::DrawingArea). Приходится часто все перерисовывать. Оказывается, несмотря на то, что рисунки очень простые, X-сервер использует МНОГО ресурсов ЦП при перерисовке, а приложения работают ужасно медленно. Есть ли способ ускорить это? Или, может быть, мне не следует использовать DrawingArea и какой-то другой виджет?
То, что я рисую, представляет собой набор прямоугольников, которые пользователь может перемещать, перетаскивая их мышью. Весь рисунок выполняется с помощью on_expose_event, но когда указатель мыши перемещается (с нажатой кнопкой), я вызываю queue_draw() для обновления рисунка.