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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: оптимизация вывода графики в Qt 4.0.1  (Прочитано 5794 раз)
ElderOrb
Гость
« : Сентябрь 06, 2005, 11:54 »

Мне нужно быстро выводить на экран, поворачивать и масштабировать  большое количество (порядка 800000) прямоугольников. В 3-ем Qt можно было рисовать в память и потом через bitBlt быстро отрисовывать всё на экране. В 4-ом Qt bitBlt исчез, т.к. поддержка двойной буфферизации была обещана каждому виджэту.

Однако я ощущаю довольно неприятные тормоза в связи с чем возникает резонный вопрос: что я делаю не так? Какие здесь могут быть хитрости?

К примеру, каким образом можно повысить производительность работы следующего куска кода?

Код:

void QPlate::draw(QPainter* p)
{
p->translate(m_radius, m_radius);
p->save();

p->setMatrix(matrix, true);
// set matrix

// draw initial placement
QRectF placementRect(-m_radius, -m_radius, 2*m_radius, 2*m_radius);
// p->drawRect(placementRect);


// draw plate
QPainterPath path;
path.moveTo(-m_x, m_h);
path.arcTo(placementRect, (270+m_alfa), (360-2*m_alfa));
path.closeSubpath();
p->setPen(Qt::red);
p->drawPath(path);
p->setClipPath(path);

// draw crystals
foreach(QPointer<QCrystal> crystal, crystalVector)
crystal->draw(p);

p->restore();
}
Записан
azazello
Гость
« Ответ #1 : Сентябрь 06, 2005, 12:59 »

такое количество на CPU не просчитаешь - используй OpenGL.
до 250fps на последних картах выдаст.
Записан
ElderOrb
Гость
« Ответ #2 : Сентябрь 06, 2005, 13:09 »

Я бы с радостью, да никогда не работал с openGL и совершенно не представляю как нарисовать там к примеру линию или прямоугольник... ж(
Записан
C.H.
Гость
« Ответ #3 : Сентябрь 06, 2005, 14:17 »

Читай на opengl.org.ru зашибическую книгу по  OpenGL. Даволно быстро поймешь как рисовать линию и треуголник и все что хочешь Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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