Subversion Repositories Kolibri OS

Rev

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

Rev 6013 Rev 6100
Line 5... Line 5...
5
	dd mem,stacktop
5
	dd mem,stacktop
6
	dd 0,cur_dir_path
6
	dd 0,cur_dir_path
Line 7... Line 7...
7
 
7
 
8
include '../../../../../proc32.inc'
8
include '../../../../../proc32.inc'
-
 
9
include '../../../../../macros.inc'
9
include '../../../../../macros.inc'
10
include '../../../../../KOSfuncs.inc'
10
include '../../../../../develop/libraries/box_lib/load_lib.mac'
11
include '../../../../../develop/libraries/box_lib/load_lib.mac'
11
include '../../../../../dll.inc'
12
include '../../../../../dll.inc'
12
include '../opengl_const.inc'
13
include '../opengl_const.inc'
Line 25... Line 26...
25
ends
26
ends
Line 26... Line 27...
26
 
27
 
27
image_data dd 0 ;указатель на временную память, нужен для преобразования изображения
28
image_data dd 0 ;указатель на временную память, нужен для преобразования изображения
28
image_data_toolbar dd 0
29
image_data_toolbar dd 0
-
 
30
IMAGE_FILE1_SIZE equ 128*144*3+54 ;размер файла с изображением
-
 
31
IMAGE_TOOLBAR_ICON_SIZE equ 256*3
Line 29... Line 32...
29
IMAGE_FILE1_SIZE equ 128*144*3+54 ;размер файла с изображением
32
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*3+54
30
 
33
 
