wxGraphicsContext ужасно медленный в Windows - PullRequest
3 голосов
/ 18 ноября 2009

Я реализовал плоттер, используя wxGraphicsContext. Разработка была выполнена с использованием wxGTK, и графика была очень быстрой.

Затем я перешел на Windows (XP) с помощью wxWidgets 2.9.0. И тот же код очень медленно. Для рендеринга кадра требуется около 350 мс. Поскольку пользователь может перемещать плоттер с помощью мыши для навигации, он чувствует себя очень вяло с такой медленной скоростью обновления.

Я пытался реализовать некоторые части с помощью wxDC и сравнивал разницу. С wxDC код работает примерно в 100 раз быстрее.

Насколько я знаю, и Cairo, и GDI + реализованы в программном обеспечении на данный момент, поэтому нет реальной причины, по которой Cairo должен быть намного быстрее, чем GDI +.

Я что-то не так делаю? Или реализация GDI + просто не соответствует Каиру?

Одна небольшая заметка: сейчас я рендеринг в wxBitmap, с wxGraphicsContext, созданным из wxMemoryDC. Это позволяет избежать мерцания в XP, поскольку двойная буферизация там не работает.

1 Ответ

0 голосов
/ 18 ноября 2009

Выдержка из домашней страницы в Каире :

Cairo разработан для обеспечения согласованного вывода на всех выходных носителях, используя преимущества аппаратного ускорения дисплея, когда оно доступно (например, через расширение X Render Extension).

...