![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Посоветуйте!!!!!!!!!!!
>>DEATH<< © (2007-04-11 14:42:00)Вообшем есть tbitmap(битмапка 8х8) и tcanvas надо нарисовафон 80 на 60 из битмап..сделал перебором пикселей но рисуется долго а надо чтобы обновлялось несколько раз в секунду )))
ANTPro (2007-04-11 23:34:00) [21]> [11] @!!ex © (11.04.07 23:18)
Давай только не впутывай сюда тему VCL и KOL, а то тема на не одну сотню постов : )
> [10] ANTPro © (11.04.07 23:15)
> всегда
Возможно не всегда, но я видел пару реализаций на WinAPI и кода не использующего WinAPI. Дык вот WinAPI = 1x , NotWinAPI = 10x.
@!!ex (2007-04-11 23:18:00) [22]> [10] ANTPro © (11.04.07 23:15)
Ты наверно опечатался и имел ввиду VCL или KOL всгда медленнее собственной не кривой реализации на WinAPI. ;)
ANTPro (2007-04-11 23:15:00) [23]> [9] @!!ex © (11.04.07 22:18)
API будет всегда медленней собственной (Не кривой : ) реализации.
@!!ex (2007-04-11 22:18:00) [24]> поскольку в KOL метод Draw состоит всего из десятка строк
Всяко одна строка быстрее 10. ;)
homm (2007-04-11 21:53:00) [25]> А лучше пользоваться BitBlt,Transparent и StretchBlt. Всяко
> быстрее будет работать.
Хотел оспорить эуто утверждение, поскольку в KOL метод Draw состоит всего из десятка строк, но заглянул Graphics.pas и желание опровергать что либо пропало… Там даже BitBlt не используется для случая, когда размеры одинаковые, для всех случаев вызывается StretchBlt. Кашмар в общем :( Чистый API правда быстрее будет.
@!!ex (2007-04-11 19:19:00) [26]Двойная буфферизация - наше все.
А лучше пользоваться BitBlt,Transparent и StretchBlt. Всяко быстрее будет работать.
MBo (2007-04-11 17:56:00) [27]сделай битмап нужного размера, на него нарисуй все маленькие, потом уже его на Canvas рисуй
>>DEATH<< (2007-04-11 17:52:00) [28]мне надо через цикл т.к. на фон используется несколько картинок из array of tbitmap,,bitmap читается с ини файла по такому принципу
arr[map.ReadInteger(inttostr(x)+';'+inttostr(y),'bm',0)]
MBo (2007-04-11 17:35:00) [29]var
b: TBitmap;
begin
b := TBitmap.Create;
b.LoadFromFile('e:\5.bmp');
Canvas.Brush.Bitmap := b;
Canvas.FillRect(Rect(10, 100, 200, 200));
b.Free;
>>DEATH<< (2007-04-11 17:22:00) [30]быстрее стало но всеравно не одновременно рисуется может еще что посоветуете..
>>DEATH<< (2007-04-11 17:15:00) [31]
> Непонятно, почему перебором пикселов??
>
> Tcanvas.Draw
>
просто делфу не очень знаю..шас посмотрим что выйдет если делать так как ты сказал
MBo (2007-04-11 15:15:00) [32]Непонятно, почему перебором пикселов??
Tcanvas.Draw