Russian Qt Forum
Ноябрь 24, 2024, 03:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Тормоза в polyline  (Прочитано 21186 раз)
aydef
Гость
« Ответ #30 : Июль 30, 2010, 23:09 »

это код из Qwt, который все проясняет.

static inline void drawPolyline(QPainter *painter,
    const QPointF *points, int pointCount, bool polylineSplitting)
{
    bool doSplit = false;
    if ( polylineSplitting )
    {
        const QPaintEngine *pe = painter->paintEngine();
        if ( pe && pe->type() == QPaintEngine::Raster )
        {
            /*
                The raster paint engine seems to use some algo with O(n*n).
                ( Qt 4.3 is better than Qt 4.2, but remains unacceptable)
                To work around this problem, we have to split the polygon into
                smaller pieces.
             */
            doSplit = true;
        }
    }

    if ( doSplit )
    {
        const int splitSize = 20;
        for ( int i = 0; i < pointCount; i += splitSize )
        {
            const int n = qMin(splitSize + 1, pointCount - i);
            painter->drawPolyline(points + i, n);
        }
    }
    else
        painter->drawPolyline(points, pointCount);
}
 
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #31 : Август 02, 2010, 20:51 »

это код из Qwt, который все проясняет.
Что именно он проясняет? Что drawPolyline тормозит? Так это понятно было с самого начала.
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.1 секунд. Запросов: 23.