31
macro load_image_file path,buf,size { ;макрос для загрузки изображений
34
macro load_image_file path,buf,size { ;макрос для загрузки изображений
32
	;path - может быть переменной или строковым параметром
35
	;path - может быть переменной или строковым параметром
Line 41... Line 44...
41
	else
44
	else
42
		copy_path path,[32],file_name,0 ;формируем полный путь к файлу изображения, подразумеваем что он в одной папке с программой
45
		copy_path path,[32],file_name,0 ;формируем полный путь к файлу изображения, подразумеваем что он в одной папке с программой
43
	end if
46
	end if
44
	stdcall mem.Alloc, dword size ;выделяем память для изображения
47
	stdcall mem.Alloc, dword size ;выделяем память для изображения
45
	mov [buf],eax
48
	mov [buf],eax
46
	mov [run_file_70.Function], 0
49
	mov [run_file_70.Function], SSF_READ_FILE
47
	mov [run_file_70.Position], 0
50
	mov [run_file_70.Position], 0
48
	mov [run_file_70.Flags], 0
51
	mov [run_file_70.Flags], 0
49
	mov [run_file_70.Count], dword size
52
	mov [run_file_70.Count], dword size
50
	mov [run_file_70.Buffer], eax
53
	mov [run_file_70.Buffer], eax
51
	mov byte[run_file_70+20], 0
54
	mov byte[run_file_70+20], 0
52
	mov [run_file_70.FileName], file_name
55
	mov [run_file_70.FileName], file_name
53
	mcall 70,run_file_70 ;загружаем файл изображения
56
	mcall SF_FILE,run_file_70 ;загружаем файл изображения
54
	cmp ebx,0xffffffff
57
	cmp ebx,0xffffffff
55
	je @f
58
	je @f
56
		;определяем вид изображения и переводим его во временный буфер image_data
59
		;определяем вид изображения и переводим его во временный буфер image_data
57
		stdcall dword[img_decode], dword[buf],ebx,0
60
		stdcall dword[img_decode], dword[buf],ebx,0
58
		mov dword[image_data],eax
61
		mov dword[image_data],eax
Line 71... Line 74...
71
	;проверка на сколько удачно загузились библиотеки
74
	;проверка на сколько удачно загузились библиотеки
72
	mov	ebp,lib_0
75
	mov	ebp,lib_0
73
	.test_lib_open:
76
	.test_lib_open:
74
	cmp	dword [ebp+ll_struc_size-4],0
77
	cmp	dword [ebp+ll_struc_size-4],0
75
	jz	@f
78
	jz	@f
76
		mcall -1 ;exit not correct
79
		mcall SF_TERMINATE_PROCESS
77
	@@:
80
	@@:
78
	add ebp,ll_struc_size
81
	add ebp,ll_struc_size
79
	cmp ebp,l_libs_end
82
	cmp ebp,l_libs_end
80
	jl .test_lib_open
83
	jl .test_lib_open
Line -... Line 84...
-
 
84
 
81
 
85
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.sys_colors_new
Line 82... Line 86...
82
	mcall 40,0x27
86
	mcall SF_SET_EVENTS_MASK,0x27
83
 
87
 
84
	stdcall [kosglMakeCurrent], 10,10,[buf_ogl.w],[buf_ogl.h],ctx1
88
	stdcall [kosglMakeCurrent], 5,30,[buf_ogl.w],[buf_ogl.h],ctx1
85
	stdcall [glEnable], GL_DEPTH_TEST
89
	stdcall [glEnable], GL_DEPTH_TEST
86
	stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов
90
	stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов
Line 98... Line 102...
98
	load_image_file 'font8x9.bmp', image_data_toolbar,IMAGE_FILE1_SIZE
102
	load_image_file 'font8x9.bmp', image_data_toolbar,IMAGE_FILE1_SIZE
99
	stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;создаем буфер
103
	stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;создаем буфер
100
	stdcall mem.Free,[image_data_toolbar] ;освобождаем память
104
	stdcall mem.Free,[image_data_toolbar] ;освобождаем память
101
	stdcall [buf2d_conv_24_to_8], buf_1,1 ;делаем буфер прозрачности 8 бит
105
	stdcall [buf2d_conv_24_to_8], buf_1,1 ;делаем буфер прозрачности 8 бит
102
	stdcall [buf2d_convert_text_matrix], buf_1
106
	stdcall [buf2d_convert_text_matrix], buf_1
-
 
107
 
-
 
108
	load_image_file 'toolb_1.png', image_data_toolbar,IMAGE_TOOLBAR_SIZE
103
	call draw_3d
109
	call draw_3d
Line 104... Line 110...
104
 
110
 
105
align 4
111
align 4
106
red_win:
112
red_win:
Line 107... Line 113...
107
	call draw_window
113
	call draw_window
108
 
114
 
109
align 4
115
align 4
110
still:
116
still:
111
	mcall 10
117
	mcall SF_WAIT_EVENT
112
	cmp al,1
118
	cmp al,1
113
	jz red_win
119
	jz red_win
114
	cmp al,2
120
	cmp al,2
Line 118... Line 124...
118
	jmp still
124
	jmp still
Line 119... Line 125...
119
 
125
 
120
align 4
126
align 4
121
draw_window:
127
draw_window:
122
	pushad
128
	pushad
-
 
129
	mcall SF_REDRAW,SSF_BEGIN_DRAW
Line 123... Line 130...
123
	mcall 12,1
130
	mcall SF_CREATE_WINDOW,(50 shl 16)+420,(30 shl 16)+410,0x33ffffff,,caption
-
 
131
 
-
 
132
	mov esi,[sc.work_button]
124
 
133
	mcall SF_DEFINE_BUTTON,(5 shl 16)+20,(5 shl 16)+20,3 ;вершины вкл.
-
 
134
	mcall ,(30 shl 16)+20,,4 ;каркасные грани вкл.
-
 
135
	mcall ,(55 shl 16)+20,,5 ;сплошные грани вкл.
-
 
136
 
-
 
137
	mcall SF_PUT_IMAGE,[image_data_toolbar],(16 shl 16)+16,(7 shl 16)+7 ;вершины вкл.
125
	mov edx,0x33ffffff ;0x73ffffff
138
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
-
 
139
	mcall ,,,(32 shl 16)+7 ;каркасные грани вкл.
Line -... Line 140...
-
 
140
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
126
	mcall 0,(50 shl 16)+430,(30 shl 16)+400,,,caption
141
	mcall ,,,(57 shl 16)+7 ;сплошные грани вкл.
127
	stdcall [kosglSwapBuffers]
142
 
128
 
143
	stdcall [kosglSwapBuffers]
Line 129... Line 144...
129
	mcall 12,2
144
	mcall SF_REDRAW,SSF_END_DRAW
130
	popad
145
	popad
131
	ret
146
	ret
Line 132... Line 147...
132
 
147
 
133
align 4
148
align 4
Line 134... Line 149...
134
key:
149
key:
Line 224... Line 239...
224
 
239
 
Line 225... Line 240...
225
	jmp still
240
	jmp still
226
 
241
 
-
 
242
align 4
-
 
243
button:
227
align 4
244
	mcall SF_GET_BUTTON
-
 
245
	cmp ah,3
-
 
246
	jne @f
-
 
247
		call but_st_point
-
 
248
		jmp still
-
 
249
	@@:
-
 
250
	cmp ah,4
-
 
251
	jne @f
-
 
252
		call but_st_line
-
 
253
		jmp still
-
 
254
	@@:
-
 
255
	cmp ah,5
-
 
256
	jne @f
-
 
257
		call but_st_face
228
button:
258
		jmp still
229
	mcall 17
259
	@@:
230
	cmp ah,1
260
	cmp ah,1
231
	jne still
261
	jne still
232
.exit:
262
.exit:
-
 
263
	stdcall [gluDeleteQuadric], [qObj]
-
 
264
	stdcall mem.Free,[image_data_toolbar]
-
 
265
	mcall SF_TERMINATE_PROCESS
-
 
266
 
-
 
267
align 4
-
 
268
but_st_point:
-
 
269
	stdcall [gluQuadricDrawStyle], [qObj],GLU_POINT
-
 
270
	call draw_3d
-
 
271
	stdcall [kosglSwapBuffers]
-
 
272
	ret
-
 
273
 
-
 
274
align 4
233
	stdcall [gluDeleteQuadric], [qObj]
275
but_st_line:
-
 
276
	stdcall [gluQuadricDrawStyle], [qObj],GLU_LINE
-
 
277
	call draw_3d
-
 
278
	stdcall [kosglSwapBuffers]
-
 
279
	ret
-
 
280
 
-
 
281
align 4
-
 
282
but_st_face:
-
 
283
	stdcall [gluQuadricDrawStyle], [qObj],GLU_FILL
-
 
284
	call draw_3d
Line 234... Line 285...
234
	;stdcall mem.Free,[image_data_toolbar]
285
	stdcall [kosglSwapBuffers]
235
	mcall -1
286
	ret
236
 
287
 
Line 482... Line 533...
482
l_libs_end:
533
l_libs_end:
Line 483... Line 534...
483
 
534
 
484
align 4
535
align 4
485
i_end:
536
i_end:
-
 
537
	run_file_70 FileInfoBlock
-
 
538
	sc system_colors
486
	run_file_70 FileInfoBlock
539
		rb sizeof.sys_colors_new-sizeof.system_colors
487
align 16
540
align 16
488
	rb 4096
541
	rb 4096
489
stacktop:
542
stacktop:
490
	cur_dir_path rb 4096
543
	cur_dir_path rb 4096