?? dxrender.pas
字號(hào):
end;
end;
end;
16: begin
if Source.pitch=(1 shl Source.PitchBit) then
begin
asm
jmp @@EndCode
@@StartCode:
mov esi,dword ptr [offset _null]{}@@TexY: //TexY
mov edx,dword ptr [offset _null]{}@@TexX: //TexX
shr esi,$11{} @@YShift: // 16-Source.PitchBit
shr edx,16
and esi,$11111111{} @@MaskY: // Source.HeightMask shl Source.PitchBit
and edx,$11111111{} @@MaskX: // Source.WidthMask
movzx eax,word ptr [$11111111+esi+edx*2]
@@Bits: // Source.Bits
@@EndCode:
{$I DXRender.inc}
{ @@TexX }
mov eax,Axis; add eax,TDXRMachine_Axis.X
mov edx,offset @@TexX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@TexY }
mov eax,Axis; add eax,TDXRMachine_Axis.Y
mov edx,offset @@TexY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@YShift }
push ebx
mov eax,16
mov ebx,Source; sub eax,[ebx + TDXR_Surface.PitchBit]
pop ebx
mov edx,offset @@YShift-1
sub edx,offset @@StartCode
mov byte ptr [ecx+edx],al
{ @@MaskY }
push ecx
mov ecx,Source; mov ecx,[ecx + TDXR_Surface.PitchBit]
mov eax,Source; mov eax,[eax + TDXR_Surface.HeightMask]
shl eax,cl
pop ecx
mov edx,offset @@MaskY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskX }
mov eax,Source; mov eax,[eax + TDXR_Surface.WidthMask]
mov edx,offset @@MaskX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Bits }
mov eax,Source; mov eax,[eax + TDXR_Surface.Bits]
mov edx,offset @@Bits-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
end;
end else
if -Source.pitch=(1 shl Source.PitchBit) then
begin
asm
jmp @@EndCode
@@StartCode:
mov esi,dword ptr [offset _null]{}@@TexY: //TexY
mov edx,dword ptr [offset _null]{}@@TexX: //TexX
shr esi,$11{} @@YShift: // 16-Source.PitchBit
shr edx,16
and esi,$11111111{} @@MaskY: // Source.HeightMask shl Source.PitchBit
and edx,$11111111{} @@MaskX: // Source.WidthMask
neg esi
movzx eax,word ptr [$11111111+esi+edx*2]
@@Bits: // Source.Bits
@@EndCode:
{$I DXRender.inc}
{ @@TexX }
mov eax,Axis; add eax,TDXRMachine_Axis.X
mov edx,offset @@TexX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@TexY }
mov eax,Axis; add eax,TDXRMachine_Axis.Y
mov edx,offset @@TexY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@YShift }
push ebx
mov eax,16
mov ebx,Source; sub eax,[ebx + TDXR_Surface.PitchBit]
pop ebx
mov edx,offset @@YShift-1
sub edx,offset @@StartCode
mov byte ptr [ecx+edx],al
{ @@MaskY }
push ecx
mov ecx,Source; mov ecx,[ecx + TDXR_Surface.PitchBit]
mov eax,Source; mov eax,[eax + TDXR_Surface.HeightMask]
shl eax,cl
pop ecx
mov edx,offset @@MaskY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskX }
mov eax,Source; mov eax,[eax + TDXR_Surface.WidthMask]
mov edx,offset @@MaskX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Bits }
mov eax,Source; mov eax,[eax + TDXR_Surface.Bits]
mov edx,offset @@Bits-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
end;
end else
begin
asm
jmp @@EndCode
@@StartCode:
mov esi,dword ptr [offset _null]{}@@TexY: //TexY
mov edx,dword ptr [offset _null]{}@@TexX: //TexX
shr esi,16
shr edx,16
and esi,$11111111{} @@MaskY: // Source.HeightMask
and edx,$11111111{} @@MaskX: // Source.WidthMask
imul esi,$11111111{}@@Pitch: // Source.pitch
movzx eax,word ptr [esi+edx*2+$11111111]
@@Bits: // Source.Bits
@@EndCode:
{$I DXRender.inc}
{ @@TexX }
mov eax,Axis; add eax,TDXRMachine_Axis.X
mov edx,offset @@TexX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@TexY }
mov eax,Axis; add eax,TDXRMachine_Axis.Y
mov edx,offset @@TexY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskY }
mov eax,Source; mov eax,[eax + TDXR_Surface.HeightMask]
mov edx,offset @@MaskY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Pitch }
mov eax,Source; mov eax,[eax + TDXR_Surface.Pitch]
mov edx,offset @@Pitch-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskX }
mov eax,Source; mov eax,[eax + TDXR_Surface.WidthMask]
mov edx,offset @@MaskX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Bits }
mov eax,Source; mov eax,[eax + TDXR_Surface.Bits]
mov edx,offset @@Bits-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
end;
end;
end;
24: begin
asm
jmp @@EndCode
@@StartCode:
mov esi,dword ptr [offset _null]{}//TexY
@@TexY:
mov edx,dword ptr [offset _null]{}//TexX
@@TexX:
shr esi,16
shr edx,16
and esi,$11111111{} @@MaskY: // Source.HeightMask
and edx,$11111111{} @@MaskX: // Source.WidthMask
imul esi,$11111111{}@@Pitch: // Source.pitch
lea edx,[edx+edx*2+$11111111] // Source.Bits
@@Bits:
movzx eax,byte ptr [esi+edx+2]
shl eax,16
mov ax,word ptr [esi+edx]
@@EndCode:
{$I DXRender.inc}
{ @@TexX }
mov eax,Axis; add eax,TDXRMachine_Axis.X
mov edx,offset @@TexX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@TexY }
mov eax,Axis; add eax,TDXRMachine_Axis.Y
mov edx,offset @@TexY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskY }
mov eax,Source; mov eax,[eax + TDXR_Surface.HeightMask]
mov edx,offset @@MaskY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Pitch }
mov eax,Source; mov eax,[eax + TDXR_Surface.Pitch]
mov edx,offset @@Pitch-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskX }
mov eax,Source; mov eax,[eax + TDXR_Surface.WidthMask]
mov edx,offset @@MaskX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Bits }
mov eax,Source; mov eax,[eax + TDXR_Surface.Bits]
mov edx,offset @@Bits-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
end;
end;
32: begin
if Source.pitch=(1 shl Source.PitchBit) then
begin
asm
jmp @@EndCode
@@StartCode:
mov esi,dword ptr [offset _null]{}@@TexY: //TexY
mov edx,dword ptr [offset _null]{}@@TexX: //TexX
shr esi,$11{} @@YShift: // 16-Source.PitchBit
shr edx,16
and esi,$11111111{} @@MaskY: // Source.HeightMask shl Source.PitchBit
and edx,$11111111{} @@MaskX: // Source.WidthMask
mov eax,dword ptr [$11111111+esi+edx*4]
@@Bits: // Source.Bits
@@EndCode:
{$I DXRender.inc}
{ @@TexX }
mov eax,Axis; add eax,TDXRMachine_Axis.X
mov edx,offset @@TexX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@TexY }
mov eax,Axis; add eax,TDXRMachine_Axis.Y
mov edx,offset @@TexY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@YShift }
push ebx
mov eax,16
mov ebx,Source; sub eax,[ebx + TDXR_Surface.PitchBit]
pop ebx
mov edx,offset @@YShift-1
sub edx,offset @@StartCode
mov byte ptr [ecx+edx],al
{ @@MaskY }
push ecx
mov ecx,Source; mov ecx,[ecx + TDXR_Surface.PitchBit]
mov eax,Source; mov eax,[eax + TDXR_Surface.HeightMask]
shl eax,cl
pop ecx
mov edx,offset @@MaskY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskX }
mov eax,Source; mov eax,[eax + TDXR_Surface.WidthMask]
mov edx,offset @@MaskX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Bits }
mov eax,Source; mov eax,[eax + TDXR_Surface.Bits]
mov edx,offset @@Bits-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
end;
end else
if -Source.pitch=(1 shl Source.PitchBit) then
begin
asm
jmp @@EndCode
@@StartCode:
mov esi,dword ptr [offset _null]{}@@TexY: //TexY
mov edx,dword ptr [offset _null]{}@@TexX: //TexX
shr esi,$11{} @@YShift: // 16-Source.PitchBit
shr edx,16
and esi,$11111111{} @@MaskY: // Source.HeightMask shl Source.PitchBit
and edx,$11111111{} @@MaskX: // Source.WidthMask
neg esi
mov eax,dword ptr [$11111111+esi+edx*4]
@@Bits: // Source.Bits
@@EndCode:
{$I DXRender.inc}
{ @@TexX }
mov eax,Axis; add eax,TDXRMachine_Axis.X
mov edx,offset @@TexX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@TexY }
mov eax,Axis; add eax,TDXRMachine_Axis.Y
mov edx,offset @@TexY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@YShift }
push ebx
mov eax,16
mov ebx,Source; sub eax,[ebx + TDXR_Surface.PitchBit]
pop ebx
mov edx,offset @@YShift-1
sub edx,offset @@StartCode
mov byte ptr [ecx+edx],al
{ @@MaskY }
push ecx
mov ecx,Source; mov ecx,[ecx + TDXR_Surface.PitchBit]
mov eax,Source; mov eax,[eax + TDXR_Surface.HeightMask]
shl eax,cl
pop ecx
mov edx,offset @@MaskY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskX }
mov eax,Source; mov eax,[eax + TDXR_Surface.WidthMask]
mov edx,offset @@MaskX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Bits }
mov eax,Source; mov eax,[eax + TDXR_Surface.Bits]
mov edx,offset @@Bits-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
end;
end else
begin
asm
jmp @@EndCode
@@StartCode:
mov esi,dword ptr [offset _null]{}@@TexY: //TexY
mov edx,dword ptr [offset _null]{}@@TexX: //TexX
shr esi,16
shr edx,16
and esi,$11111111{} @@MaskY: // Source.HeightMask
and edx,$11111111{} @@MaskX: // Source.WidthMask
imul esi,$11111111{}@@Pitch: // Source.pitch
mov eax,dword ptr [esi+edx*4+$11111111]
@@Bits: // Source.Bits
@@EndCode:
{$I DXRender.inc}
{ @@TexX }
mov eax,Axis; add eax,TDXRMachine_Axis.X
mov edx,offset @@TexX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@TexY }
mov eax,Axis; add eax,TDXRMachine_Axis.Y
mov edx,offset @@TexY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskY }
mov eax,Source; mov eax,[eax + TDXR_Surface.HeightMask]
mov edx,offset @@MaskY-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Pitch }
mov eax,Source; mov eax,[eax + TDXR_Surface.Pitch]
mov edx,offset @@Pitch-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@MaskX }
mov eax,Source; mov eax,[eax + TDXR_Surface.WidthMask]
mov edx,offset @@MaskX-4
sub edx,offset @@StartCode
mov dword ptr [ecx+edx],eax
{ @@Bits }
mov eax,Source; mov eax,[eax + TD
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -