Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 30.09.2011, 09:13
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

1. Есть QGraphicsView. В качестве вьюпорта установлен QGLWidget.2. Есть наследник от QGraphicsItem c переопределенным методом paint. В связи с багом в Qt реализовал свое кеширование айтема. Примерный код:Код:void paint( QPainter* painter, const QStyleOptionGraphicsItem*, QWidget* = 0 ){ const QRectF& rect = painter->worldTransform().inverted().mapRect( QRectF( painter->viewport() ) ); if ( changed( rect ) ) { //Если текущая область изменилась, то перерисовываем кеш _cache - внутреннее поле класс, QPixmap _cache. _cache = QPixmap( painter->viewport().size() ); _cache.fill( QColor( 0, 0, 0, 0 ) ); //Рисовка в кеш. } //Отображение кеша: painter->setWorldMatrixEnabled( false ); painter->drawPixmap( 0, 0, _cache ); painter->setWorldMatrixEnabled( true );}Так вот под Windows XP для некоторых моделей NVIDIA-карт медленно работает painter->drawPixmap( 0, 0, _cache ); Проявил следующим образом: открыл notepad и поводил по окну - перерисовка тормозит. Как можно данный косяк оптимизировать? Заранее спасибо!
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
Медленно работает интернет Guest Продолжение старого архива 0 30.09.2011 16:54
Медленно работает Joomla на vds Guest Продолжение нового архива 0 29.09.2011 03:18
Медленно работает сайт Guest Новые вопросы и ответы 3 0 27.09.2011 16:57
HDD WD6400AAKS медленно работает Guest Продолжение архива вопросов 0 04.09.2011 18:00
Медленно работает HDD Guest Продолжение архива вопросов 0 04.09.2011 17:05



© www.otvetnemail.ru - Форум вопросов и ответов.