Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: 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 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.097 c
15-1142848842
Nsk3D
2006-03-20 13:00
2006.04.16
*.ntf


2-1144004837
dimodim
2006-04-02 23:07
2006.04.16
Mailslotный чат


15-1142018122
Костя
2006-03-10 22:15
2006.04.16
Архивация


15-1143189547
Alarm
2006-03-24 11:39
2006.04.16
Ограничение на количество подключений


2-1143613019
Lera
2006-03-29 10:16
2006.04.16
cообщения windows