Subversion Repositories Kolibri OS

Rev

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

Rev 6737 Rev 8174
Line 1... Line 1...
1
use32
1
use32
2
	org 0x0
2
	org 0
3
	db 'MENUET01'
3
	db 'MENUET01'
4
	dd 1,start,i_end,mem,stacktop,0,cur_dir_path
4
	dd 1,start,i_end,mem,stacktop,0,cur_dir_path
Line 5... Line 5...
5
 
5
 
6
include '../../../../../proc32.inc'
6
include '../../../../../proc32.inc'
7
include '../../../../../macros.inc'
7
include '../../../../../macros.inc'
8
include '../../../../../KOSfuncs.inc'
8
include '../../../../../KOSfuncs.inc'
9
include '../../../../../load_img.inc'
9
include '../../../../../load_img.inc'
-
 
10
include '../opengl_const.inc'
10
include '../opengl_const.inc'
11
include '../zbuffer.inc'
Line 11... Line 12...
11
include '../../../../../develop/info3ds/info_fun_float.inc'
12
include '../../../../../develop/info3ds/info_fun_float.inc'
Line 12... Line 13...
12
 
13
 
13
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
14
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
14
 
15
 
Line -... Line 16...
-
 
16
align 4
-
 
17
image_data_toolbar dd 0
15
align 4
18
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
-
 
19
 
-
 
20
;Макрос для параметров типа double (8 байт)
Line 16... Line 21...
16
image_data_toolbar dd 0
21
macro glpush GLDoubleVar {
17
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
22
	push dword[GLDoubleVar+4]
18
 
23
	push dword[GLDoubleVar]
19
offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc'
24
}
Line 36... Line 41...
36
	mcall SF_SET_EVENTS_MASK,0x27
41
	mcall SF_SET_EVENTS_MASK,0x27
Line 37... Line 42...
37
 
42
 
38
	stdcall [kosglMakeCurrent], 5,30,[buf_ogl.w],[buf_ogl.h],ctx1
43
	stdcall [kosglMakeCurrent], 5,30,[buf_ogl.w],[buf_ogl.h],ctx1
39
	stdcall [glEnable], GL_DEPTH_TEST
44
	stdcall [glEnable], GL_DEPTH_TEST
40
	stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов
45
	stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов
41
	stdcall [gluNewQuadric]
46
	call [gluNewQuadric]
Line 42... Line 47...
42
	mov [qObj],eax
47
	mov [qObj],eax
43
 
48
 
Line 44... Line 49...
44
	stdcall [glClearColor], 0.25,0.25,0.25,0.0
49
	stdcall [glClearColor], 0.25,0.25,0.25,0.0
45
	stdcall [glShadeModel], GL_SMOOTH
50
	stdcall [glShadeModel], GL_SMOOTH
46
 
51
 
47
	mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
52
	mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
Line 48... Line 53...
48
	mov eax,[eax] ;eax -> ZBuffer
53
	mov eax,[eax] ;eax -> ZBuffer
49
	mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf
54
	mov eax,[eax+ZBuffer.pbuf]
50
	mov dword[buf_ogl],eax
55
	mov dword[buf_ogl],eax
Line 94... Line 99...
94
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
99
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
95
	mcall ,,,(95 shl 16)+5 ;масштаб +
100
	mcall ,,,(95 shl 16)+5 ;масштаб +
96
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
101
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
97
	mcall ,,,(125 shl 16)+5 ;масштаб -
102
	mcall ,,,(125 shl 16)+5 ;масштаб -
Line 98... Line 103...
98
 
103
 
99
	stdcall [kosglSwapBuffers]
104
	call [kosglSwapBuffers]
100
	mcall SF_REDRAW,SSF_END_DRAW
105
	mcall SF_REDRAW,SSF_END_DRAW
101
	popad
106
	popad
Line 102... Line 107...
102
	ret
107
	ret
Line 128... Line 133...
128
		fstp qword[Data_Double]
133
		fstp qword[Data_Double]
129
		call DoubleFloat_to_String
134
		call DoubleFloat_to_String
130
		mov byte[txt_angle_y.v],0
135
		mov byte[txt_angle_y.v],0
131
		stdcall str_cat, txt_angle_y.v,Data_String
136
		stdcall str_cat, txt_angle_y.v,Data_String
132
		call draw_3d
137
		call draw_3d
133
		stdcall [kosglSwapBuffers]
138
		call [kosglSwapBuffers]
-
 
139
		jmp still
134
	@@:
140
	@@:
135
	cmp ah,177 ;Down
141
	cmp ah,177 ;Down
136
	jne @f
142
	jne @f
137
		finit
143
		finit
138
		fld dword[angle_y]
144
		fld dword[angle_y]
Line 142... Line 148...
142
		fstp qword[Data_Double]
148
		fstp qword[Data_Double]
143
		call DoubleFloat_to_String
149
		call DoubleFloat_to_String
144
		mov byte[txt_angle_y.v],0
150
		mov byte[txt_angle_y.v],0
145
		stdcall str_cat, txt_angle_y.v,Data_String
151
		stdcall str_cat, txt_angle_y.v,Data_String
146
		call draw_3d
152
		call draw_3d
147
		stdcall [kosglSwapBuffers]
153
		call [kosglSwapBuffers]
-
 
154
		jmp still
148
	@@:
155
	@@:
149
	cmp ah,176 ;Left
156
	cmp ah,176 ;Left
150
	jne @f
157
	jne @f
151
		finit
158
		finit
152
		fld dword[angle_z]
159
		fld dword[angle_z]
Line 156... Line 163...
156
		fstp qword[Data_Double]
163
		fstp qword[Data_Double]
157
		call DoubleFloat_to_String
164
		call DoubleFloat_to_String
158
		mov byte[txt_angle_z.v],0
165
		mov byte[txt_angle_z.v],0
159
		stdcall str_cat, txt_angle_z.v,Data_String
166
		stdcall str_cat, txt_angle_z.v,Data_String
160
		call draw_3d
167
		call draw_3d
161
		stdcall [kosglSwapBuffers]
168
		call [kosglSwapBuffers]
-
 
169
		jmp still
162
	@@:
170
	@@:
163
	cmp ah,179 ;Right
171
	cmp ah,179 ;Right
164
	jne @f
172
	jne @f
165
		finit
173
		finit
166
		fld dword[angle_z]
174
		fld dword[angle_z]
Line 170... Line 178...
170
		fstp qword[Data_Double]
178
		fstp qword[Data_Double]
171
		call DoubleFloat_to_String
179
		call DoubleFloat_to_String
172
		mov byte[txt_angle_z.v],0
180
		mov byte[txt_angle_z.v],0
173
		stdcall str_cat, txt_angle_z.v,Data_String
181
		stdcall str_cat, txt_angle_z.v,Data_String
174
		call draw_3d
182
		call draw_3d
175
		stdcall [kosglSwapBuffers]
183
		call [kosglSwapBuffers]
-
 
184
		;jmp still
176
	@@:
185
	@@:
Line 177... Line 186...
177
 
186
 
Line 178... Line 187...
178
	jmp still
187
	jmp still
Line 214... Line 223...
214
 
223
 
215
align 4
224
align 4
216
but_st_point:
225
but_st_point:
217
	stdcall [gluQuadricDrawStyle], [qObj],GLU_POINT
226
	stdcall [gluQuadricDrawStyle], [qObj],GLU_POINT
218
	call draw_3d
227
	call draw_3d
219
	stdcall [kosglSwapBuffers]
228
	call [kosglSwapBuffers]
Line 220... Line 229...
220
	ret
229
	ret
221
 
230
 
222
align 4
231
align 4
223
but_st_line:
232
but_st_line:
224
	stdcall [gluQuadricDrawStyle], [qObj],GLU_LINE
233
	stdcall [gluQuadricDrawStyle], [qObj],GLU_LINE
225
	call draw_3d
234
	call draw_3d
Line 226... Line 235...
226
	stdcall [kosglSwapBuffers]
235
	call [kosglSwapBuffers]
227
	ret
236
	ret
228
 
237
 
229
align 4
238
align 4
230
but_st_face:
239
but_st_face:
231
	stdcall [gluQuadricDrawStyle], [qObj],GLU_FILL
240
	stdcall [gluQuadricDrawStyle], [qObj],GLU_FILL
Line 232... Line 241...
232
	call draw_3d
241
	call draw_3d
233
	stdcall [kosglSwapBuffers]
242
	call [kosglSwapBuffers]
234
	ret
243
	ret
Line 251... Line 260...
251
	fstp qword[Data_Double]
260
	fstp qword[Data_Double]
252
	call DoubleFloat_to_String
261
	call DoubleFloat_to_String
253
	mov byte[txt_scale.v],0
262
	mov byte[txt_scale.v],0
254
	stdcall str_cat, txt_scale.v,Data_String
263
	stdcall str_cat, txt_scale.v,Data_String
255
	call draw_3d
264
	call draw_3d
256
	stdcall [kosglSwapBuffers]
265
	call [kosglSwapBuffers]
257
	ret
266
	ret
Line 258... Line 267...
258
 
267
 
259
align 4
268
align 4
260
but_zoom_m:
269
but_zoom_m:
Line 274... Line 283...
274
	fstp qword[Data_Double]
283
	fstp qword[Data_Double]
275
	call DoubleFloat_to_String
284
	call DoubleFloat_to_String
276
	mov byte[txt_scale.v],0
285
	mov byte[txt_scale.v],0
277
	stdcall str_cat, txt_scale.v,Data_String
286
	stdcall str_cat, txt_scale.v,Data_String
278
	call draw_3d
287
	call draw_3d
279
	stdcall [kosglSwapBuffers]
288
	call [kosglSwapBuffers]
280
	ret
289
	ret
Line 281... Line 290...
281
 
290
 
282
 
291
 
283
align 4
-
 
284
caption db 'Test gluSphere, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
-
 
285
align 4
-
 
Line 286... Line 292...
286
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
292
align 4
287
;sizeof.TinyGLContext = 28
293
caption db 'Test gluSphere, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
288
 
294
 
Line 289... Line 295...
289
align 4
295
align 4
290
draw_3d:
296
draw_3d:
Line 291... Line 297...
291
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
297
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
292
 
298
 
Line 306... Line 312...
306
	stdcall [gluSphere], [qObj], 0.55, 16,16
312
	stdcall [gluSphere], [qObj], 0.55, 16,16
Line 307... Line 313...
307
 
313
 
308
	stdcall [glColor3f], 0.0, 0.0, 1.0
314
	stdcall [glColor3f], 0.0, 0.0, 1.0
309
	stdcall [glTranslatef], 3.2,0.0,0.0
315
	stdcall [glTranslatef], 3.2,0.0,0.0
310
	stdcall [gluSphere], [qObj], 0.55, 16,16
316
	stdcall [gluSphere], [qObj], 0.55, 16,16
Line 311... Line 317...
311
stdcall [glPopMatrix]
317
call [glPopMatrix]
312
 
318
 
313
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00
319
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00
314
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_z,5,15,0xffff00
320
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_z,5,15,0xffff00
Line 331... Line 337...
331
 
337
 
332
	stdcall [glEnable],GL_LIGHTING
338
	stdcall [glEnable],GL_LIGHTING
333
	stdcall [glEnable],GL_LIGHT0
339
	stdcall [glEnable],GL_LIGHT0
Line 334... Line -...
334
ret
-
 
335
 
-
 
336
qObj dd 0
340
ret
337
 
341
 
338
scale dd 0.4 ;начальный масштаб
342
scale dd 0.4 ;начальный масштаб
339
sc_delt dd 0.05 ;изменение масштаба при нажатии
343
sc_delt dd 0.05 ;изменение масштаба при нажатии
340
sc_min dd 0.1 ;минимальный масштаб
344
sc_min dd 0.1 ;минимальный масштаб
Line 422... Line 426...
422
	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
426
	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
Line 423... Line 427...
423
 
427
 
424
align 4
428
align 4
425
import_libimg:
429
import_libimg:
426
	dd alib_init1
430
	dd alib_init1
427
	img_is_img  dd aimg_is_img
431
;	img_is_img  dd aimg_is_img
428
	img_info    dd aimg_info
432
;	img_info    dd aimg_info
429
	img_from_file dd aimg_from_file
433
;	img_from_file dd aimg_from_file
430
	img_to_file dd aimg_to_file
434
;	img_to_file dd aimg_to_file
431
	img_from_rgb dd aimg_from_rgb
435
;	img_from_rgb dd aimg_from_rgb
432
	img_to_rgb  dd aimg_to_rgb
436
;	img_to_rgb  dd aimg_to_rgb
433
	img_to_rgb2 dd aimg_to_rgb2
437
	img_to_rgb2 dd aimg_to_rgb2
434
	img_decode  dd aimg_decode
438
	img_decode  dd aimg_decode
435
	img_encode  dd aimg_encode
439
;	img_encode  dd aimg_encode
436
	img_create  dd aimg_create
440
;	img_create  dd aimg_create
437
	img_destroy dd aimg_destroy
441
	img_destroy dd aimg_destroy
438
	img_destroy_layer dd aimg_destroy_layer
442
;	img_destroy_layer dd aimg_destroy_layer
439
	img_count   dd aimg_count
443
;	img_count   dd aimg_count
440
	img_lock_bits dd aimg_lock_bits
444
;	img_lock_bits dd aimg_lock_bits
441
	img_unlock_bits dd aimg_unlock_bits
445
;	img_unlock_bits dd aimg_unlock_bits
442
	img_flip    dd aimg_flip
446
;	img_flip    dd aimg_flip
443
	img_flip_layer dd aimg_flip_layer
447
;	img_flip_layer dd aimg_flip_layer
444
	img_rotate  dd aimg_rotate
448
;	img_rotate  dd aimg_rotate
445
	img_rotate_layer dd aimg_rotate_layer
449
;	img_rotate_layer dd aimg_rotate_layer
-
 
450
;	img_draw    dd aimg_draw
Line 446... Line 451...
446
	img_draw    dd aimg_draw
451
;	img_convert dd aimg_convert
447
 
452
 
448
	dd 0,0
453
	dd 0,0
449
	alib_init1   db 'lib_init',0
454
	alib_init1   db 'lib_init',0
450
	aimg_is_img  db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
455
;	aimg_is_img  db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
451
	aimg_info    db 'img_info',0
456
;	aimg_info    db 'img_info',0
452
	aimg_from_file db 'img_from_file',0
457
;	aimg_from_file db 'img_from_file',0
453
	aimg_to_file db 'img_to_file',0
458
;	aimg_to_file db 'img_to_file',0
454
	aimg_from_rgb db 'img_from_rgb',0
459
;	aimg_from_rgb db 'img_from_rgb',0
455
	aimg_to_rgb  db 'img_to_rgb',0 ;преобразование изображения в данные RGB
460
;	aimg_to_rgb  db 'img_to_rgb',0 ;преобразование изображения в данные RGB
456
	aimg_to_rgb2 db 'img_to_rgb2',0
461
	aimg_to_rgb2 db 'img_to_rgb2',0
457
	aimg_decode  db 'img_decode',0 ;автоматически определяет формат графических данных
462
	aimg_decode  db 'img_decode',0 ;автоматически определяет формат графических данных
458
	aimg_encode  db 'img_encode',0
463
;	aimg_encode  db 'img_encode',0
459
	aimg_create  db 'img_create',0
464
;	aimg_create  db 'img_create',0
460
	aimg_destroy db 'img_destroy',0
465
	aimg_destroy db 'img_destroy',0
461
	aimg_destroy_layer db 'img_destroy_layer',0
466
;	aimg_destroy_layer db 'img_destroy_layer',0
462
	aimg_count   db 'img_count',0
467
;	aimg_count   db 'img_count',0
463
	aimg_lock_bits db 'img_lock_bits',0
468
;	aimg_lock_bits db 'img_lock_bits',0
464
	aimg_unlock_bits db 'img_unlock_bits',0
469
;	aimg_unlock_bits db 'img_unlock_bits',0
465
	aimg_flip    db 'img_flip',0
470
;	aimg_flip    db 'img_flip',0
466
	aimg_flip_layer db 'img_flip_layer',0
471
;	aimg_flip_layer db 'img_flip_layer',0
467
	aimg_rotate  db 'img_rotate',0
472
;	aimg_rotate  db 'img_rotate',0
-
 
473
;	aimg_rotate_layer db 'img_rotate_layer',0
Line 468... Line 474...
468
	aimg_rotate_layer db 'img_rotate_layer',0
474
;	aimg_draw    db 'img_draw',0
469
	aimg_draw    db 'img_draw',0
475
;	aimg_convert db 'img_convert',0
470
 
476
 
471
;--------------------------------------------------
477
;--------------------------------------------------
472
system_dir_0 db '/sys/lib/'
478
system_dir_0 db '/sys/lib/'
473
lib_name_0 db 'tinygl.obj',0
479
lib_name_0 db 'tinygl.obj',0
474
system_dir_1 db '/sys/lib/'
480
system_dir_1 db '/sys/lib/'
475
lib_name_1 db 'buf2d.obj',0
481
lib_name_1 db 'buf2d.obj',0
476
system_dir_2 db '/sys/lib/'
482
system_dir_2 db '/sys/lib/'
477
lib_name_2 db 'libimg.obj',0
483
lib_name_2 db 'libimg.obj',0
478
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,0
484
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
479
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,0
485
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0
480
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,0
486
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0
481
head_f_i:
487
head_f_i:
482
head_f_l db 'System error',0
488
head_f_l db '"System error',0
483
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,0
489
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
Line 484... Line 490...
484
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,0
490
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0
485
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,0
491
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
486
;--------------------------------------------------
492
;--------------------------------------------------
Line 528... Line 534...
528
		err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
534
		err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
529
l_libs_end:
535
l_libs_end:
Line 530... Line 536...
530
 
536
 
531
align 4
537
align 4
-
 
538
i_end:
-
 
539
	ctx1 rb 28 ;sizeof.TinyGLContext = 28
532
i_end:
540
	qObj dd 0
533
	run_file_70 FileInfoBlock
541
	run_file_70 FileInfoBlock
534
	sc system_colors
542
	sc system_colors
535
align 16
543
align 16
536
	rb 4096
544
	rb 4096