Subversion Repositories Kolibri OS

Rev

Rev 2920 | Rev 2975 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2920 Rev 2927
Line 1745... Line 1745...
1745
 
1745
 
1746
align 4
1746
align 4
1747
proc buf_img_wdiv2, buf_struc:dword
1747
proc buf_img_wdiv2, buf_struc:dword
1748
	pushad
1748
	pushad
-
 
1749
	mov edi,dword[buf_struc]
-
 
1750
	cmp buf2d_bits,8
-
 
1751
	jne @f
-
 
1752
		mov eax,buf2d_w
-
 
1753
		mov ecx,buf2d_h
-
 
1754
		imul ecx,eax
-
 
1755
		stdcall img_8b_wdiv2, buf2d_data,ecx
1749
	mov edi,dword[buf_struc]
1756
	@@:
1750
	cmp buf2d_bits,24
1757
	cmp buf2d_bits,24
1751
	jne .end_draw_24
1758
	jne @f
1752
		mov eax,buf2d_w
1759
		mov eax,buf2d_w
1753
		mov ecx,buf2d_h
1760
		mov ecx,buf2d_h
1754
		imul ecx,eax
1761
		imul ecx,eax
1755
		stdcall img_rgb24_wdiv2, buf2d_data,ecx
1762
		stdcall img_rgb24_wdiv2, buf2d_data,ecx
1756
	.end_draw_24:
1763
	@@:
1757
	cmp buf2d_bits,32
1764
	cmp buf2d_bits,32
1758
	jne .end_draw_32
1765
	jne @f
1759
		mov eax,buf2d_w
1766
		mov eax,buf2d_w
1760
		mov ecx,buf2d_h
1767
		mov ecx,buf2d_h
1761
		imul ecx,eax
1768
		imul ecx,eax
1762
		stdcall img_rgb32_wdiv2, buf2d_data,ecx
1769
		stdcall img_rgba32_wdiv2, buf2d_data,ecx
1763
	.end_draw_32:
1770
	@@:
1764
	popad
1771
	popad
1765
	ret
1772
	ret
Line 1766... Line 1773...
1766
endp
1773
endp
-
 
1774
 
-
 
1775
;input:
-
 
1776
;data_8b - pointer to rgb data
-
 
1777
;size - count img pixels (size img data / 3(rgb) )
-
 
1778
align 4
-
 
1779
proc img_8b_wdiv2 data_8b:dword, size:dword
-
 
1780
	mov eax,dword[data_8b]
-
 
1781
	mov ecx,dword[size] ;ecx = size
-
 
1782
	cld
-
 
1783
	@@: ;§ â¥¬­¥­¨¥ æ¢¥â  ¯¨ªá¥«¥©
-
 
1784
		shr byte[eax],1
-
 
1785
		inc eax
-
 
1786
		loop @b
-
 
1787
 
-
 
1788
	mov eax,dword[data_8b]
-
 
1789
	mov ecx,dword[size] ;ecx = size
-
 
1790
	shr ecx,1
-
 
1791
	@@: ;á«®¦¥­¨¥ 梥⮢ ¯¨ªá¥«¥©
-
 
1792
		mov bl,byte[eax+1] ;ª®¯¨à㥬 梥â á®á¥¤­¥£® ¯¨ªá¥«ï
-
 
1793
		add byte[eax],bl
-
 
1794
		add eax,2
-
 
1795
		loop @b
-
 
1796
 
-
 
1797
	mov eax,dword[data_8b]
-
 
1798
	inc eax
-
 
1799
	mov ebx,eax
-
 
1800
	inc ebx
-
 
1801
	mov ecx,dword[size] ;ecx = size
-
 
1802
	shr ecx,1
-
 
1803
	dec ecx ;«¨è­¨© ¯¨ªá¥«ì
-
 
1804
	@@: ;¯®¤¦ â¨¥ ¯¨ªá¥«¥©
-
 
1805
		mov dl,byte[ebx]
-
 
1806
		mov byte[eax],dl
-
 
1807
 
-
 
1808
		inc eax
-
 
1809
		add ebx,2
-
 
1810
		loop @b
-
 
1811
	ret
-
 
1812
endp
1767
 
1813
 
