Rev 7929 | Rev 8036 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7929 | Rev 7986 | ||
---|---|---|---|
Line 10... | Line 10... | ||
10 | include '../../../programs/load_img.inc' |
10 | include '../../../programs/load_img.inc' |
11 | include '../../../programs/develop/libraries/TinyGL/asm_fork/opengl_const.inc' |
11 | include '../../../programs/develop/libraries/TinyGL/asm_fork/opengl_const.inc' |
12 | include '../../../programs/develop/libraries/libs-dev/libimg/libimg.inc' |
12 | include '../../../programs/develop/libraries/libs-dev/libimg/libimg.inc' |
13 | include '../../../programs/develop/info3ds/info_fun_float.inc' |
13 | include '../../../programs/develop/info3ds/info_fun_float.inc' |
Line 14... | Line -... | ||
14 | - | ||
15 | txt_buf rb 8 |
- | |
16 | 14 | ||
17 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
15 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
Line 18... | Line 16... | ||
18 | caption db 'Image transform 16.05.20',0 ;¯®¤¯¨áì ®ª |
16 | caption db 'Image transform 26.05.20',0 ;¯®¤¯¨áì ®ª |
Line 19... | Line 17... | ||
19 | 17 | ||
20 | offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc' |
18 | offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc' |
Line 199... | Line 197... | ||
199 | je .end1 |
197 | je .end1 |
200 | push buf_i0 |
198 | push buf_i0 |
201 | jmp .end2 |
199 | jmp .end2 |
202 | .end1: |
200 | .end1: |
203 | push buf_ogl |
201 | push buf_ogl |
204 | ;call [kosglSwapBuffers] |
- | |
205 | .end2: |
202 | .end2: |
206 | stdcall [buf2d_bit_blt], buf_0, [nav_x],[nav_y] ;,... |
203 | stdcall [buf2d_bit_blt], buf_0, [nav_x],[nav_y] ;,... |
Line 207... | Line 204... | ||
207 | 204 | ||
Line 219... | Line 216... | ||
219 | jmp .cycle |
216 | jmp .cycle |
220 | @@: |
217 | @@: |
221 | stdcall convert_int_to_str, 16 |
218 | stdcall convert_int_to_str, 16 |
222 | stdcall str_cat, edi,ebx |
219 | stdcall str_cat, edi,ebx |
223 | stdcall str_cat, edi,txt_space ;§ ¢¥àè î騩 ¯à®¡¥« |
220 | stdcall str_cat, edi,txt_space ;§ ¢¥àè î騩 ¯à®¡¥« |
- | 221 | ;è¨à¨ ¨ ¢ëá®â ¨§®¡à ¦¥¨ï |
|
- | 222 | mov eax,[buf_i0.w] |
|
- | 223 | mov edi,txt_img_w.size |
|
- | 224 | stdcall convert_int_to_str, 16 |
|
- | 225 | mov eax,[buf_i0.h] |
|
- | 226 | mov edi,txt_img_h.size |
|
- | 227 | stdcall convert_int_to_str, 16 |
|
224 | mov byte[calc],0 |
228 | mov byte[calc],0 |
225 | .end0: |
229 | .end0: |
226 | ; *** à¨á®¢ ¨¥ ¡ãä¥à *** |
230 | ; *** à¨á®¢ ¨¥ ¡ãä¥à *** |
227 | stdcall [buf2d_draw], buf_0 |
231 | stdcall [buf2d_draw], buf_0 |
228 | ; *** à¨á®¢ ¨¥ ¯®¤¯¨á¨ à §¬¥à ä ©« *** |
232 | ; *** à¨á®¢ ¨¥ ¯®¤¯¨á¨ à §¬¥à ä ©« *** |
229 | mov ecx,[sc.work_text] |
233 | mov ecx,[sc.work_text] |
230 | or ecx,0x80000000 or (1 shl 30) |
234 | or ecx,0x80000000 or (1 shl 30) |
231 | mov edi,[sc.work] ;梥â ä® ®ª |
235 | mov edi,[sc.work] ;梥â ä® ®ª |
232 | mcall SF_DRAW_TEXT,(275 shl 16)+7,,txt_f_size |
236 | mcall SF_DRAW_TEXT,(275 shl 16)+4,,txt_f_size |
- | 237 | add ebx,9 |
|
- | 238 | mcall ,,,txt_img_w |
|
- | 239 | add ebx,9 |
|
- | 240 | mcall ,,,txt_img_h |
|
233 | popad |
241 | popad |
234 | ret |
242 | ret |
235 | endp |
243 | endp |
Line 236... | Line 244... | ||
236 | 244 | ||
Line 489... | Line 497... | ||
489 | .end0: |
497 | .end0: |
490 | popad |
498 | popad |
491 | ret |
499 | ret |
Line 492... | Line 500... | ||
492 | 500 | ||
493 | align 4 |
501 | align 4 |
494 | proc mouse_left_u uses eax |
502 | proc mouse_left_u uses eax ebx |
495 | call buf_get_mouse_coord |
503 | call buf_get_mouse_coord |
496 | cmp eax,-1 |
504 | cmp eax,-1 |
497 | je .end0 |
505 | je .end0 |
498 | sub [mouse_down_x],eax |
506 | sub [mouse_down_x],eax |
Line -... | Line 507... | ||
- | 507 | sub [mouse_down_y],ebx |
|
- | 508 | ||
- | 509 | cmp dword[sel_act],-1 |
|
- | 510 | je .end1 |
|
- | 511 | ;¤¢¨£ ¥¬ â®çª¨ |
|
- | 512 | mov eax,[sel_act] |
|
- | 513 | imul eax,sizeof.point2d |
|
- | 514 | add eax,sel_pt |
|
- | 515 | ;coord x |
|
- | 516 | mov ebx,dword[eax+point2d.x] |
|
- | 517 | sub ebx,[mouse_down_x] |
|
- | 518 | cmp ebx,0 |
|
- | 519 | jge @f |
|
- | 520 | xor ebx,ebx |
|
- | 521 | @@: |
|
- | 522 | cmp ebx,[buf_i0.w] |
|
- | 523 | jle @f |
|
- | 524 | mov ebx,[buf_i0.w] |
|
- | 525 | @@: |
|
- | 526 | mov dword[eax+point2d.x],ebx |
|
- | 527 | ;coord y |
|
- | 528 | mov ebx,dword[eax+point2d.y] |
|
- | 529 | sub ebx,[mouse_down_y] |
|
- | 530 | cmp ebx,0 |
|
- | 531 | jge @f |
|
- | 532 | xor ebx,ebx |
|
- | 533 | @@: |
|
- | 534 | cmp ebx,[buf_i0.h] |
|
- | 535 | jle @f |
|
- | 536 | mov ebx,[buf_i0.h] |
|
- | 537 | @@: |
|
- | 538 | mov dword[eax+point2d.y],ebx |
|
- | 539 | call points_update_prop |
|
- | 540 | jmp .end2 |
|
- | 541 | .end1: |
|
499 | sub [mouse_down_y],ebx |
542 | |
500 | 543 | ;¤¢¨£ ¥¬ ¨§®¡à ¦¥¨¥ |
|
501 | mov eax,[nav_y] |
544 | mov eax,[nav_y] |
502 | sub eax,[mouse_down_y] |
545 | sub eax,[mouse_down_y] |
503 | cmp eax,[nav_y_min] |
546 | cmp eax,[nav_y_min] |
Line 519... | Line 562... | ||
519 | cmp eax,[nav_x_max] |
562 | cmp eax,[nav_x_max] |
520 | jle @f |
563 | jle @f |
521 | mov eax,[nav_x_max] |
564 | mov eax,[nav_x_max] |
522 | @@: |
565 | @@: |
523 | mov [nav_x],eax |
566 | mov [nav_x],eax |
524 | 567 | .end2: |
|
525 | mov byte[calc],1 |
568 | mov byte[calc],1 |
526 | - | ||
527 | .end0: |
569 | .end0: |
528 | ret |
570 | ret |
529 | endp |
571 | endp |
Line 530... | Line 572... | ||
530 | 572 | ||
Line 618... | Line 660... | ||
618 | mov dword[run_file_70.Buffer], open_b |
660 | mov dword[run_file_70.Buffer], open_b |
619 | mov byte[run_file_70+20], 0 |
661 | mov byte[run_file_70+20], 0 |
620 | mov dword[run_file_70.FileName], openfile_path |
662 | mov dword[run_file_70.FileName], openfile_path |
621 | mcall SF_FILE,run_file_70 |
663 | mcall SF_FILE,run_file_70 |
Line 622... | Line -... | ||
622 | - | ||
623 | ;mov eax,dword[open_b+32] |
- | |
624 | ;mov edi,txt_buf |
- | |
625 | ;stdcall convert_int_to_str,20 |
- | |
626 | ;notify_window_run txt_buf |
- | |
627 | 664 | ||
628 | mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©« ¢ ¡ ©â å |
665 | mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©« ¢ ¡ ©â å |
629 | mov [open_file_size],ecx |
666 | mov [open_file_size],ecx |
630 | stdcall mem.ReAlloc,[open_file_img],ecx ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
667 | stdcall mem.ReAlloc,[open_file_img],ecx ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥¨ï |
Line 682... | Line 719... | ||
682 | stdcall getNextPowerOfTwo,[ebx+4] |
719 | stdcall getNextPowerOfTwo,[ebx+4] |
683 | cmp eax,[ebx+4] |
720 | cmp eax,[ebx+4] |
684 | jg @f |
721 | jg @f |
685 | mov eax,[ebx+4] |
722 | mov eax,[ebx+4] |
686 | @@: |
723 | @@: |
- | 724 | mov ecx,eax ;à §¬¥à ¯® x |
|
- | 725 | stdcall getNextPowerOfTwo,[ebx+8] |
|
687 | mov ecx,eax |
726 | cmp eax,[ebx+8] |
- | 727 | jg @f |
|
688 | mov edx,[ebx+8] |
728 | mov eax,[ebx+8] |
- | 729 | @@: |
|
- | 730 | mov edx,eax ;à §¬¥à ¯® y |
|
689 | stdcall [buf2d_resize], edi, ecx,edx,1 ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
731 | stdcall [buf2d_resize], edi, ecx,edx,1 ;¨§¬¥ï¥¬ à §¬¥àë ¡ãä¥à |
- | 732 | stdcall [buf2d_clear], edi, buf2d_color |
|
690 | sub ecx,[ebx+4] |
733 | sub ecx,[ebx+4] |
691 | shr ecx,1 |
734 | shr ecx,1 |
692 | mov [buf_cop.l],cx |
735 | mov [buf_cop.l],cx |
- | 736 | sub edx,[ebx+8] |
|
- | 737 | shr edx,1 |
|
- | 738 | mov [buf_cop.t],dx |
|
693 | stdcall [buf2d_bit_blt], edi, ecx,0, buf_cop |
739 | stdcall [buf2d_bit_blt], edi, ecx,edx, buf_cop |
694 | .end_1: |
740 | .end_1: |
Line 695... | Line 741... | ||
695 | 741 | ||
696 | ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¯à¥®¡à §®¢ ®£® ¨§®¡à ¦¥¨ï |
742 | ;ᮧ¤ ¥¬ ¡ãä¥à ¤«ï ¯à¥®¡à §®¢ ®£® ¨§®¡à ¦¥¨ï |
697 | mov edi,buf_ogl |
743 | mov edi,buf_ogl |
Line 740... | Line 786... | ||
740 | 786 | ||
741 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à ¢ ebx |
787 | ;㤠«ï¥¬ ¢à¥¬¥ë© ¡ãä¥à ¢ ebx |
Line 742... | Line 788... | ||
742 | stdcall [img_destroy], ebx |
788 | stdcall [img_destroy], ebx |
- | 789 | ||
743 | 790 | movzx eax,word[buf_cop.l] |
|
Line 744... | Line 791... | ||
744 | movzx eax,word[buf_cop.l] |
791 | movzx ebx,word[buf_cop.t] |
745 | stdcall points_init_2,eax |
- | |
746 | - | ||
747 | call calc_nav_params |
- | |
748 | xor eax,eax |
- | |
749 | mov [nav_x],eax |
- | |
750 | mov ebx,[nav_x_max] |
792 | stdcall points_init_2,eax,ebx |
751 | cmp ebx,0 |
- | |
752 | jle @f |
- | |
753 | ;¥á«¨ ¬ «¥ìª®¥ ¨§®¡à ¦¥¨¥ â® áâ ¢¨¬ ¯® æ¥âàã |
- | |
754 | shr ebx,1 |
- | |
755 | mov [nav_x],ebx |
- | |
756 | @@: |
- | |
757 | mov [nav_y],eax |
- | |
758 | mov ebx,[nav_y_max] |
- | |
759 | cmp ebx,0 |
- | |
760 | jle @f |
- | |
761 | ;¥á«¨ ¬ «¥ìª®¥ ¨§®¡à ¦¥¨¥ â® áâ ¢¨¬ ¯® æ¥âàã |
- | |
762 | shr ebx,1 |
793 | |
763 | mov [nav_y],ebx |
794 | call calc_nav_params |
764 | @@: |
795 | stdcall nav_to_point, dword[sel_pt+point2d.x],dword[sel_pt+point2d.y] |
765 | mov byte[view_b],0 |
796 | mov byte[view_b],0 |
Line 771... | Line 802... | ||
771 | popad |
802 | popad |
772 | ret |
803 | ret |
773 | endp |
804 | endp |
Line 774... | Line 805... | ||
774 | 805 | ||
- | 806 | align 4 |
|
- | 807 | proc nav_to_point, coord_x:dword, coord_y:dword |
|
- | 808 | ;coord x |
|
- | 809 | mov eax,[nav_x_max] |
|
- | 810 | cmp eax,0 |
|
- | 811 | jle @f |
|
- | 812 | ;¥á«¨ ¬ «¥ìª®¥ ¨§®¡à ¦¥¨¥ â® áâ ¢¨¬ ¯® æ¥âàã |
|
- | 813 | shr eax,1 |
|
- | 814 | jmp .end0 |
|
- | 815 | @@: |
|
- | 816 | mov eax,[buf_0.w] |
|
- | 817 | shr eax,1 |
|
- | 818 | sub eax,[coord_x] |
|
- | 819 | cmp eax,[nav_x_min] |
|
- | 820 | jge @f |
|
- | 821 | mov eax,[nav_x_min] |
|
- | 822 | @@: |
|
- | 823 | cmp eax,[nav_x_max] |
|
- | 824 | jle .end0 |
|
- | 825 | mov eax,[nav_x_max] |
|
- | 826 | .end0: |
|
- | 827 | mov [nav_x],eax |
|
- | 828 | ;coord y |
|
- | 829 | mov eax,[nav_y_max] |
|
- | 830 | cmp eax,0 |
|
- | 831 | jle @f |
|
- | 832 | ;¥á«¨ ¬ «¥ìª®¥ ¨§®¡à ¦¥¨¥ â® áâ ¢¨¬ ¯® æ¥âàã |
|
- | 833 | shr eax,1 |
|
- | 834 | jmp .end1 |
|
- | 835 | @@: |
|
- | 836 | mov eax,[buf_0.h] |
|
- | 837 | shr eax,1 |
|
- | 838 | sub eax,[coord_y] |
|
- | 839 | cmp eax,[nav_y_min] |
|
- | 840 | jge @f |
|
- | 841 | mov eax,[nav_y_min] |
|
- | 842 | @@: |
|
- | 843 | cmp eax,[nav_y_max] |
|
- | 844 | jle .end1 |
|
- | 845 | mov eax,[nav_y_max] |
|
- | 846 | .end1: |
|
- | 847 | mov [nav_y],eax |
|
- | 848 | ret |
|
- | 849 | endp |
|
- | 850 | ||
775 | align 4 |
851 | align 4 |
776 | proc getNextPowerOfTwo uses ebx, n:dword |
852 | proc getNextPowerOfTwo uses ebx, n:dword |
777 | mov ebx,[n] |
853 | mov ebx,[n] |
778 | mov eax,8 ;min size |
854 | mov eax,8 ;min size |
779 | cmp ebx,eax |
855 | cmp ebx,eax |
Line 1088... | Line 1164... | ||
1088 | ' ï ¯à®£à ¬¬ ᤥ« ¤«ï ¯à¥®¡à §®¢ ¨ï ¨§®¡à ¦¥¨©.',13,10,\ |
1164 | ' ï ¯à®£à ¬¬ ᤥ« ¤«ï ¯à¥®¡à §®¢ ¨ï ¨§®¡à ¦¥¨©.',13,10,\ |
1089 | '®á«¥ ®âªàëâ¨ï ä ©« ¨§®¡à ¦¥¨ï 㦮 㪠§ âì 4 â®çª¨,',13,10,\ |
1165 | '®á«¥ ®âªàëâ¨ï ä ©« ¨§®¡à ¦¥¨ï 㦮 㪠§ âì 4 â®çª¨,',13,10,\ |
1090 | 'ª®â®àë¥ áâ ãâ 㣫 ¬¨ ¯à¥®¡à §®¢ ®£® ¨§®¡à ¦¥¨ï." -tI',0 |
1166 | 'ª®â®àë¥ áâ ãâ 㣫 ¬¨ ¯à¥®¡à §®¢ ®£® ¨§®¡à ¦¥¨ï." -tI',0 |
1091 | txt_pref db ' ¡ ',0,' ¡',0,' ¡',0,' ¡',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ |
1167 | txt_pref db ' ¡ ',0,' ¡',0,' ¡',0,' ¡',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ |
1092 | txt_f_size db ' §¬¥à: ' |
1168 | txt_f_size db ' §¬¥à: ' |
- | 1169 | .size: rb 16 |
|
- | 1170 | txt_img_w db '¨à¨ : ' |
|
- | 1171 | .size: rb 16 |
|
- | 1172 | txt_img_h db 'ëá®â : ' |
|
1093 | else |
1173 | else |
1094 | txt_err_save_img_file db 'Can',39,'t save *.png file.',0 |
1174 | txt_err_save_img_file db 'Can',39,'t save *.png file.',0 |
1095 | txt_about db '"About',13,10,\ |
1175 | txt_about db '"About',13,10,\ |
1096 | 'This program is designed to convert images.',13,10,\ |
1176 | 'This program is designed to convert images.',13,10,\ |
1097 | 'After opening the image file, you need to specify 4 points',13,10,\ |
1177 | 'After opening the image file, you need to specify 4 points',13,10,\ |
1098 | 'that will become the corners of the converted image." -tI',0 |
1178 | 'that will become the corners of the converted image." -tI',0 |
1099 | txt_pref db ' b ',0,' Kb',0,' Mb',0,' Gb',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ |
1179 | txt_pref db ' b ',0,' Kb',0,' Mb',0,' Gb',0 ;¯à¨áâ ¢ª¨: ª¨«®, ¬¥£ , £¨£ |
1100 | txt_f_size db 'Size: ' |
1180 | txt_f_size db 'Size: ' |
- | 1181 | .size: rb 16 |
|
- | 1182 | txt_img_w db 'Width: ' |
|
- | 1183 | .size: rb 16 |
|
- | 1184 | txt_img_h db 'Height: ' |
|
1101 | end if |
1185 | end if |
1102 | .size: rb 16 |
1186 | .size: rb 16 |
Line 1103... | Line 1187... | ||
1103 | 1187 | ||
Line 1281... | Line 1365... | ||
1281 | buf_0: dd 0 |
1365 | buf_0: dd 0 |
1282 | .l: dw 5 ;+4 left |
1366 | .l: dw 5 ;+4 left |
1283 | .t: dw 35 ;+6 top |
1367 | .t: dw 35 ;+6 top |
1284 | .w: dd 6*64 ;+8 w |
1368 | .w: dd 6*64 ;+8 w |
1285 | .h: dd 7*64 ;+12 h |
1369 | .h: dd 7*64 ;+12 h |
1286 | .color: dd 0xffffff ;+16 color |
1370 | .color: dd 0x808080 ;+16 color |
1287 | db 24 ;+20 bit in pixel |
1371 | db 24 ;+20 bit in pixel |
Line 1288... | Line 1372... | ||
1288 | 1372 | ||
1289 | align 4 |
1373 | align 4 |
1290 | buf_font: |
1374 | buf_font: |
Line 1331... | Line 1415... | ||
1331 | mouse_down_x dd ? |
1415 | mouse_down_x dd ? |
1332 | mouse_down_y dd ? |
1416 | mouse_down_y dd ? |
1333 | sel_act dd ? ;â®çª ¢ë¡à ï ¤«ï । ªâ¨à®¢ ¨ï á ª« ¢¨ âãàë |
1417 | sel_act dd ? ;â®çª ¢ë¡à ï ¤«ï । ªâ¨à®¢ ¨ï á ª« ¢¨ âãàë |
1334 | sel_pt rb 8*sizeof.point2d ;â®çª¨ ¤«ï ¢ë¡®à 4-å 㣫®¢ |
1418 | sel_pt rb 8*sizeof.point2d ;â®çª¨ ¤«ï ¢ë¡®à 4-å 㣫®¢ |
1335 | last_time dd 0 |
1419 | last_time dd 0 |
- | 1420 | txt_buf rb 8 |
|
1336 | procinfo process_information |
1421 | procinfo process_information |
1337 | sc system_colors |
1422 | sc system_colors |
1338 | run_file_70 FileInfoBlock |
1423 | run_file_70 FileInfoBlock |
1339 | rb 4096 |
1424 | rb 4096 |
1340 | align 16 |
1425 | align 16 |