Как выглядит производительность Mono.Cairo? - PullRequest
2 голосов
/ 23 октября 2010

Я думал об использовании Mono.Cairo в качестве основы для легкой системы САПР. Но не был уверен, на что было похоже представление. CAD системы производят много перерисовок и может содержать много данных с тонной текста.

Если не Каир, тогда приветствуются любые другие предложения. Я хочу, чтобы приложение работало в Windows, Mac и Linux.

1 Ответ

3 голосов
/ 23 октября 2010

Это действительно зависит от использования, но IMO - лучший выбор для кроссплатформенного API рисования.

На практике люди без проблем используют Cairo для операций, чувствительных к производительности. MonoDevelop использует Cairo для своего текстового редактора, а Banshee использует Cairo для набора пользовательских виджетов, включая представление списка. Я считаю, что инструментарий GTK и плагин Moonlight для браузера используют Cairo для всех своих рисунков.

Теоретически Cairo может быть аппаратно ускорен при поддержке OpenGL, хотя я не знаю текущего состояния этого бэкэнда. Хорошим преимуществом Cairo является то, что он имеет приличный PDF-бэкэнд, что также полезно для печати. ​​

Независимо от того, что вы используете для рисования, вам придется выполнять различные виды кэширования и другие оптимизации. Например, в текстовом редакторе MonoDevelop мы кэшируем видимые текстовые макеты Pango, поскольку выкладывание текста намного дороже, чем его отображение. А прокрутка работает гораздо более плавно, если вы стираете часть существующей поверхности и перерисовываете только что открытую область. И некоторые операции (такие как градиенты) выполняются намного медленнее, чем другие.

...