Subversion Repositories Kolibri OS

Rev

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