1768
;input:
1814
;input:
1769
;data_rgb - pointer to rgb data
1815
;data_rgb - pointer to rgb data
1770
;size - count img pixels (size img data / 3(rgb) )
1816
;size - count img pixels (size img data / 3(rgb) )
1771
align 4
1817
align 4
Line 1808... Line 1854...
1808
		loop @b
1854
		loop @b
1809
  ret
1855
  ret
1810
endp
1856
endp
Line 1811... Line 1857...
1811
 
1857
 
1812
;input:
1858
;input:
1813
;data_rgb - pointer to rgb data
1859
;data_rgba - pointer to rgba data
1814
;size - count img pixels (size img data / 3(rgb) )
1860
;size - count img pixels (size img data / 4(rgba) )
1815
align 4
1861
align 4
1816
proc img_rgb32_wdiv2 data_rgb:dword, size:dword
1862
proc img_rgba32_wdiv2 data_rgba:dword, size:dword
Line 1817... Line 1863...
1817
	mov eax,dword[data_rgb]
1863
	mov eax,dword[data_rgba]
1818
 
1864
 
1819
	mov eax,dword[data_rgb]
1865
	mov eax,dword[data_rgba]
1820
	mov ebx,eax
1866
	mov ebx,eax
1821
	add ebx,4
1867
	add ebx,4
1822
	mov ecx,dword[size] ;ecx = size
1868
	mov ecx,dword[size] ;ecx = size
Line 1826... Line 1872...
1826
		mov [eax],edx
1872
		mov [eax],edx
1827
		add eax,8 ;=2*4
1873
		add eax,8 ;=2*4
1828
		add ebx,8
1874
		add ebx,8
1829
		loop @b
1875
		loop @b
Line 1830... Line 1876...
1830
 
1876
 
1831
	mov eax,dword[data_rgb]
1877
	mov eax,dword[data_rgba]
1832
	add eax,4
1878
	add eax,4
1833
	mov ebx,eax
1879
	mov ebx,eax
1834
	add ebx,4
1880
	add ebx,4
1835
	mov ecx,dword[size] ;ecx = size
1881
	mov ecx,dword[size] ;ecx = size
Line 1847... Line 1893...
1847
 
1893
 
1848
align 4
1894
align 4
1849
proc buf_img_hdiv2, buf_struc:dword
1895
proc buf_img_hdiv2, buf_struc:dword
1850
	pushad
1896
	pushad
-
 
1897
	mov edi,dword[buf_struc]
-
 
1898
	cmp buf2d_bits,8
-
 
1899
	jne @f
-
 
1900
		mov eax,buf2d_w
-
 
1901
		mov ecx,buf2d_h
-
 
1902
		imul ecx,eax
-
 
1903
		stdcall img_8b_hdiv2, buf2d_data,ecx,eax
1851
	mov edi,dword[buf_struc]
1904
	@@:
1852
	cmp buf2d_bits,24
1905
	cmp buf2d_bits,24
1853
	jne .end_draw_24
1906
	jne @f
1854
		mov eax,buf2d_w
1907
		mov eax,buf2d_w
1855
		mov ecx,buf2d_h
1908
		mov ecx,buf2d_h
1856
		imul ecx,eax
1909
		imul ecx,eax
1857
		stdcall img_rgb24_hdiv2, buf2d_data,ecx,eax
1910
		stdcall img_rgb24_hdiv2, buf2d_data,ecx,eax
1858
	.end_draw_24:
1911
	@@:
1859
	cmp buf2d_bits,32
1912
	cmp buf2d_bits,32
1860
	jne .end_draw_32
1913
	jne @f
1861
		mov eax,buf2d_w
1914
		mov eax,buf2d_w
1862
		mov ecx,buf2d_h
1915
		mov ecx,buf2d_h
1863
		imul ecx,eax
1916
		imul ecx,eax
1864
		shl eax,2
1917
		shl eax,2
1865
		stdcall img_rgb32_hdiv2, buf2d_data,ecx,eax
1918
		stdcall img_rgba32_hdiv2, buf2d_data,ecx,eax
1866
	.end_draw_32:
1919
	@@:
1867
	popad
1920
	popad
1868
	ret
1921
	ret
Line 1869... Line 1922...
1869
endp
1922
endp
-
 
1923
 
-
 
1924
;input:
-
 
1925
;data_8b - pointer to 8 bit data
-
 
1926
;size - count img pixels (size img data)
-
 
