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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QPainter drawText и потребление памяти.  (Прочитано 8236 раз)
Ubuntu_linux
Гость
« : Октябрь 30, 2011, 16:47 »

На QImage пишу текст пейнтером, где-то на страничку А4 текста память утекает на 1 МБ, что делать?
« Последнее редактирование: Ноябрь 14, 2011, 20:52 от Пантер » Записан
andrew.k
Гость
« Ответ #1 : Октябрь 30, 2011, 19:01 »

что-то у тебя все с памятью проблемы)
Записан
Ubuntu_linux
Гость
« Ответ #2 : Октябрь 30, 2011, 22:51 »

что-то у тебя все с памятью проблемы)
На мобильных платформах каждый мегабайт на счету!

Меняю размер шрифта QFont  в пейнтера и меняется результат в памяти, причем чем больше шрифт, тем меньше памяти. Непонимающий
Что делать непойму, может во всем виноват QImage?
Записан
andrew.k
Гость
« Ответ #3 : Октябрь 30, 2011, 23:24 »

Может это нормально?
Интуитивно кажется, что да. Может шрифтовые литералы перед отрисовкой в битмапы преобразуются?
Записан
Ubuntu_linux
Гость
« Ответ #4 : Октябрь 31, 2011, 00:10 »

так а куда память уходит?
« Последнее редактирование: Октябрь 31, 2011, 01:29 от Ubuntu_linux » Записан
andrew.k
Гость
« Ответ #5 : Октябрь 31, 2011, 00:21 »

ну вообще да.
Остается смотреть исходники и выяснять.
Записан
Ubuntu_linux
Гость
« Ответ #6 : Октябрь 31, 2011, 01:33 »

Вот такой баг нашел по этому поводу: https://bugreports.qt.nokia.com/browse/QTBUG-21222
Записан
andrew.k
Гость
« Ответ #7 : Октябрь 31, 2011, 02:05 »

Ну вот следовало ожидать.
А у тебя какая версия? Там кто-то пишет, что в 4.7.3 бага нет.
Записан
Ubuntu_linux
Гость
« Ответ #8 : Октябрь 31, 2011, 02:11 »

Ну вот следовало ожидать.
А у тебя какая версия? Там кто-то пишет, что в 4.7.3 бага нет.
4.7.4 Грустный
Качаю 4.7.3 , посмотрю как будет на старой версии работать.
« Последнее редактирование: Октябрь 31, 2011, 02:14 от Ubuntu_linux » Записан
Ubuntu_linux
Гость
« Ответ #9 : Октябрь 31, 2011, 02:57 »

Все по старому Грустный даже хуже.
Записан
andrew.k
Гость
« Ответ #10 : Октябрь 31, 2011, 03:12 »

Может попробовать другой из нескольких вариантов drawText?
Хотя скорее всего все подобным образом должны работать.
Записан
Ubuntu_linux
Гость
« Ответ #11 : Октябрь 31, 2011, 13:30 »

А какая есть альтернатива? может каким-то другим образом...
Записан
andrew.k
Гость
« Ответ #12 : Октябрь 31, 2011, 13:40 »

Я имел ввиду использовать один из вариантов drawText. Там их штук 8.
Но шанс на успех 0,4%.

Если бы у меня было время заниматься. И если это достаточно важно для проекта, то я бы взял исходник QPainter.
И стал бы искать ошибку. И потом бы использовал свой исправленный QPainter.
Странно на самом деле. Довольно явная бага же. Почему ее до сих пор не поправили?
А может это и не бага совсем, может просто это позже произойдет?

Еще такой эксперимент, выполнить эту функцию использующую drawText 10 раз к примеру. Или еще больше.
Если есть утечка, то 1 метр превратится в соответствующее количество.
А если так и останется 1 метр, то может так и надо? Может там кешируется что-нибудь?
Записан
_OLEGator_
Гость
« Ответ #13 : Октябрь 31, 2011, 13:57 »

Попробуй так:
Код
C++ (Qt)
QPainterPath::addText();
QPainter::fillPath();
QPainter::drawPath();

Не по теме: таким способом текст рисуется быстрее
Записан
Ubuntu_linux
Гость
« Ответ #14 : Октябрь 31, 2011, 14:48 »

Попробуй так:
Код
C++ (Qt)
QPainterPath::addText();
QPainter::fillPath();
QPainter::drawPath();

Не по теме: таким способом текст рисуется быстрее
Попробовал,  таким методом рисует в 2-3 раза меднение. А результат в  памяти такой же...
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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