Я реализовал плоттер, используя wxGraphicsContext. Разработка была выполнена с использованием wxGTK, и графика была очень быстрой.
Затем я перешел на Windows (XP) с помощью wxWidgets 2.9.0. И тот же код очень медленно. Для рендеринга кадра требуется около 350 мс. Поскольку пользователь может перемещать плоттер с помощью мыши для навигации, он чувствует себя очень вяло с такой медленной скоростью обновления.
Я пытался реализовать некоторые части с помощью wxDC и сравнивал разницу. С wxDC код работает примерно в 100 раз быстрее.
Насколько я знаю, и Cairo, и GDI + реализованы в программном обеспечении на данный момент, поэтому нет реальной причины, по которой Cairo должен быть намного быстрее, чем GDI +.
Я что-то не так делаю? Или реализация GDI + просто не соответствует Каиру?
Одна небольшая заметка: сейчас я рендеринг в wxBitmap, с wxGraphicsContext, созданным из wxMemoryDC. Это позволяет избежать мерцания в XP, поскольку двойная буферизация там не работает.