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

Вниз

как исправить?   Найти похожие ветки 

 
Карлсон ©   (2003-04-29 20:41) [0]

в конференции "Игры"
есть пост некоего mad по поводу эффекта Fade на ассемблере.
он приводит код:

unit DDFade;

interface

uses DirectDraw;

procedure FadeIn (Target:IDirectDrawSurface7; Step:Byte);

implementation

procedure FadeIn (Target:IDirectDrawSurface7; Step:Byte);
//Fade - эффект в режиме 32bpp с ускорением MMX
var
Desc:TDDSurfaceDesc2;
ReAddress:Integer;
Mask:Cardinal;
begin
Step:=Lo (Step);
Mask:=Step+Step shl 8+Step shl 16;
Target.Lock (nil,Desc,nil,nil);
ReAddress:=Desc.lPitch-Desc.dwWidth*4;
asm
push edi
mov edi,Desc.lpSurface
mov ecx,Desc.dwHeight
movd mm1,Mask
@Line: push ecx
mov ecx,Desc.dwWidth
@Pixel: movd mm0,[edi]
subusb mm0,mm1 //addusb mm0,mm1 для FadeOut
movd eax,mm0
stosd
loop @Pixel

pop ecx
add edi,ReAddress
loop @Line

emms
pop edi
end;
Target.UnLock (nil);
end;

end.


в коде неправильна строка Target.Lock (nil,Desc,nil,nil);
а также компилятор ругается на subusb mm0,mm1
с ассемблером я не знаком, но очень хочется увидеть получающийся эффект, а также узнать, насколько эффективен данный код по сравнению с обычным (например вот тут http://delphimaster.net/view/9-1050737499/)
помогите пожалуйста!


 
NetBreaker666 ©   (2003-04-29 20:55) [1]

psubusb mm0,mm1
А вот с lock ничего поделать не могу :(



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

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

Наверх




Память: 0.46 MB
Время: 0.014 c
4-59978
Пушкина Александра
2003-03-18 14:40
2003.05.19
JPEG - изображение в качестве обоев для Windows


14-59893
Style
2003-04-25 08:46
2003.05.19
У кого нить есть пример алгоритма сортировки слиянием MergeSort!


6-59838
Карелин Артем
2003-03-20 16:17
2003.05.19
Как правильно делать многопоточный обмен данными?


3-59551
Dimaz-z
2003-04-25 21:20
2003.05.19
Как скопировать записи из одной базы данных в другую?


9-59524
MYSTERYO
2002-12-14 10:56
2003.05.19
Где спрайты качнуть из диабло или аллодов подскажите