Вниз
Скачать: CL | DM;

Быстро выполнение FillRect   Найти похожие ветки 

 
Алик   (2006-03-06 18:50) [0]

Добрый день,

Подскажите плиз как наиболее быстро выполить процедуру FillRect, при прорисовке прямоугольника на TCanvas.

Требуется зарисовать мозаику из большого количества квадратиков на TCanvas.


 
MBo ©   (2006-03-06 18:56) [1]

FillRect выполняется быстро.


 
Алик   (2006-03-06 19:05) [2]

Дело в том, что TCanvas у меня находится в PaintBox, а PaintBox в TScrollBox.
И когда я прокручиваю полосы прокрутки ScrollBox моя мозаика из нескольких тысячей квадратиков заметно тормозит при прорисовке методом  FillRect.

Можно ли тут что-нибудь сделать? Может быть как то через DirectDraw?


 
wicked ©   (2006-03-06 20:04) [3]


> Можно ли тут что-нибудь сделать? Может быть как то через
> DirectDraw?
а немного подумать?.... забить "квадратиками" какой-нибудь Bitmap и выводить его скопом, когда нужно.... еще более дешевое и сердитое решение - поставить TImage вместо PaintBox-а....


 
Алик   (2006-03-06 21:03) [4]

Да этот вариант хороший я рисовал Bitmap а затем копировал на Canvas на событие OnPaint. Скорость была хорошая, прорисовка совершенно не тормозила.

Но у меня возникла другя проблема, размер моего Bitmap мог доходить до десятков тысяч пиксел в длину и ширину, а если брать 8 или 16 битную палитру, то вся оперативка а следом проц уходили в глубокий нокаут на секунд 20 - 30. То есть потребляется порядка 100 мегабайт оперативки.
К тому же иногда приходится открывать несколько подобных карт одновременно.

Поэтому я отказался от Bitmapa а впоролся в скорость прорисовки моих квадратиков.

Где выигрываешь в другом проигрываешь и наоборот.

Так что мне можно сделать????


 
wicked ©   (2006-03-06 21:14) [5]


> Где выигрываешь в другом проигрываешь и наоборот.
>
> Так что мне можно сделать????
определять, какие квадратики будет видно, и рисовать только их....
просто подозреваю, что сейчас это не так и рисуются все....


 
Алик   (2006-03-12 15:11) [6]

А как это сделать, чтобы рисовалась только видимая часть Canvasa при передвижении рычажка ScrollBox ?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
6-1136699997
ezorcist
2006-01-08 08:59
2006.04.16
Запретить показывать ошибку


3-1140097656
John_Doe
2006-02-16 16:47
2006.04.16
Создать таблицу(ADO) в run-time е


15-1142943346
Геро
2006-03-21 15:15
2006.04.16
Российские сотовые телефоны


8-1131604070
plotn
2005-11-10 09:27
2006.04.16
Как взять информацию из тэгов ogg файлов?


1-1142236876
kyn66
2006-03-13 11:01
2006.04.16
Как напрвить действие на группу элементов?




   Наверх