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
@ -1914,9 +1914,22 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
|||||||
jne .copy_end ;ä®à¬ â ¡ãä¥à ¥ ¯®®¤¥à¦¨¢ ¥âáï
|
jne .copy_end ;ä®à¬ â ¡ãä¥à ¥ ¯®®¤¥à¦¨¢ ¥âáï
|
||||||
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
||||||
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
||||||
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
||||||
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
||||||
mov ecx,[coord_y]
|
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
|
cmp ecx,ebx
|
||||||
jge .copy_end ;¥á«¨ ª®®à¤¨ â 'y' ¡®«ìè¥ ¢ëá®âë ¡ãä¥à
|
jge .copy_end ;¥á«¨ ª®®à¤¨ â 'y' ¡®«ìè¥ ¢ëá®âë ¡ãä¥à
|
||||||
add ecx,edx ;ecx - ¨¦ïï ª®®à¤¨ â ª®¯¨à㥬®© ª à⨪¨
|
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 ;㬥ìè ¥¬ ¢ëá®âã ª®¯¨à㥬®© ª à⨪¨, ¢ á«ãç¥ ª®£¤ ® ¢ë« §¨â § ¨¦îî £à ¨æã
|
sub edx,ecx ;㬥ìè ¥¬ ¢ëá®âã ª®¯¨à㥬®© ª à⨪¨, ¢ á«ãç¥ ª®£¤ ® ¢ë« §¨â § ¨¦îî £à ¨æã
|
||||||
@@:
|
@@:
|
||||||
mov ebx,buf2d_w
|
mov ebx,buf2d_w
|
||||||
mov ecx,ebx ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
mov ecx,[coord_y] ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
||||||
imul ecx,[coord_y]
|
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]
|
add ecx,[coord_x]
|
||||||
|
@@:
|
||||||
lea ecx,[ecx+ecx*2]
|
lea ecx,[ecx+ecx*2]
|
||||||
add ecx,buf2d_data
|
add ecx,buf2d_data
|
||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
@ -1979,9 +1999,22 @@ proc buf_bit_blt, buf_destination:dword, coord_x:dword, coord_y:dword, buf_sourc
|
|||||||
jne .copy_end ;ä®à¬ â ¡ãä¥à ¥ ¯®®¤¥à¦¨¢ ¥âáï
|
jne .copy_end ;ä®à¬ â ¡ãä¥à ¥ ¯®®¤¥à¦¨¢ ¥âáï
|
||||||
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
||||||
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
||||||
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
||||||
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
||||||
mov ecx,[coord_y]
|
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
|
cmp ecx,ebx
|
||||||
jge .copy_end ;¥á«¨ ª®®à¤¨ â 'y' ¡®«ìè¥ ¢ëá®âë ¡ãä¥à
|
jge .copy_end ;¥á«¨ ª®®à¤¨ â 'y' ¡®«ìè¥ ¢ëá®âë ¡ãä¥à
|
||||||
add ecx,edx ;ecx - ¨¦ïï ª®®à¤¨ â ª®¯¨à㥬®© ª à⨪¨
|
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 ;㬥ìè ¥¬ ¢ëá®âã ª®¯¨à㥬®© ª à⨪¨, ¢ á«ãç¥ ª®£¤ ® ¢ë« §¨â § ¨¦îî £à ¨æã
|
sub edx,ecx ;㬥ìè ¥¬ ¢ëá®âã ª®¯¨à㥬®© ª à⨪¨, ¢ á«ãç¥ ª®£¤ ® ¢ë« §¨â § ¨¦îî £à ¨æã
|
||||||
@@:
|
@@:
|
||||||
mov ebx,buf2d_w
|
mov ebx,buf2d_w
|
||||||
mov ecx,ebx ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
;mov ecx,ebx ;ecx ¨á¯®«ì§ã¥¬ ¤«ï ¢à¥¬¥ëå 楫¥©
|
||||||
imul ecx,[coord_y]
|
;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]
|
add ecx,[coord_x]
|
||||||
|
@@:
|
||||||
lea ecx,[ecx+ecx*2]
|
lea ecx,[ecx+ecx*2]
|
||||||
add ecx,buf2d_data
|
add ecx,buf2d_data
|
||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
@ -2120,7 +2163,7 @@ proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, bu
|
|||||||
neg ecx
|
neg ecx
|
||||||
;inc ecx
|
;inc ecx
|
||||||
imul ecx,eax
|
imul ecx,eax
|
||||||
shl ecx,2 ;¯® 4 ¡¨â ¯¨ªá¥«ì
|
shl ecx,2 ;¯® 4 ¡ ©â ¯¨ªá¥«ì
|
||||||
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
add esi,ecx ;ᤢ¨£ ¥¬ 㪠§ ⥫ì á ª®¯¨à㥬묨 ¤ 묨, á ãç¥â®¬ ¯à®¯ã襮© ç áâ¨
|
||||||
xor ecx,ecx ;®¡ã«ï¥¬ ª®®à¤¨ âã coord_y
|
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-© áâப¥ ª®¯¨à㥬®© ª à⨪¨
|
lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à ¬¨ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨪¨
|
||||||
|
;g;
|
||||||
cld
|
cld
|
||||||
cmp [right_bytes],0
|
cmp [right_bytes],0
|
||||||
jg .copy_1
|
jg .copy_1
|
||||||
@ -2263,7 +2306,7 @@ proc buf_bit_blt_alpha, buf_destination:dword, coord_x:dword, coord_y:dword, buf
|
|||||||
jne .error2 ;ä®à¬ â ¡ãä¥à ¥ ¯®®¤¥à¦¨¢ ¥âáï
|
jne .error2 ;ä®à¬ â ¡ãä¥à ¥ ¯®®¤¥à¦¨¢ ¥âáï
|
||||||
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
mov ebx,[coord_x] ;¢ ebx ¢à¥¬¥® áâ ¢¨¬ ®âáâ㯠¨§®¡à ¦¥¨ï (¤«ï ¯à®¢¥àª¨)
|
||||||
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
cmp ebx,buf2d_w ;¯à®¢¥à塞 ¢« §¨â «¨ ¨§®¡à ¦¥¨¥ ¯® è¨à¨¥
|
||||||
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
jge .copy_end ;¥á«¨ ¨§®¡à ¦¥¨¥ ¯®«®áâìî ¢ë« §¨â § ¯à ¢ãî áâ®à®ã
|
||||||
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
mov ebx,buf2d_h ;ebx - ¢ëá®â ®á®¢®£® ¡ãä¥à
|
||||||
mov ecx,[coord_y]
|
mov ecx,[coord_y]
|
||||||
cmp ecx,0
|
cmp ecx,0
|
||||||
|
Loading…
Reference in New Issue
Block a user