954,6 → 954,19 |
movq mm2,.dby |
movq mm3,.dey |
end if |
if Ext >= SSE2 |
mov eax,TEXTURE_SIZE |
movd xmm1,eax |
shufps xmm1,xmm1,0 |
push dword TEX_X |
push dword -TEX_X |
push dword 1 |
push dword -1 |
movups xmm2,[esp] |
movd xmm3,.bmap |
shufps xmm3,xmm3,0 |
end if |
|
;align 16 |
.draw: |
; if TEX = SHIFTING ;bump drawing only in shifting mode |
977,6 → 990,35 |
shl eax,TEX_SHIFT ;- |
add esi,eax ;- ; esi - current bump map index |
|
if Ext = SSE2 |
movd xmm0,esi |
shufps xmm0,xmm0,0 |
paddd xmm0,xmm2 |
pand xmm0,xmm1 |
paddd xmm0,xmm3 |
|
movd ebx,xmm0 |
movzx eax,byte[ebx] |
; |
; shufps xmm0,xmm0,11100001b |
psrldq xmm0,4 |
movd ebx,xmm0 |
movzx ebx,byte[ebx] |
sub eax,ebx |
; |
; shufps xmm0,xmm0,11111110b |
psrldq xmm0,4 |
movd ebx,xmm0 |
movzx edx, byte [ebx] |
; |
; shufps xmm0,xmm0,11111111b |
psrldq xmm0,4 |
movd ebx,xmm0 |
movzx ebx, byte [ebx] |
sub edx,ebx |
; |
else |
|
mov ebx,esi |
dec ebx |
and ebx,TEXTURE_SIZE |
1004,6 → 1046,7 |
movzx ebx,byte [ebx] |
|
sub edx,ebx |
end if |
; eax - horizontal sub |
; edx - vertical sub |
if Ext = NON |