Название: Ускорение сглаживания при рисовке линий. Отправлено: alexman от Июль 20, 2010, 22:06 Есть наследник от QGraphicsItem, в котором переопределяю функцию
Код: void QGraphicsItem::paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ) Внутри рисую много линий Код: ...painter->drawLines( ... );... Проблема заключается в том, что если включить сглаживание Код: painter->setRenderHint( QPainter::Antialiasing ); P.S. Как использовать QPainter::HighQualityAntialiasing? Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: GreatSnake от Июль 21, 2010, 09:59 Для начала укажите платформу и версию Qt.
Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: alexman от Июль 21, 2010, 14:37 qt 3.6.2
Windows XP В качестве viewport для QGraphicsView установлен QGLWidget. Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: GreatSnake от Июль 21, 2010, 14:44 Цитировать qt 3.6.2 Наверное всё-таки 4.6.2?Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: GreatSnake от Июль 21, 2010, 16:11 Помнится здесь (http://www.prog.org.ru/topic_11954_0.html) обсуждали аналогичные тормоза при использовании QPainter::drawPolyline().
Потом выяснилось, что тролли подтвердили проблему: Цитировать Short of replacing the Freetype rasterizer or add some hacks that will only work in certain edge cases there's not much that can be done. I recommend that you instead draw the polyline as individual line segments using QPainter::drawLine, then the stroked outline won't be treated as one big complex path and performance should be way better. Вполне возможно, что корни проблем одни и те же.Попробуйте рисовать линии отдельно. Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: alexman от Июль 21, 2010, 16:25 Цитировать qt 3.6.2 Наверное всё-таки 4.6.2?Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: alexman от Июль 21, 2010, 16:37 Помнится здесь (http://www.prog.org.ru/topic_11954_0.html) обсуждали аналогичные тормоза при использовании QPainter::drawPolyline(). Разницы не заметил! Тормозов нет, если отключить сглаживание! Потом выяснилось, что тролли подтвердили проблему: Цитировать Short of replacing the Freetype rasterizer or add some hacks that will only work in certain edge cases there's not much that can be done. I recommend that you instead draw the polyline as individual line segments using QPainter::drawLine, then the stroked outline won't be treated as one big complex path and performance should be way better. Вполне возможно, что корни проблем одни и те же.Попробуйте рисовать линии отдельно. Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: GreatSnake от Июль 21, 2010, 16:40 Цитировать Разницы не заметил! Разницы в чём?Цитировать Тормозов нет, если отключить сглаживание! Со сглаживанием в любом случае будет медленнее, чем без него.Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: alexman от Июль 21, 2010, 17:28 Цитировать Разницы не заметил! Разницы в чём?Название: Re: Ускорение сглаживания при рисовке линий. Отправлено: GreatSnake от Июль 21, 2010, 17:38 т.е. после использования drawLine() вместо drawLines() абсолютно такие же тормоза?
|