Nil Satis Nisi Optimum - Logoszféra fórum

üzenetek

hozzászólások


P.H.
(senior tag)

A vonalakhoz tartozó koordináták kiszámolása (a gráf sajátosságai szerint) és a látható pontok összegyűjtése:

push eax
or ebp,-1
mov edx,00000001h
xorps xmm2,xmm2
{@4F} mov ebx,[source]
cvtsi2ss xmm1,edx
movlps xmm2,[eax+TMAP.NX]
xorps xmm3,xmm3
{@60} mov esi,[destination]
divss xmm1,[eax+TMAP.ZOOM]
xorps xmm0,xmm0
mov edi,[ebx+04h]
{@70} cvtpi2ps xmm3,[eax+TMAP.BITMAP+TBITMAPFILE.XSIZE]
shufps xmm1,xmm1,10100000b
jmp @storecoor
{ x6 } add eax,00h; add edx,00h
{ x1 } nop
@SSEcoor:
{@81}{0}movlps xmm0,[edi+HEADER.X]
{1}movzx eax,byte ptr [edi+HEADER.FIELD0]
{2}movaps xmm5,xmm1
{0}movzx ebx,word ptr [edi+HEADER.SIZE]
{@90}{1}mulps xmm5,xmm0
{2}movaps xmm4,xmm3
{0}subps xmm5,xmm2
{1}add eax,eax
{2}sub ebx,01h
{0}movlhps xmm4,xmm5
{@A1}{1}movsx ebp,al
{2}or ebp,ebx
{0}cvtps2pi mm0,xmm5
{1}sar ebp,1Fh
{2}cmp byte ptr [edi+HEADER.FIELD1],01h
{@B0}{0}subps xmm4,xmm5
{1}mov [esi],edi
{2}movmskps edx,xmm4
{0}sbb ebp,edx
{1}movq [edi+HEADER.XCOOR],mm0
{2}sar ebp,1Fh
{@C0}{0}rcr al,01h
{1}mov [edi+HEADER.FIELD0],al
{2}lea edi,[edi+ebx+HEADERSIZE+01h]
@storecoor:
{0}lea esi,[esi+ebp*04h+04h]
{1}sub ecx,01h
{@D0}{2}jnle @SSEcoor
pop eax
xor ecx,ecx
emms
mov [esi],ecx

üzenetek