forked from KolibriOS/kolibrios
'buf2d.obj' update function 'buf2d_bit_blt'
git-svn-id: svn://kolibrios.org@2422 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
16fc42488a
commit
ca21d76937
@ -1917,6 +1917,19 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
||||
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
||||
mov ecx,[coord_y]
|
||||
cmp ecx,0
|
||||
jge @f
|
||||
;¥á«¨ ª®®à¤¨ â coord_y<0 (1-ï áâனª )
|
||||
add edx,ecx ;㬥ìè ¥¬ ¢ëá®âã ª®¯¨à㥬®© ª à⨪¨
|
||||
cmp edx,0
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h)
|
||||
neg ecx
|
||||
;inc ecx
|
||||
imul ecx,eax
|
||||
lea ecx,[ecx+ecx*2] ;¯® 3 ¡ ©â ¯¨ªá¥«ì
|
||||
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
||||
xor ecx,ecx ;®¡ã«ï¥¬ ª®®à¤¨ âã coord_y
|
||||
@@:
|
||||
cmp ecx,ebx
|
||||
jge .copy_end ;¥á«¨ ª®®à¤¨ â 'y' ¡®«ìè¥ ¢ëá®âë ¡ãä¥à
|
||||
add ecx,edx ;ecx - ¨¦ïï ª®®à¤¨ â ª®¯¨à㥬®© ª à⨪¨
|
||||
@ -1926,9 +1939,16 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
sub edx,ecx ;㬥ìè ¥¬ ¢ëá®âã ª®¯¨à㥬®© ª à⨪¨, ¢ á«ãç¥ ª®£¤ ® ¢ë« §¨â § ¨¦îî £à ¨æã
|
||||
@@:
|
||||
mov ebx,buf2d_w
|
||||
mov ecx,ebx ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
||||
imul ecx,[coord_y]
|
||||
mov ecx,[coord_y] ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
||||
cmp ecx,0
|
||||
jg .end_otr_c_y_24
|
||||
;¥á«¨ ª®®à¤¨ â coord_y<=0 (2-ï áâனª )
|
||||
mov ecx,[coord_x]
|
||||
jmp @f
|
||||
.end_otr_c_y_24:
|
||||
imul ecx,ebx
|
||||
add ecx,[coord_x]
|
||||
@@:
|
||||
lea ecx,[ecx+ecx*2]
|
||||
add ecx,buf2d_data
|
||||
sub ebx,eax
|
||||
@ -1982,6 +2002,19 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
||||
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
||||
mov ecx,[coord_y]
|
||||
cmp ecx,0
|
||||
jge @f
|
||||
;¥á«¨ ª®®à¤¨ â coord_y<0 (1-ï áâனª )
|
||||
add edx,ecx ;㬥ìè ¥¬ ¢ëá®âã ª®¯¨à㥬®© ª à⨪¨
|
||||
cmp edx,0
|
||||
jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥¨¥ 室¨âáï ¯®«®áâìî ¤ ¢¥à奩 £à ¨æ¥© ¡ãä¥à (coord_y<0 ¨ |coord_y|>buf_source.h)
|
||||
neg ecx
|
||||
;inc ecx
|
||||
imul ecx,eax
|
||||
shl ecx,2 ;¯® 4 ¡ ©â ¯¨ªá¥«ì
|
||||
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
||||
xor ecx,ecx ;®¡ã«ï¥¬ ª®®à¤¨ âã coord_y
|
||||
@@:
|
||||
cmp ecx,ebx
|
||||
jge .copy_end ;¥á«¨ ª®®à¤¨ â 'y' ¡®«ìè¥ ¢ëá®âë ¡ãä¥à
|
||||
add ecx,edx ;ecx - ¨¦ïï ª®®à¤¨ â ª®¯¨à㥬®© ª à⨪¨
|
||||
@ -1991,9 +2024,19 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
||||
sub edx,ecx ;㬥ìè ¥¬ ¢ëá®âã ª®¯¨à㥬®© ª à⨪¨, ¢ á«ãç¥ ª®£¤ ® ¢ë« §¨â § ¨¦îî £à ¨æã
|
||||
@@:
|
||||
mov ebx,buf2d_w
|
||||
mov ecx,ebx ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
||||
imul ecx,[coord_y]
|
||||
;mov ecx,ebx ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
||||
;imul ecx,[coord_y]
|
||||
;add ecx,[coord_x]
|
||||
mov ecx,[coord_y] ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
||||
cmp ecx,0
|
||||
jg .end_otr_c_y_32
|
||||
;¥á«¨ ª®®à¤¨ â coord_y<=0 (2-ï áâனª )
|
||||
mov ecx,[coord_x]
|
||||
jmp @f
|
||||
.end_otr_c_y_32:
|
||||
imul ecx,ebx
|
||||
add ecx,[coord_x]
|
||||
@@:
|
||||
lea ecx,[ecx+ecx*2]
|
||||
add ecx,buf2d_data
|
||||
sub ebx,eax
|
||||
@ -2120,7 +2163,7 @@ proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, bu
|
||||
neg ecx
|
||||
;inc ecx
|
||||
imul ecx,eax
|
||||
shl ecx,2 ;¯® 4 ¡¨â ¯¨ªá¥«ì
|
||||
shl ecx,2 ;¯® 4 ¡ ©â ¯¨ªá¥«ì
|
||||
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
||||
xor ecx,ecx ;®¡ã«ï¥¬ ª®®à¤¨ âã coord_y
|
||||
@@:
|
||||
@ -2160,7 +2203,7 @@ proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, bu
|
||||
@@:
|
||||
|
||||
lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à ¬¨ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨
|
||||
|
||||
;g;
|
||||
cld
|
||||
cmp [right_bytes],0
|
||||
jg .copy_1
|
||||
|
Loading…
Reference in New Issue
Block a user