Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.05.01;
Скачать: [xml.tar.bz2];

Вниз

Помогите оптимизировать не большой код   Найти похожие ветки 

 
RWolf ©   (2011-01-26 14:55) [40]


> Slym ©   (26.01.11 14:29) [38]
> 2. регистры 64 битные т.е. в пакет по 4 пикселя 16бит, 3 24бит и 2 32бит.


тоже верно :) 510 fps.


 
novai   (2011-01-26 14:56) [41]

я смотрю, вы тут фпс"ами меряетесь?)


 
Slym ©   (2011-01-26 15:00) [42]

24 битный вариант с развернутым циклом
procedure Fade24(Bitmap:TBitmap;const Value:integer);
label ll;
var
 y,lp:integer;
 p:pointer;
begin
 if Bitmap.PixelFormat<>pf24bit then exit;
 asm
   mov eax,Value
   and eax, $ff
   movd mm0,eax
   punpcklbw mm0, mm0
 punpcklwd mm0, mm0
 punpckldq mm0, mm0
 end;
 for y:= 0 to Bitmap.Height - 1 do
 begin
   p:=Bitmap.ScanLine[y];
   lp:=Bitmap.Width div 16;// 8*6 в байтах = 16 в пикселях
   asm
     push ecx
     push edi
     mov ecx,lp
     mov edi,p
   ll:
     movq mm1,[edi]
     movq mm2,[edi+8]
     movq mm3,[edi+16]
     movq mm4,[edi+24]
     movq mm5,[edi+32]
     movq mm6,[edi+40]

     psubusb mm1,mm0
     psubusb mm2,mm0
     psubusb mm3,mm0
     psubusb mm4,mm0
     psubusb mm5,mm0
     psubusb mm6,mm0

     movq [edi]   ,mm1
     movq [edi+8] ,mm2
     movq [edi+16],mm3
     movq [edi+24],mm4
     movq [edi+32],mm5
     movq [edi+40],mm6

     add edi,48
     loop ll
     pop edi
     pop ecx
   end;
 end;
 asm
   EMMS
 end;
end;


 
Slym ©   (2011-01-26 15:05) [43]

все мои варианты без обработки хвостов!
вариант Slym ©   (26.01.11 15:00) [42] выравнивается на 16 пикселей, т.е. хвостовые пиксели (Bitmap.Width mod 16) нужно допиливать вручную



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

Форум: "Начинающим";
Текущий архив: 2011.05.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.005 c
15-1295126991
Юрий
2011-01-16 00:29
2011.05.01
С днем рождения ! 16 января 2011 воскресенье


2-1295929098
lemparius
2011-01-25 07:18
2011.05.01
Интересная задача с PageControl


15-1294867793
Юрий
2011-01-13 00:29
2011.05.01
С днем рождения ! 13 января 2011 четверг


2-1295943783
dmitry1208197320
2011-01-25 11:23
2011.05.01
Где можно найти описание класса TXMLDocument


2-1296122380
ZV
2011-01-27 12:59
2011.05.01
ServerSocket , напрягает отправка ответа клиенту по номеру конне





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский