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 㪠§ â¥«ì ¤ ë¥ ¡ãä¥à , ªã¤ ¡ã¤¥â ¯à®¨§¢®¤¨âáï ª®¯¨à®¢ ¨¥ |