1927
;size_w - width img in pixels
-
 
1928
align 4
-
 
1929
proc img_8b_hdiv2, data_8b:dword, size:dword, size_w:dword
-
 
1930
 
-
 
1931
	mov eax,dword[data_8b] ;eax =
-
 
1932
	mov ecx,dword[size]
-
 
1933
	cld
-
 
1934
	@@: ;§ â¥¬­¥­¨¥ æ¢¥â  ¯¨ªá¥«¥©
-
 
1935
		shr byte[eax],1
-
 
1936
		inc eax
-
 
1937
		loop @b
-
 
1938
 
-
 
1939
	mov eax,dword[data_8b] ;eax =
-
 
1940
	mov esi,dword[size_w]
-
 
1941
	mov ebx,esi
-
 
1942
	add ebx,eax
-
 
1943
	mov ecx,dword[size]  ;ecx = size
-
 
1944
	shr ecx,1
-
 
1945
	xor edi,edi
-
 
1946
	@@: ;á«®¦¥­¨¥ 梥⮢ ¯¨ªá¥«¥©
-
 
1947
		mov dl,byte[ebx] ;ª®¯¨à㥬 梥⠭¨¦­¥£® ¯¨ªá¥«ï
-
 
1948
		add byte[eax],dl
-
 
1949
 
-
 
1950
		inc eax
-
 
1951
		inc ebx
-
 
1952
		inc edi
-
 
1953
		cmp edi,dword[size_w]
-
 
1954
		jl .old_line
-
 
1955
			add eax,esi
-
 
1956
			add ebx,esi
-
 
1957
			xor edi,edi
-
 
1958
		.old_line:
-
 
1959
		loop @b
-
 
1960
 
-
 
1961
 
-
 
1962
	mov eax,dword[data_8b] ;eax =
-
 
1963
	add eax,esi ;esi = width*3(rgb)
-
 
1964
	mov ebx,eax
-
 
1965
	add ebx,esi
-
 
1966
	mov ecx,dword[size] ;ecx = size
-
 
1967
	shr ecx,1
-
 
1968
	sub ecx,dword[size_w] ;«¨è­ïï áâப  ¯¨ªá¥«¥©
-
 
1969
	xor edi,edi
-
 
1970
	@@: ;¯®¤¦ â¨¥ ¯¨ªá¥«¥©
-
 
1971
		mov dl,byte[ebx] ;ª®¯¨à㥬 梥⠭¨¦­¥£® ¯¨ªá¥«ï
-
 
1972
		mov byte[eax],dl
-
 
1973
 
-
 
1974
		inc eax
-
 
1975
		inc ebx
-
 
1976
		inc edi
-
 
1977
		cmp edi,dword[size_w]
-
 
1978
		jl .old_line_2
-
 
1979
			add ebx,esi
-
 
1980
			xor edi,edi
-
 
1981
		.old_line_2:
-
 
1982
		loop @b
-
 
1983
 
-
 
1984
	ret
-
 
1985
endp
1870
 
1986
 
1871
;input:
1987
;input:
1872
;data_rgb - pointer to rgb data
1988
;data_rgb - pointer to rgb data
1873
;size - count img pixels (size img data / 3(rgb) )
1989
;size - count img pixels (size img data / 3(rgb) )
1874
;size_w - width img in pixels
1990
;size_w - width img in pixels
Line 1936... Line 2052...
1936
 
2052
 
1937
  ret
2053
  ret
Line 1938... Line 2054...
1938
endp
2054
endp
1939
 
2055
 
1940
;input:
2056
;input:
1941
;data_rgb - pointer to rgb data
2057
;data_rgba - pointer to rgba data
1942
;size - count img pixels (size img data / 3(rgb) )
2058
;size - count img pixels (size img data / 4(rgba) )
1943
;size_w_b - width img in bytes
2059
;size_w_b - width img in bytes
Line 1944... Line 2060...
1944
align 4
2060
align 4
1945
proc img_rgb32_hdiv2, data_rgb:dword, size:dword, size_w_b:dword
2061
proc img_rgba32_hdiv2, data_rgba:dword, size:dword, size_w_b:dword
1946
 
2062
 
1947
	mov eax,dword[data_rgb] ;eax =
2063
	mov eax,dword[data_rgba] ;eax =
