Форум: "Потрепаться";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];
ВнизНужен пример работы с MMX Найти похожие ветки
← →
Nick-From (2003-03-24 12:01) [0]подскажите plz
← →
REA (2003-03-24 12:11) [1]Ну вот например
http://www.enlight.ru/faq3d/articles/63.htm
← →
NetBreaker666 (2003-03-24 12:21) [2]//Не знаю, будет ли под Дельфями работать - писал для TMT Pascal
Unit MMXColor;
Interface
Type MMXColor32=DWord;
Procedure MMXC_Add(Var X:DWord;Deltax:Dword);// X=X+Y
Function MMXC_Plus(X,Y:DWord):Dword; //=X+Y
Procedure MMXC_Sub(Var X:DWord;Deltax:Dword);// X=X-Y
Function MMXC_Minus(X,Y:DWord):Dword; //=X-Y
Procedure MMXC_Average1(var X:DWord;Y:DWord); //X=(X+Y)/2
Function MMXC_Average(X,Y:DWord):DWord; //=(X+Y)/2
{Procedure MMXC_PutTransparent1Add(Var X:DWord;Y:DWord;U,T:Word);
//X=(X*U)/T+(Y*(T-U))/T ; T>>U}
Implementation
{$MMX+}
Procedure MMXC_Add(Var X:DWord;Deltax:Dword);
Assembler;
Asm
mov ebx,X
MOVD MM1,[ebx]
MOVD MM2,Deltax
PADDUSB MM1,MM2
MOVD [ebx],MM1
EMMS
End;
Function MMXC_Plus(X,Y:Dword):DWord;
Assembler;
Asm
movd MM1,X
movd MM2,Y
PADDUSB MM1,MM2
movd eax,MM1
EMMS
End;
Procedure MMXC_Sub(Var X:DWord;Deltax:Dword);
Assembler;
Asm
mov ebx,X
MOVD MM1,[ebx]
MOVD MM2,Deltax
PSUBUSB MM1,MM2
MOVD [ebx],MM1
EMMS
End;
Function MMXC_Minus(X,Y:Dword):DWord;
Assembler;
Asm
movd MM1,X
movd MM2,Y
PSUBUSB MM1,MM2
movd eax,MM1
EMMS
End;
Procedure MMXC_Average1(var X:DWord;Y:DWord);
Assembler;
Asm
mov ebx,X
movd mm1,[ebx]
movd mm2,Y
PAVGUSB mm1,mm2
movd [ebx],mm1
EMMS
End;
Function MMXC_Average(X,Y:DWord):DWord;
Assembler;
Asm
movd mm1,X
movd mm2,y
PAVGUSB mm1,mm2
movd eax,mm1
EMMS
End;
End.
← →
Nick-from (2003-03-25 10:31) [3]tnx :)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c