Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.10.19;
Скачать: CL | DM;

Вниз

Как максимально оптимизировать(убыстрить) этот участок кода?   Найти похожие ветки 

 
ololo   (2012-02-04 17:45) [0]

      trgba = record
                          r,g,b,a:byte;
                   end;

   function q(backcl,forecl):trgba;
var factor:real;

begin
if forecl.a=0 then begin
 result:=backcl; exit;
end;
factor:=trunc(forecl.a/255*100)/100;  // здесь предпологается получить число вида 0,00
result.b:=trunc(backcl.b*(1-factor)+forecl.b*factor);
result.g:=trunc(backcl.g*(1-factor)+forecl.g*factor);
result.r:=trunc(backcl.r*(1-factor)+forecl.r*factor);
   end;


 
Sapersky   (2012-02-04 19:27) [1]

Убрать плавающую точку, убрать вызов функции для каждого пикселя (или инлайн), переписать на ассемблере с MMX.
В Медиа/Играх было довольно много веток про альфа и прочий блендинг.
http://www.delphimaster.ru/cgi-bin/forum.pl?n=7&search=Alpha
http://www.delphimaster.ru/cgi-bin/forum.pl?n=9&search=Alpha



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

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

Наверх




Память: 0.46 MB
Время: 0.004 c
15-1393955183
Tirael
2014-03-04 21:46
2014.10.19
Как получить массив (одномерный, но с неизвестным колвом) по OLE?


11-1255269208
Валера
2009-10-11 17:53
2014.10.19
Как создать PopupMenu для формы, не создавая главного меню ?


2-1383324995
Vvasja
2013-11-01 20:56
2014.10.19
Открыть папку и вфделить файл


15-1394378248
Дмитрий СС
2014-03-09 19:17
2014.10.19
Почему MS не подписывает все свои файлы?


15-1394310602
Юрий
2014-03-09 00:30
2014.10.19
С днем рождения ! 9 марта 2014 воскресенье