1948
	mov ebx,dword[size_w_b]
2064
	mov ebx,dword[size_w_b]
1949
	add ebx,eax
2065
	add ebx,eax
Line 1964... Line 2080...
1964
			xor edi,edi
2080
			xor edi,edi
1965
		.old_line:
2081
		.old_line:
1966
		loop @b
2082
		loop @b
Line 1967... Line 2083...
1967
 
2083
 
1968
 
2084
 
1969
	mov eax,dword[data_rgb] ;eax =
2085
	mov eax,dword[data_rgba] ;eax =
1970
	mov ebx,dword[size_w_b]
2086
	mov ebx,dword[size_w_b]
1971
	add eax,ebx
2087
	add eax,ebx
1972
	add ebx,eax
2088
	add ebx,eax
Line 2010... Line 2126...
2010
	cmp edi,255
2126
	cmp edi,255
2011
	je .c0z
2127
	je .c0z
2012
	movzx esi,byte[ebx+3]
2128
	movzx esi,byte[ebx+3]
2013
	cmp esi,255
2129
	cmp esi,255
2014
	je .c1z
2130
	je .c1z
-
 
2131
	cmp edi,esi
-
 
2132
	je .c0_c1
Line 2015... Line 2133...
2015
 
2133
 
2016
	;¯¥à¥¢®à ç¨¢ ¥¬ §­ ç¥­¨ï ¯à®§à ç­®á⥩
2134
	;¯¥à¥¢®à ç¨¢ ¥¬ §­ ç¥­¨ï ¯à®§à ç­®á⥩
2017
	neg edi
2135
	neg edi
2018
	inc edi
2136
	inc edi
Line 2070... Line 2188...
2070
	add ebx,ecx
2188
	add ebx,ecx
2071
	mov edx,ebx
2189
	mov edx,ebx
2072
pop ebx eax
2190
pop ebx eax
Line 2073... Line 2191...
2073
 
2191
 
-
 
2192
	jmp .end_f
-
 
2193
	.c0_c1: ;¥á«¨ ¯à®§à ç­®á⨠®¡®¨å 梥⮢ ᮢ¯ ¤ îâ
-
 
2194
		mov edx,dword[eax]
-
 
2195
		shr edx,1
-
 
2196
		and edx,011111110111111101111111b
-
 
2197
		mov esi,dword[ebx]
-
 
2198
		shr esi,1
-
 
2199
		and esi,011111110111111101111111b
-
 
2200
		add edx,esi
-
 
2201
		ror edi,8 ;¯¥à¥¬¥é ¥¬ §­ ç¥­¨¥ ¯à®§à ç­®á⨠¢ áâ à訩 ¡ ©â edi
-
 
2202
		or edx,edi
2074
	jmp .end_f
2203
		jmp .end_f
2075
	.c0z: ;¥á«¨ 梥⠢ eax ¯à®§à ç­ë©
2204
	.c0z: ;¥á«¨ 梥⠢ eax ¯à®§à ç­ë©
2076
		mov edx,dword[ebx]
2205
		mov edx,dword[ebx]
2077
		movzx edi,byte[ebx+3]
2206
		movzx edi,byte[ebx+3]
2078
		jmp @f
2207
		jmp @f
Line 2421... Line 2550...
2421
; 㪠§ë¢ îâáï ª®®à¤¨­ âë ¢áâ ¢ª¨ ¡ãä¥à  buf_source ®â­®á¨â¥«ì­® buf_destination
2550
; 㪠§ë¢ îâáï ª®®à¤¨­ âë ¢áâ ¢ª¨ ¡ãä¥à  buf_source ®â­®á¨â¥«ì­® buf_destination
2422
; ¯à¨ ª®¯¨à®¢ ­¨¨ ãç¨â뢠¥âáï ¯à®§à ç­®áâì
2551
; ¯à¨ ª®¯¨à®¢ ­¨¨ ãç¨â뢠¥âáï ¯à®§à ç­®áâì
2423
align 4
2552
align 4
2424
proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, buf_source:dword
2553
proc buf_bit_blt_transp, buf_destination:dword, coord_x:dword, coord_y:dword, buf_source:dword
2425
	locals
2554
	locals
2426
		right_bytes dd ?
2555
		lost_bytes dd ?
2427
	endl
2556
	endl
