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 |