1080,11 → 1080,19 |
jle @f |
xchg ebx,esi ;¥á«¨ x0 > x1 â® ¬¥ï¥¬ ¬¥áâ ¬¨ x0 ¨ x1 |
@@: |
bt ebx,31 |
jae @f |
;¥á«¨ ª®®à¤¨ â x0 ®âà¨æ ⥫ì ï |
xor ebx,ebx |
@@: |
cmp esi,buf2d_w |
jl @f |
;¥á«¨ ª®®à¤¨ â x0 ¡®«ìè¥ è¨à¨ë ¡ãä¥à |
mov esi,buf2d_w |
;dec esi |
@@: |
cmp ebx,esi |
jge .end24 ;¥á«¨ x0 >= x1 ¬®¦¥â ¢®§¨ªãâì ª®£¤ ®¡¥ ª®®à¤¨ âë x0, x1 室¨«¨áì § ®¤¨¬ ¨§ ¯à¥¤¥«®¢ ¡ãä¥à |
|
;¢ eax ¢ëç¨á«ï¥¬ ç «® 1-© â®çª¨ «¨¨¨ ¢ ¡ãä¥à¥ ¨§®¡à ¦¥¨ï |
mov eax,buf2d_w ;size x |
1093,21 → 1101,17 |
lea eax,[eax+eax*2] ;(size_x*y+x)*3 |
add eax,buf2d_data ;ptr+(size_x*y+x)*3 |
|
mov ecx,esi |
sub ecx,ebx ;¢ ecx ª®««¨ç¥á⢮ â®ç¥ª «¨¨¨ ¢ë¢®¤¨¬ëå ¢ ¡ãä¥à |
mov edx,dword[color] |
mov ebx,edx ;ª®®à¤¨ â x0 ¢ ebx 㦥 ¥ 㦠|
ror edx,16 ;¯®¢®à 稢 ¥¬ ॣ¨áâà çâ® ¡ë 3-© ¡ ©â ¯®¯ « ¢ dl |
cld |
@@: ;横« ¯® ®á¨ x ®â x0 ¤® x1 |
cmp ebx,esi |
jge @f |
bt ebx,31 |
jc .otr_x |
mov word[eax],dx ;copy pixel color |
ror edx,16 |
mov word[eax],bx ;copy pixel color |
mov byte[eax+2],dl |
ror edx,16 |
.otr_x: |
add eax,3 |
inc ebx |
jmp @b |
@@: |
loop @b |
.end24: |
popad |
ret |