Subversion Repositories Kolibri OS

Rev

Rev 3138 | Rev 6175 | 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