2428
	pushad
2557
	pushad
Line 2429... Line 2558...
2429
 
2558
 
2430
	mov edi,[buf_source]
2559
	mov edi,[buf_source]
Line 2474... Line 2603...
2474
		lea ecx,[ecx+ecx*2]
2603
		lea ecx,[ecx+ecx*2]
2475
		add ecx,buf2d_data
2604
		add ecx,buf2d_data
2476
		sub ebx,eax
2605
		sub ebx,eax
2477
		mov edi,ecx ;edi 㪠§ â¥«ì ­  ¤ ­­ë¥ ¡ãä¥à , ªã¤  ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ­¨¥
2606
		mov edi,ecx ;edi 㪠§ â¥«ì ­  ¤ ­­ë¥ ¡ãä¥à , ªã¤  ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ­¨¥
Line 2478... Line 2607...
2478
 
2607
 
2479
	mov [right_bytes],0
2608
	mov dword[lost_bytes],0
-
 
2609
	mov ecx,[coord_x]
-
 
2610
	cmp ecx,0
-
 
2611
	jge @f
-
 
2612
		neg ecx
-
 
2613
		;inc ecx
-
 
2614
		cmp eax,ecx ;eax - è¨à¨­  ª®¯¨à㥬®© ª à⨭ª¨
-
 
2615
		jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥­¨¥ ­ å®¤¨âáï ¯®«­®áâìî §  «¥¢®© £à ­¨æ¥© ¡ãä¥à  (coord_x<0 ¨ |coord_x|>buf_source.w)
-
 
2616
		shl ecx,2
-
 
2617
		mov [lost_bytes],ecx
-
 
2618
		add esi,ecx
-
 
2619
		shr ecx,2
-
 
2620
		sub eax,ecx ;㪮à ç¨¢ ¥¬ ª®¯¨à㥬ãî áâபã
-
 
2621
		add ebx,ecx ;㤫¨­­ï¥¬ áâப㠤«ï ᤢ¨£  £« ¢­®© ª à⨭ª¨ ¡ãä¥à 
-
 
2622
		lea ecx,[ecx+ecx*2]
-
 
2623
		add edi,ecx ;edi 㪠§ â¥«ì ­  ¤ ­­ë¥ ¡ãä¥à , ªã¤  ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ­¨¥
-
 
2624
		xor ecx,ecx
2480
	mov ecx,[coord_x]
2625
	@@:
2481
	cmp ecx,ebx
2626
	cmp ecx,ebx
2482
	jl @f
2627
	jle @f
2483
		sub ecx,ebx
2628
		sub ecx,ebx
2484
		sub eax,ecx ;㪮à ç¨¢ ¥¬ ª®¯¨à㥬ãî áâபã
2629
		sub eax,ecx ;㪮à ç¨¢ ¥¬ ª®¯¨à㥬ãî áâபã
2485
		add ebx,ecx ;㤫¨­­ï¥¬ áâப㠤«ï ᤢ¨£  £« ¢­®© ª à⨭ª¨ ¡ãä¥à 
2630
		add ebx,ecx ;㤫¨­­ï¥¬ áâப㠤«ï ᤢ¨£  £« ¢­®© ª à⨭ª¨ ¡ãä¥à 
2486
		shl ecx,2 ;ecx - ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª à⨭ª¨, ª®â®àë¥ ¢ë« §ïâ §  ¯à ¢ãî áâ®à®­ã
2631
		shl ecx,2 ;ecx - ç¨á«® ¯¨ªá¥«¥© ¢ 1-© áâப¥ ª à⨭ª¨, ª®â®àë¥ ¢ë« §ïâ §  ¯à ¢ãî áâ®à®­ã
2487
		mov [right_bytes],ecx
2632
		add [lost_bytes],ecx
Line -... Line 2633...
-
 
2633
	@@:
-
 
2634
 
-
 
2635
;	mov [right_bytes],0
-
 
2636
;	mov ecx,[coord_x]
-
 
2637
;	cmp ecx,ebx
-
 
2638
;	jl @f
-
 
2639
;		sub ecx,ebx
-
 
2640
;		sub eax,ecx ;㪮à ç¨¢ ¥¬ ª®¯¨à㥬ãî áâபã
-
 
