Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ Как оптимизировать SVG графику

Автор: igor_bogomolov 8.4.2010, 16:13

Уже не первый день мучаюсь со своим проектом, который использует SVG графику. Очень сильно тормозит отрисовка. Никак не найду способ оптимизировать. Перерыл вроде все доки и примеры, ничего толкового не нашел.
На сцене достаточно много элементов, но все они примитивные (линии, прямоугольники).
У кого есть опыт работы с SVG графикой, помогите советом, как можно оптимизировать скорость ее отрисовки?

Автор: Litkevich Yuriy 8.4.2010, 18:28

Цитата(igor_bogomolov @ 8.4.2010, 20:13) *
У кого есть опыт работы с SVG графикой, помогите советом, как можно оптимизировать скорость ее отрисовки?
я издевался над примером svgviewer, и помнется мне приемлемый результат получается при использовании буфера (QImage), в котором хранится растровая картинка. Перетаскивание и масштабирование осуществлял для растра, когда пользователь успокоится, в отдельном потоке рисовал на новом буфере, по окончанию рисования, старый удалял новый подсовывал

Автор: igor_bogomolov 8.4.2010, 20:18

Цитата(Litkevich Yuriy)
я издевался над примером svgviewer,
Ага, я тоже над ним издевался. Так же теперь использую отрисовку через QImage. Ресайз сцены стал немного менее дёрганный, но тем не менее, тормоза жуткие.

Из наблюдений: выяснили, что очень сильно на скорость отрисовки сказывается наличие текста и пунктирных линий. Так же, лучше избегать большого количества мелких элементов. У меня их, к сожалению, много. Удалял скрипя сердцем. При большом увеличении картинки, конечно, потеряли в качестве.

Не знаю, что еще можно придумать. Есть какие-нибудь альтернативы? Примеры OpenVG не компилятся, да и боязно как-то к opengl привязываться, могут быть проблемы на некоторых видео картах.

Автор: SABROG 9.4.2010, 10:03

На самом деле я удивлен, что в Qt нет конвертера SVG в QPainterPath. Возможно в массив таких классов, чтобы слои эмитировать.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)