Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2235 → Rev 2236

/programs/media/zsea/backgrnd.inc
43,8 → 43,8
ret
;---------------------------------------------------------------------
.stretch_crop:
; cmp [bgrmode],dword 3
; jne .stretch_inscribe
cmp [bgrmode],dword 3
jne .stretch_inscribe
xor eax,eax
mov [stretch_start_coordinates],eax
120,7 → 120,186
call [Scaling_Start]
call background_1
ret
;---------------------------------------------------------------------
.stretch_inscribe:
xor eax,eax
mov [stretch_start_coordinates],eax
mcall 14
 
mov ebx,eax
and eax,0xffff
inc eax
mov [screen_high],eax
shr ebx,16
inc ebx
mov [screen_width],ebx
xchg eax,ebx
call calculate_relation
mov [screen_relation],eax
mov eax,[img_width]
mov ebx,[img_high]
call calculate_relation
mov [picture_relation],eax
cmp eax,[screen_relation]
ja @f
; Y = Yimg
; X = Yimg*Xscreen/Yscreen
mov eax,[screen_high] ;[img_high]
mov [stretch_img_high],eax
mov eax,[screen_high] ;[img_high]
imul eax,dword [img_width] ;[screen_width]
mov ebx,[img_high] ;[screen_high]
call integer_division
mov [stretch_img_width],eax
jmp .continue_1
@@:
; X = Ximg
; Y = Ximg*Yscreen/Xscreen
mov eax,[screen_width] ;[img_width]
mov [stretch_img_width],eax
mov eax,[screen_width] ;[img_width]
imul eax,dword [img_high] ;[screen_high]
mov ebx,[img_width] ;[screen_width]
call integer_division
mov [stretch_img_high],eax
.continue_1:
; mov ebx,[screen_width]
; shl ebx,16
; add ebx,[screen_high]
mov ebx,[stretch_img_width]
shl ebx,16
add ebx,[stretch_img_high]
 
push dword 0 ; eax - crop size
push dword 0 ; edi - background color
push dword 1 ; esi - filtering
push dword 0 ; edx - scaling mode
push dword [stretch_start_coordinates] ; ecx - start_coordinates
push ebx ; ebx - new_size
push dword image_file ; eax - convert data table
 
call [Scaling_Start]
mov eax,[raw_pointer_2]
mov [crop_raw_pointer],eax
mov [crop_raw_pointer_2],eax
 
mov eax,[raw_pointer_2]
mov eax,[eax+12] ;overall depth of the pixel
cmp al,24
je @f
push dword crop_image_file
call [convert_Conv_24b]
mov ecx,[raw_pointer_2]
mcall 68,13
@@:
mov ecx,[screen_width]
imul ecx,[screen_high]
lea ecx,[ecx*3]
add ecx,44
; mcall 68,20,,[crop_raw_pointer_2]
; mov [crop_raw_pointer_2],eax
mov eax,[crop_raw_pointer_2]
mov [crop_raw_pointer],eax
 
mcall 68,12
mov [crop_raw_pointer_2],eax
 
; fill of color
sub ecx,44
mov edi,eax
add edi,44
mov eax,0xaaaaaa
cld
@@:
stosb
ror eax,8
stosb
ror eax,8
stosb
rol eax,16
sub ecx,2
loop @b
 
; copy of data
mov eax,[screen_width]
sub eax,[stretch_img_width]
mov ebx,eax
lea eax,[eax*3]
shr ebx,1
lea ebx,[ebx*3]
mov edi,[screen_high]
sub edi,[stretch_img_high]
shr edi,1
imul edi,[screen_width]
lea edi,[edi*3]
add edi,[crop_raw_pointer_2]
add edi,44
add edi,ebx
mov esi,[crop_raw_pointer]
add esi,44
 
mov ebx,[stretch_img_width]
lea ebx,[ebx*3]
mov ecx,[stretch_img_high]
@@:
push ecx
mov ecx,ebx
rep movsb
pop ecx
add edi,eax
loop @b
; header
mov esi,[crop_raw_pointer]
mov edi,[crop_raw_pointer_2]
mov ecx,44/4
rep stosd
 
mcall 68,13,[crop_raw_pointer]
;set the background
mov eax,[crop_raw_pointer_2]
mov ebx,[screen_width]
mov [eax+4],ebx
mov ebx,[screen_high]
mov [eax+8],ebx
mov ecx,[screen_width] ; øèðèíà
test ecx,ecx
jz @f
mov edx,[screen_high] ; âûñîòà 
test edx,edx
jz @f
mcall 15,1 ; set size
mov esi,ecx
imul esi,edx
lea esi,[esi*3]
xor edx,edx
mov ecx,[crop_raw_pointer_2]
add ecx,44
mcall 15,5 ;15,5 set data
xor ecx,ecx
inc ecx
mcall 15,4 ; 15,4 set mode
dec ebx ; 15,3 redraw background
mcall
@@:
mcall 68,13,[crop_raw_pointer_2]
ret
;---------------------------------------------------------------------
call_to_calculate_stretch_start_coordinates_X:
dd calculate_stretch_start_coordinates_XL
168,9 → 347,6
inc ecx
jmp calculate_stretch_start_coordinates_YC.1
;---------------------------------------------------------------------
;.stretch_inscribe:
; ret
;---------------------------------------------------------------------
background_1:
mov ecx,[screen_width] ;[crop_img_width] ; øèðèíà
test ecx,ecx
179,7 → 355,7
test edx,edx
jz .end
mcall 15,1 ; set size
 
.1:
mov esi,ecx
imul esi,edx
lea esi,[esi*3]