Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1642 → Rev 1643

/programs/media/animage/trunk/screen.inc
2,9 → 2,7
;--------Move picture from array to work screeen-----------
;----------------------------------------------------------
MovePictureToWorkScreen:
 
call cleare_screen
 
mov eax,[Picture_SizeX]
mov ebx,[Picture_SizeY]
mov ecx,[MaxWorkScreen_SizeX]
12,25 → 10,27
mov esi,[k]
imul eax,esi
imul ebx,esi
 
cmp eax,ecx
jle lab1
 
mov eax,[MaxWorkScreen_SizeX]
mov [WorkScreen_SizeX],eax
jmp lab2
 
lab1:
mov [WorkScreen_SizeX],eax
 
lab2:
 
cmp ebx,edx
jle lab3
mov ebx,[MaxWorkScreen_SizeY]
mov [WorkScreen_SizeY],ebx
jmp lab4
 
lab3:
mov [WorkScreen_SizeY],ebx
 
lab4:
 
mov eax,[WorkScreen_SizeX]
mov ebx,[k]
cdq
49,7 → 49,7
imul eax,ebx
sub ecx,eax
lea ecx,[ecx+ecx*2]
;
 
mov eax,[WorkScreen_SizeX]
mov ebx,[k]
dec ebx
58,7 → 58,6
add eax,ecx
mov [OffsetYWorkScreen],eax
 
 
mov ebx,[Picture_SizeX]
mov eax,[CounterX]
sub ebx,eax
79,16 → 78,16
lea eax,[eax+eax*2]
add eax,[PointerToPicture]
 
 
mov ebx,[ScreenPointer]
 
mov edi,[CounterY]
 
;if size of picture natural(mastab is 1) than move picture to work screen
cmp [k],1
jne no_zoom_1_
 
screen_y_1:
mov esi,[CounterX]
 
screen_x_1:
mov ecx,[eax]
and ecx,0xffffff
105,13 → 104,14
dec edi
jnz screen_y_1
jmp fps
 
no_zoom_1_:
 
cmp [k],2
jne no_zoom_2
 
screen_y_2:
mov esi,[CounterX]
 
screen_x_2:
mov ecx,[eax]
and ecx,0xffffff
139,12 → 139,14
dec edi
jnz screen_y_2
jmp fps
 
no_zoom_2:
 
cmp [k],4
jne no_zoom_4
 
screen_y_4:
mov esi,[CounterX]
 
screen_x_4:
mov ecx,[eax]
and ecx,0xffffff
200,20 → 202,24
dec edi
jnz screen_y_4
jmp fps
 
no_zoom_4:
;if zoom more than 4
screen_y:
mov esi,[CounterX]
 
screen_x:
mov ecx,[eax]
and ecx,0xffffff
mov ebp,ecx
shr ecx,16
push ebx
push eax
;---------------------------------------------------------
push ebx eax
mov edx,[k]
 
big_pixel_y:
mov eax,[k]
 
big_pixel_x:
mov [ebx],bp
mov [ebx+2],cl
223,8 → 229,8
add ebx,[OffsetYBigPixel]
dec edx
jnz big_pixel_y
pop eax
pop ebx
pop eax ebx
;---------------------------------------------------------
mov edx,[k]
lea edx,[edx+edx*2]
add ebx,edx
237,11 → 243,7
jnz screen_y
 
fps:
;mov eax,18
;mov ebx,14
;mcall
 
mov eax,7
;mcall 18,14
mov ebx,[ScreenPointer]
mov ecx,[WorkScreen_SizeX]
mov edx,[WorkScreen_SizeY]
248,14 → 250,13
shl ecx,16
add ecx,edx
mov edx,8*65536+20+15+49+5+1
mcall
 
mcall 7
ret
;----------------------------------------------------------
;--------------------clear screen--------------------------
;----------------------------------------------------------
cleare_screen:
 
mov eax,[ScreenPointer]
mov ebx,[WorkScreen_SizeX]
imul ebx,[WorkScreen_SizeY]
265,12 → 266,10
mov esi,0xffffff
 
clear_screen_loop:
 
mov [eax],esi
mov [eax+3],esi
mov [eax+6],si
add eax,4+4
 
dec ebx
jnz clear_screen_loop
ret
278,7 → 277,6
;-------------cleare work arrea(work screen)---------------
;----------------------------------------------------------
cleare_work_arrea:
 
mov eax,[PointerToPicture]
mov ebx,[Picture_SizeX]
imul ebx,[Picture_SizeY]
288,12 → 286,10
mov esi,0xffffff
 
clear_work_arrea_loop:
 
mov [eax],esi
mov [eax+3],esi
mov [eax+6],si
add eax,4+4
 
dec ebx
jnz clear_work_arrea_loop
ret
301,7 → 297,6
;calculate position work screen on a picture
;-----------------------------------------------------------
CalculatePositionScreen:
 
mov eax,[Picture_SizeX]
mov ebx,[Picture_SizeY]
mov ecx,[CounterX]
308,38 → 303,35
mov edx,[CounterY]
sub eax,ecx
sub ebx,edx
 
cmp [PosX],eax
jle no_limit_screen_x
mov [PosX],eax
 
no_limit_screen_x:
 
cmp [PosY],ebx
jle no_limit_screen_y
mov [PosY],ebx
 
no_limit_screen_y:
 
cmp [PosX],0
jns no_minimum_screen_x
mov [PosX],0
 
no_minimum_screen_x:
 
cmp [PosY],0
jns no_minimum_screen_y
mov [PosY],0
 
no_minimum_screen_y:
 
ret
;-----------------------------------------------------------
;-----------calculate cordinats on work picture--------------
;-----------------------------------------------------------
GetScreenCordinats:
 
mov eax,[MouseX]
mov ebx,[MouseY]
sub eax,9
sub ebx,87
 
mov ecx,[k]
cdq
idiv ecx
348,5 → 340,4
cdq
idiv ecx
mov [ScreenY],eax
 
ret