2641
;		add ebx,ecx ;㤫¨­­ï¥¬ áâப㠤«ï ᤢ¨£  £« ¢­®© ª à⨭ª¨ ¡ãä¥à 
-
 
2642
;		shl ecx,2 ;ecx - ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª à⨭ª¨, ª®â®àë¥ ¢ë« §ïâ §  ¯à ¢ãî áâ®à®­ã
-
 
2643
;		mov [right_bytes],ecx
2488
	@@:
2644
;	@@:
Line 2489... Line 2645...
2489
 
2645
 
2490
	lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à  ¬¨­ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨭ª¨
2646
	lea ebx,[ebx+ebx*2] ;ª®««¨ç¥á⢮ ¡ ©â ¢ 1-© áâப¥ ¡ãä¥à  ¬¨­ãá ç¨á«® ¡ ©â ¢ 1-© áâப¥ ª®¯¨à㥬®© ª à⨭ª¨
2491
 
2647
 
2492
	cld
2648
	cld
2493
	cmp [right_bytes],0
2649
	cmp [lost_bytes],0
2494
	jg .copy_1
2650
	jg .copy_1
2495
	.copy_0: ;¯à®á⮥ ª®¯¨à®¢ ­¨¥
2651
	.copy_0: ;¯à®á⮥ ª®¯¨à®¢ ­¨¥
Line 2510... Line 2666...
2510
			call combine_colors_0
2666
			call combine_colors_0
2511
			add edi,3
2667
			add edi,3
2512
			add esi,4
2668
			add esi,4
2513
			loop @b
2669
			loop @b
2514
		add edi,ebx
2670
		add edi,ebx
2515
		add esi,[right_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ §  ¯à ¢ãî £à ­¨æã
2671
		add esi,[lost_bytes] ;¤®¡ ¢«ï¥¬ ¡ ©âë, ª®â®àë¥ ¢ë« §ïâ §  ¯à ¢ãî £à ­¨æã
2516
		dec edx
2672
		dec edx
2517
		cmp edx,0
2673
		cmp edx,0
2518
		jg .copy_1
2674
		jg .copy_1
Line 2519... Line 2675...
2519
 
2675
 
Line 2630... Line 2786...
2630
	jge @f
2786
	jge @f
2631
		neg ecx
2787
		neg ecx
2632
		;inc ecx
2788
		;inc ecx
2633
		cmp eax,ecx ;eax - è¨à¨­  ª®¯¨à㥬®© ª à⨭ª¨
2789
		cmp eax,ecx ;eax - è¨à¨­  ª®¯¨à㥬®© ª à⨭ª¨
2634
		jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥­¨¥ ­ å®¤¨âáï ¯®«­®áâìî §  «¥¢®© £à ­¨æ¥© ¡ãä¥à  (coord_x<0 ¨ |coord_x|>buf_source.w)
2790
		jle .copy_end ;¥á«¨ ª®¯¨à㥬®¥ ¨§®¡à ¦¥­¨¥ ­ å®¤¨âáï ¯®«­®áâìî §  «¥¢®© £à ­¨æ¥© ¡ãä¥à  (coord_x<0 ¨ |coord_x|>buf_source.w)
2635
		add [lost_bytes],ecx
2791
		mov [lost_bytes],ecx
2636
		sub eax,ecx ;㪮à ç¨¢ ¥¬ ª®¯¨à㥬ãî áâபã
2792
		sub eax,ecx ;㪮à ç¨¢ ¥¬ ª®¯¨à㥬ãî áâபã
2637
		add ebx,ecx ;㤫¨­­ï¥¬ áâப㠤«ï ᤢ¨£  £« ¢­®© ª à⨭ª¨ ¡ãä¥à 
2793
		add ebx,ecx ;㤫¨­­ï¥¬ áâப㠤«ï ᤢ¨£  £« ¢­®© ª à⨭ª¨ ¡ãä¥à 
2638
		add esi,ecx
2794
		add esi,ecx
2639
		lea ecx,[ecx+ecx*2]
2795
		lea ecx,[ecx+ecx*2]
2640
		add edi,ecx ;edi 㪠§ â¥«ì ­  ¤ ­­ë¥ ¡ãä¥à , ªã¤  ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ­¨¥
2796
		add edi,ecx ;edi 㪠§ â¥«ì ­  ¤ ­­ë¥ ¡ãä¥à , ªã¤  ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ­¨¥