Rev 3138 | Rev 6178 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3138 | Rev 5389 | ||
---|---|---|---|
Line 1984... | Line 1984... | ||
1984 | @@: |
1984 | @@: |
1985 | .end_fun: |
1985 | .end_fun: |
1986 | ret |
1986 | ret |
1987 | endp |
1987 | endp |
Line -... | Line 1988... | ||
- | 1988 | ||
- | 1989 | align 4 |
|
- | 1990 | proc buf_flip_h, buf_struc:dword |
|
- | 1991 | pushad |
|
- | 1992 | mov edi,[buf_struc] |
|
- | 1993 | cmp buf2d_bits,24 |
|
- | 1994 | jne .end_24 |
|
- | 1995 | mov esi,buf2d_data |
|
- | 1996 | mov eax,buf2d_w |
|
- | 1997 | mov ecx,eax |
|
- | 1998 | shr ecx,1 |
|
- | 1999 | dec eax |
|
- | 2000 | lea eax,[eax+eax*2] |
|
- | 2001 | mov ebx,buf2d_h |
|
- | 2002 | mov edi,esi |
|
- | 2003 | add esi,eax |
|
- | 2004 | add eax,3 |
|
- | 2005 | cld |
|
- | 2006 | .cycle_24: |
|
- | 2007 | push ecx edi esi |
|
- | 2008 | align 4 |
|
- | 2009 | @@: |
|
- | 2010 | ;swap word[edi] <-> word[esi] |
|
- | 2011 | mov dx,[edi] |
|
- | 2012 | movsw |
|
- | 2013 | mov [esi-2],dx |
|
- | 2014 | ;swap byte[edi] <-> byte[esi] |
|
- | 2015 | mov dl,[edi] |
|
- | 2016 | movsb |
|
- | 2017 | mov [esi-1],dl |
|
- | 2018 | sub esi,6 |
|
- | 2019 | loop @b |
|
- | 2020 | pop esi edi ecx |
|
- | 2021 | add edi,eax |
|
- | 2022 | add esi,eax |
|
- | 2023 | dec ebx |
|
- | 2024 | or ebx,ebx |
|
- | 2025 | jnz .cycle_24 |
|
- | 2026 | jmp .end_32 |
|
- | 2027 | .end_24: |
|
- | 2028 | cmp buf2d_bits,32 |
|
- | 2029 | jne .end_32 |
|
- | 2030 | mov esi,buf2d_data |
|
- | 2031 | mov eax,buf2d_w |
|
- | 2032 | dec eax |
|
- | 2033 | shl eax,2 |
|
- | 2034 | mov ebx,buf2d_h |
|
- | 2035 | mov edi,esi |
|
- | 2036 | add esi,eax |
|
- | 2037 | add eax,4 |
|
- | 2038 | cld |
|
- | 2039 | .cycle_32: |
|
- | 2040 | mov ecx,eax |
|
- | 2041 | shr ecx,3 |
|
- | 2042 | push edi esi |
|
- | 2043 | align 4 |
|
- | 2044 | @@: |
|
- | 2045 | ;swap dword[edi] <-> dword[esi] |
|
- | 2046 | mov edx,[edi] |
|
- | 2047 | movsd |
|
- | 2048 | mov [esi-4],edx |
|
- | 2049 | sub esi,8 |
|
- | 2050 | loop @b |
|
- | 2051 | pop esi edi |
|
- | 2052 | add edi,eax |
|
- | 2053 | add esi,eax |
|
- | 2054 | dec ebx |
|
- | 2055 | or ebx,ebx |
|
- | 2056 | jnz .cycle_32 |
|
- | 2057 | .end_32: |
|
- | 2058 | popad |
|
- | 2059 | ret |
|
- | 2060 | endp |
|
1988 | 2061 | ||
1989 | ;®âà §¨âì ¯® ¢¥à⨪ «¨ (¢¥àå ¨ ¨§ ¬¥ïîâáï ¬¥áâ ¬¨) |
2062 | ;®âà §¨âì ¯® ¢¥à⨪ «¨ (¢¥àå ¨ ¨§ ¬¥ïîâáï ¬¥áâ ¬¨) |
1990 | align 4 |
2063 | align 4 |
1991 | proc buf_flip_v, buf_struc:dword |
2064 | proc buf_flip_v, buf_struc:dword |
1992 | locals |
2065 | locals |
Line 2011... | Line 2084... | ||
2011 | mov edi,buf2d_data |
2084 | mov edi,buf2d_data |
2012 | xchg edi,esi |
2085 | xchg edi,esi |
2013 | cld |
2086 | cld |
2014 | .flip_24: |
2087 | .flip_24: |
2015 | cmp ebx,0 |
2088 | cmp ebx,0 |
2016 | jle .end_24 |
2089 | jle .end_32 ;§¤¥áì ¢ë室 ¨§ äãªæ¨¨ (¯®â®¬ã .end_24 ¥ ¯®¤å®¤¨â) |
2017 | mov ecx,[line_pix] |
2090 | mov ecx,[line_pix] |
- | 2091 | align 4 |
|
2018 | @@: |
2092 | @@: |
2019 | lodsw |
2093 | lodsw |
2020 | mov dx,word[edi] |
2094 | mov dx,word[edi] |
2021 | mov word[esi-2],dx |
2095 | mov word[esi-2],dx |
2022 | mov [edi],ax |
2096 | stosw |
2023 | lodsb |
2097 | lodsb |
2024 | mov ah,byte[edi+2] |
2098 | mov ah,byte[edi] |
2025 | mov byte[esi-1],ah |
2099 | mov byte[esi-1],ah |
2026 | mov [edi+2],al |
- | |
2027 | add edi,3 |
2100 | stosb |
2028 | loop @b |
2101 | loop @b |
2029 | sub edi,[line_2byte] |
2102 | sub edi,[line_2byte] |
2030 | dec ebx |
2103 | dec ebx |
2031 | jmp .flip_24 |
2104 | jmp .flip_24 |
2032 | .end_24: |
2105 | .end_24: |
- | 2106 | cmp buf2d_bits,32 |
|
- | 2107 | jne .end_32 |
|
- | 2108 | mov edx,buf2d_w |
|
- | 2109 | mov [line_pix],edx |
|
- | 2110 | mov ebx,buf2d_h |
|
- | 2111 | shl edx,2 |
|
- | 2112 | mov esi,edx |
|
- | 2113 | imul esi,ebx |
|
- | 2114 | sub esi,edx |
|
- | 2115 | add esi,buf2d_data ;㪠§ â¥«ì ¨¦îî «¨¨î |
|
- | 2116 | shr ebx,1 ;ª®«. «¨¥©ëå 横«®¢ |
|
- | 2117 | shl edx,1 |
|
- | 2118 | mov [line_2byte],edx |
|
- | 2119 | mov edi,buf2d_data |
|
- | 2120 | xchg edi,esi |
|
- | 2121 | cld |
|
- | 2122 | .flip_32: |
|
- | 2123 | cmp ebx,0 |
|
- | 2124 | jle .end_32 |
|
- | 2125 | mov ecx,[line_pix] |
|
- | 2126 | align 4 |
|
- | 2127 | @@: |
|
- | 2128 | lodsd |
|
- | 2129 | mov edx,dword[edi] |
|
- | 2130 | mov dword[esi-4],edx |
|
- | 2131 | stosd |
|
- | 2132 | loop @b |
|
- | 2133 | sub edi,[line_2byte] |
|
- | 2134 | dec ebx |
|
- | 2135 | jmp .flip_32 |
|
- | 2136 | .end_32: |
|
2033 | popad |
2137 | popad |
2034 | ret |
2138 | ret |
2035 | endp |
2139 | endp |
Line 2036... | Line 2140... | ||
2036 | 2140 | ||
Line 3316... | Line 3420... | ||
3316 | ; ebp+12 = p1 |
3420 | ; ebp+12 = p1 |
3317 | align 4 |
3421 | align 4 |
3318 | line_len4i: |
3422 | line_len4i: |
3319 | push ebp |
3423 | push ebp |
3320 | mov ebp,esp |
3424 | mov ebp,esp |
3321 | finit |
- | |
3322 | fild word [ebp+8] |
3425 | fild word [ebp+8] |
3323 | fisub word [ebp+12] |
3426 | fisub word [ebp+12] |
3324 | fmul st0,st0 ;st0=x^2 |
3427 | fmul st0,st0 ;st0=x^2 |
3325 | fild word [ebp+10] |
3428 | fild word [ebp+10] |
3326 | fisub word [ebp+14] |
3429 | fisub word [ebp+14] |
3327 | fmul st0,st0 ;st0=y^2 |
3430 | fmul st0,st0 ;st0=y^2 |
3328 | fadd st0,st1 |
3431 | faddp |
3329 | fsqrt |
3432 | fsqrt |
3330 | fstp dword [ebp+12] |
3433 | fstp dword [ebp+12] |
3331 | pop ebp |
3434 | pop ebp |
3332 | ret 4 ;8 |
3435 | ret 4 ;8 |
Line 3351... | Line 3454... | ||
3351 | mov edi,[buffer] |
3454 | mov edi,[buffer] |
3352 | xor ebx,ebx |
3455 | xor ebx,ebx |
3353 | xor ecx,ecx |
3456 | xor ecx,ecx |
Line 3354... | Line 3457... | ||
3354 | 3457 | ||
- | 3458 | finit |
|
Line 3355... | Line 3459... | ||
3355 | finit |
3459 | fldz |
3356 | 3460 | ||
3357 | ; calculate delta t |
3461 | ; calculate delta t |
3358 | stdcall line_len4i, dword[coord_p1],dword[coord_p0] |
3462 | stdcall line_len4i, dword[coord_p1],dword[coord_p0] |
Line 3372... | Line 3476... | ||
3372 | jle @f ;¨§¡¥£ ¥¬ ¤¥«¥¨ï 0 |
3476 | jle @f ;¨§¡¥£ ¥¬ ¤¥«¥¨ï 0 |
3373 | fdiv st0,st1 |
3477 | fdiv st0,st1 |
3374 | @@: |
3478 | @@: |
3375 | fstp dword[delt_t] |
3479 | fstp dword[delt_t] |
Line -... | Line 3480... | ||
- | 3480 | ||
3376 | 3481 | ffree st0 ;1.0 |
|
Line 3377... | Line 3482... | ||
3377 | finit |
3482 | fincstp |
3378 | 3483 | ||
3379 | ;fild word[coord_p2+2] ;y2 |
3484 | ;fild word[coord_p2+2] ;y2 |
3380 | fild word[coord_p1+2] ;y1 |
3485 | fild word[coord_p1+2] ;y1 |
Line 3398... | Line 3503... | ||
3398 | fadd st0,st0 |
3503 | fadd st0,st0 |
3399 | fmul st0,st4 ;...*x1 |
3504 | fmul st0,st4 ;...*x1 |
3400 | mov esi,dword[opr_param] |
3505 | mov esi,dword[opr_param] |
3401 | fstp dword[opr_param] |
3506 | fstp dword[opr_param] |
Line 3402... | Line -... | ||
3402 | - | ||
3403 | fldz |
3507 | |
3404 | fadd st0,st1 ;0+t |
3508 | fld st0 ;st0=t |
3405 | fmul st0,st0 ;t*t |
3509 | fmul st0,st0 ;t^2 |
Line 3406... | Line 3510... | ||
3406 | fmul st0,st5 ;...*x2 |
3510 | fmul st0,st5 ;(t^2)*x2 |
3407 | 3511 | ||
3408 | fadd dword[opr_param] |
3512 | fadd dword[opr_param] |
3409 | mov dword[opr_param],esi |
3513 | mov dword[opr_param],esi |
Line 3422... | Line 3526... | ||
3422 | fadd st0,st0 |
3526 | fadd st0,st0 |
3423 | fmul st0,st7 ;...*y1 |
3527 | fmul st0,st7 ;...*y1 |
3424 | mov esi,dword[opr_param] |
3528 | mov esi,dword[opr_param] |
3425 | fstp dword[opr_param] |
3529 | fstp dword[opr_param] |
Line 3426... | Line -... | ||
3426 | - | ||
3427 | fldz |
3530 | |
3428 | fadd st0,st1 ;0+t |
3531 | fld st0 ;st0=t |
3429 | fmul st0,st0 ;t*t |
3532 | fmul st0,st0 ;t^2 |
Line 3430... | Line 3533... | ||
3430 | fimul word[coord_p2+2] ;...*y2 |
3533 | fimul word[coord_p2+2] ;(t^2)*y2 |
3431 | 3534 | ||
3432 | fadd dword[opr_param] |
3535 | fadd dword[opr_param] |
3433 | mov dword[opr_param],esi |
3536 | mov dword[opr_param],esi |
Line 5268... | Line 5371... | ||
5268 | dd sz_buf2d_crop_color, buf_crop_color |
5371 | dd sz_buf2d_crop_color, buf_crop_color |
5269 | dd sz_buf2d_offset_h, buf_offset_h |
5372 | dd sz_buf2d_offset_h, buf_offset_h |
5270 | dd sz_buf2d_flood_fill, buf_flood_fill |
5373 | dd sz_buf2d_flood_fill, buf_flood_fill |
5271 | dd sz_buf2d_set_pixel, buf_set_pixel |
5374 | dd sz_buf2d_set_pixel, buf_set_pixel |
5272 | dd sz_buf2d_get_pixel, buf_get_pixel |
5375 | dd sz_buf2d_get_pixel, buf_get_pixel |
- | 5376 | dd sz_buf2d_flip_h, buf_flip_h |
|
5273 | dd sz_buf2d_flip_v, buf_flip_v |
5377 | dd sz_buf2d_flip_v, buf_flip_v |
5274 | dd sz_buf2d_filter_dither, buf_filter_dither |
5378 | dd sz_buf2d_filter_dither, buf_filter_dither |
5275 | dd sz_buf2d_vox_brush_create, vox_brush_create |
5379 | dd sz_buf2d_vox_brush_create, vox_brush_create |
5276 | dd sz_buf2d_vox_brush_delete, vox_brush_delete |
5380 | dd sz_buf2d_vox_brush_delete, vox_brush_delete |
5277 | dd sz_buf2d_vox_obj_get_img_w_3g, buf_vox_obj_get_img_w_3g |
5381 | dd sz_buf2d_vox_obj_get_img_w_3g, buf_vox_obj_get_img_w_3g |
Line 5309... | Line 5413... | ||
5309 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
5413 | sz_buf2d_crop_color db 'buf2d_crop_color',0 |
5310 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
5414 | sz_buf2d_offset_h db 'buf2d_offset_h',0 |
5311 | sz_buf2d_flood_fill db 'buf2d_flood_fill',0 |
5415 | sz_buf2d_flood_fill db 'buf2d_flood_fill',0 |
5312 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
5416 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
5313 | sz_buf2d_get_pixel db 'buf2d_get_pixel',0 |
5417 | sz_buf2d_get_pixel db 'buf2d_get_pixel',0 |
- | 5418 | sz_buf2d_flip_h db 'buf2d_flip_h',0 |
|
5314 | sz_buf2d_flip_v db 'buf2d_flip_v',0 |
5419 | sz_buf2d_flip_v db 'buf2d_flip_v',0 |
5315 | sz_buf2d_filter_dither db 'buf2d_filter_dither',0 |
5420 | sz_buf2d_filter_dither db 'buf2d_filter_dither',0 |
5316 | sz_buf2d_vox_brush_create db 'buf2d_vox_brush_create',0 |
5421 | sz_buf2d_vox_brush_create db 'buf2d_vox_brush_create',0 |
5317 | sz_buf2d_vox_brush_delete db 'buf2d_vox_brush_delete',0 |
5422 | sz_buf2d_vox_brush_delete db 'buf2d_vox_brush_delete',0 |
5318 | sz_buf2d_vox_obj_get_img_w_3g db 'buf2d_vox_obj_get_img_w_3g',0 |
5423 | sz_buf2d_vox_obj_get_img_w_3g db 'buf2d_vox_obj_get_img_w_3g',0 |