![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите оптимизировать не большой код [D6, XP]
novai © (2011-01-26 07:08:00)Можно ли оптимизировать данный код:
...
P: pRGBLine;
..
for yy:= 0 to Height - 1 do
begin
p:= Scanline[yy];
for xx := 0 to Width - 1 do
begin
p^[xx].rgbtRed:= p^[xx].rgbtRed - muldiv(p^[xx].rgbtRed,fade,100);
p^[xx].rgbtGreen:= p^[xx].rgbtGreen - muldiv(p^[xx].rgbtGreen,fade,100);
p^[xx].rgbtBlue:= p^[xx].rgbtBlue - muldiv(p^[xx].rgbtBlue,fade,100);
end;
end;
чтобы не за 3 такта а за один?
как то так:
p^[xx]:= p^[xx] - (p^[xx] * fade div 100);
novai (2011-01-26 07:40:00) [41]
> у меня железные 64 фпс...
DrawTimer:= TTimer.Create(nil);
DrawTimer.Enabled:= False;
DrawTimer.Interval:= 10;
DrawTimer.OnTimer:= OnDrawTimer;
novai (2011-01-26 07:39:00) [42]это алгоритм FadeIn FadeOut...
работаем с TPngObject.
можно что-то сделать? тк при подготовке и отрисовке:
// отрисуем сцену на DrawCanvas (Form.canvas)
BitBlt(
DrawCanvas.Handle,
0, 0,
Width, Height + PanelHeight,
Canvas.Handle,
0, 0,
SRCCOPY);
у меня железные 64 фпс...
KilkennyCat (2011-01-26 07:18:00) [43]может быть и можно. но в одной книжке было написано, что вылизывание такого рода даст прирост скорости на 10%, не более, при колоссальной затрате времени. В то время как пересмотр алгоритма и технологии может позволить ускорить в разы. Ибо все эти математические штучки вычисляются ну очень быстро, а картинки обычным образом сменяются ну очень медленно.