Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите оптимизировать не большой код [D6, XP]


Страницы:   1 2 3

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%, не более, при колоссальной затрате времени. В то время как пересмотр алгоритма и технологии может позволить ускорить в разы. Ибо все эти математические штучки вычисляются ну очень быстро, а картинки обычным образом сменяются ну очень медленно.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо