Subversion Repositories Kolibri OS

Rev

Rev 6801 | Rev 7421 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6801 Rev 6804
Line 108... Line 108...
108
    call    draw_window
108
    call    draw_window
Line 109... Line 109...
109
 
109
 
110
still:
110
still:
111
    mov eax, [image]
111
    mov eax, [image]
112
    test    byte [eax + Image.Flags], Image.IsAnimated
112
    test    byte [eax + Image.Flags], Image.IsAnimated
113
    push    10
113
    push    SF_WAIT_EVENT
114
    pop eax
114
    pop eax
115
    jz  @f
115
    jz  @f
116
    mcall   SF_SYSTEM_GET, SSF_TIME_COUNT
116
    mcall   SF_SYSTEM_GET, SSF_TIME_COUNT
117
    mov edx, [cur_frame]
117
    mov edx, [cur_frame]
Line 120... Line 120...
120
    sub ebx, eax
120
    sub ebx, eax
121
    cmp ebx, [edx + Image.Delay]
121
    cmp ebx, [edx + Image.Delay]
122
    ja  red_update_frame
122
    ja  red_update_frame
123
    test    ebx, ebx
123
    test    ebx, ebx
124
    jz  red_update_frame
124
    jz  red_update_frame
125
    push    23
125
    push    SF_WAIT_EVENT_TIMEOUT
126
    pop eax
126
    pop eax
127
  @@:
127
  @@:
128
    mcall
128
    mcall
129
    dec eax
129
    dec eax
130
    js  red_update_frame
130
    js  red_update_frame
Line 341... Line 341...
341
    or  eax, eax
341
    or  eax, eax
342
    jz  .error
342
    jz  .error
343
    cmp [image], 0
343
    cmp [image], 0
344
    pushf
344
    pushf
345
    mov [image], eax
345
    mov [image], eax
-
 
346
    call    img_resize_to_screen
346
    call    init_frame
347
    call    init_frame
347
    popf
348
    popf
348
    call    update_image_sizes
349
    call    update_image_sizes
349
    call    free_img_data
350
    call    free_img_data
350
    clc
351
    clc
Line 362... Line 363...
362
.error:
363
.error:
363
    call    free_img_data
364
    call    free_img_data
364
    stc
365
    stc
365
    ret
366
    ret
Line -... Line 367...
-
 
367
 
-
 
368
align 4
-
 
369
proc img_resize_to_screen uses eax ebx ecx edx
-
 
370
	mov ebx, [image]
-
 
371
	cmp	[ebx+Image.Type],Image.bpp24
-
 
372
	jne .end_f
-
 
373
	test [ebx+Image.Flags],Image.IsAnimated
-
 
374
	jnz .end_f
-
 
375
	mov eax, [ebx+Image.Data]	
-
 
376
	mov [buf_0],eax
-
 
377
	mov eax, [ebx+Image.Width]
-
 
378
	mov [buf_0.w],eax
-
 
379
	mov eax, [ebx+Image.Height]
-
 
380
	mov [buf_0.h],eax
-
 
381
 
-
 
382
	mcall SF_STYLE_SETTINGS, SSF_GET_SKIN_HEIGHT
-
 
383
	mov edx, [image_padding]
-
 
384
	shl edx, 1
-
 
385
	add edx, eax
-
 
386
	mcall SF_GET_SCREEN_SIZE
-
 
387
	mov ecx, eax
-
 
388
	shr ecx, 17
-
 
389
 
-
 
390
	mov ebx, [image]
-
 
391
	movzx eax,ax
-
 
392
	sub eax, edx
-
 
393
	sub eax, [toolbar_height]
-
 
394
	sub eax, 5-1 ;5 px = border
-
 
395
	cmp eax, 1
-
 
396
	jle .end0
-
 
397
	cmp eax, [ebx+Image.Height]
-
 
398
	jl .end1
-
 
399
	.end0:
-
 
400
		xor eax,eax
-
 
401
		jmp .end2
-
 
402
	.end1:
-
 
403
		mov [ebx+Image.Height],eax
-
 
404
	.end2:
-
 
405
	sub ecx, [image_padding]
-
 
406
	shl ecx, 1
-
 
407
	sub ecx, 10-1 ;10 px = 2 borders
-
 
408
	cmp ecx, 1
-
 
409
	jle .end3
-
 
410
	cmp ecx, [ebx+Image.Width]
-
 
411
	jl .end4
-
 
412
	.end3:
-
 
413
		xor ecx,ecx
-
 
414
		jmp .end5
-
 
415
	.end4:
-
 
416
		mov [ebx+Image.Width],ecx
-
 
417
	.end5:
-
 
418
	cmp eax,ecx
-
 
419
	jne @f
-
 
420
		test eax,eax
-
 
421
		jz .end_f
-
 
422
	@@:
-
 
423
	stdcall [buf2d_resize], buf_0, ecx, eax, 2
-
 
424
.end_f:
-
 
425
	ret
-
 
426
endp
-
 
427
 
366
 
428
align 4
367
free_img_data:
429
free_img_data:
368
    mov eax, [img_data]
430
    mov eax, [img_data]
369
    test    eax, eax
431
    test    eax, eax
370
    jz  @f
432
    jz  @f
Line 1124... Line 1186...
1124
    libio  , 'libio.obj'  , \
1186
    libio  , 'libio.obj'  , \
1125
    libgfx , 'libgfx.obj' , \
1187
    libgfx , 'libgfx.obj' , \
1126
    libimg , 'libimg.obj' , \
1188
    libimg , 'libimg.obj' , \
1127
    libini , 'libini.obj' , \
1189
    libini , 'libini.obj' , \
1128
    sort   , 'sort.obj'   , \
1190
    sort   , 'sort.obj'   , \
1129
    proc_lib ,'proc_lib.obj'
1191
    proc_lib ,'proc_lib.obj',\
-
 
1192
	libbuf2d, 'buf2d.obj'
Line 1130... Line 1193...
1130
 
1193
 
1131
 
1194
 
1132
import  libio             , \
1195
import  libio             , \
Line 1160... Line 1223...
1160
 
1223
 
1161
import  proc_lib, \
1224
import  proc_lib, \
1162
    OpenDialog_Init, 'OpenDialog_init', \
1225
    OpenDialog_Init, 'OpenDialog_init', \
Line -... Line 1226...
-
 
1226
    OpenDialog_Start,'OpenDialog_start'
-
 
1227
 
-
 
1228
import  libbuf2d, \
-
 
1229
	buf2d_init, 'lib_init', \
-
 
1230
	buf2d_resize, 'buf2d_resize'
-
 
1231
 
-
 
1232
align 4
-
 
1233
buf_0: dd 0
-
 
1234
	dw 0,0
-
 
1235
.w: dd 0
-
 
1236
.h: dd 0,0
1163
    OpenDialog_Start,'OpenDialog_start'
1237
	db 24 ;+20 bit in pixel
1164
 
1238
 
1165
bFirstDraw  db  0
1239
bFirstDraw  db  0
1166
bSlideShow  db  0
1240
bSlideShow  db  0