Subversion Repositories Kolibri OS

Rev

Rev 6737 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5256 IgorA 1
use32
8174 IgorA 2
	org 0
5256 IgorA 3
	db 'MENUET01'
6286 IgorA 4
	dd 1,start,i_end,mem,stacktop,0,cur_dir_path
5256 IgorA 5
 
5381 IgorA 6
include '../../../../../proc32.inc'
7
include '../../../../../macros.inc'
6286 IgorA 8
include '../../../../../KOSfuncs.inc'
9
include '../../../../../load_img.inc'
5256 IgorA 10
include '../opengl_const.inc'
8174 IgorA 11
include '../zbuffer.inc'
6286 IgorA 12
include '../../../../../develop/info3ds/info_fun_float.inc'
5256 IgorA 13
 
6286 IgorA 14
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
5256 IgorA 15
 
16
align 4
6286 IgorA 17
image_data_toolbar dd 0
18
IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3
19
 
8174 IgorA 20
;Макрос для параметров типа double (8 байт)
21
macro glpush GLDoubleVar {
22
	push dword[GLDoubleVar+4]
23
	push dword[GLDoubleVar]
24
}
6286 IgorA 25
 
26
align 4
5256 IgorA 27
start:
6286 IgorA 28
load_libraries l_libs_start,l_libs_end
29
	;проверка на сколько удачно загузились библиотеки
30
	mov	ebp,lib_0
31
	.test_lib_open:
32
	cmp	dword [ebp+ll_struc_size-4],0
33
	jz	@f
34
		mcall SF_TERMINATE_PROCESS
35
	@@:
36
	add ebp,ll_struc_size
37
	cmp ebp,l_libs_end
38
	jl .test_lib_open
5256 IgorA 39
 
6286 IgorA 40
	mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
41
	mcall SF_SET_EVENTS_MASK,0x27
5256 IgorA 42
 
6286 IgorA 43
	stdcall [kosglMakeCurrent], 5,30,[buf_ogl.w],[buf_ogl.h],ctx1
44
	stdcall [glEnable], GL_DEPTH_TEST
45
	stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов
8174 IgorA 46
	call [gluNewQuadric]
6286 IgorA 47
	mov [qObj],eax
5256 IgorA 48
 
6286 IgorA 49
	stdcall [glClearColor], 0.25,0.25,0.25,0.0
50
	stdcall [glShadeModel], GL_SMOOTH
5256 IgorA 51
 
6286 IgorA 52
	mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext
53
	mov eax,[eax] ;eax -> ZBuffer
8174 IgorA 54
	mov eax,[eax+ZBuffer.pbuf]
6286 IgorA 55
	mov dword[buf_ogl],eax
5256 IgorA 56
 
6286 IgorA 57
	load_image_file 'font8x9.bmp', image_data_toolbar, buf_1.w,buf_1.h
58
	stdcall [buf2d_create_f_img], buf_1,[image_data_toolbar] ;создаем буфер
59
	stdcall mem.Free,[image_data_toolbar] ;освобождаем память
60
	stdcall [buf2d_conv_24_to_8], buf_1,1 ;делаем буфер прозрачности 8 бит
61
	stdcall [buf2d_convert_text_matrix], buf_1
62
 
63
	load_image_file 'toolb_1.png', image_data_toolbar
64
	call draw_3d
65
 
5256 IgorA 66
align 4
67
red_win:
68
	call draw_window
69
 
70
align 4
71
still:
6286 IgorA 72
	mcall SF_WAIT_EVENT
5256 IgorA 73
	cmp al,1
74
	jz red_win
75
	cmp al,2
76
	jz key
77
	cmp al,3
78
	jz button
79
	jmp still
80
 
81
align 4
82
draw_window:
83
	pushad
6286 IgorA 84
	mcall SF_REDRAW,SSF_BEGIN_DRAW
85
	mcall SF_CREATE_WINDOW,(50 shl 16)+420,(30 shl 16)+410,0x33ffffff,,caption
5256 IgorA 86
 
6286 IgorA 87
	mov esi,[sc.work_button]
88
	mcall SF_DEFINE_BUTTON,(6 shl 16)+19,(6 shl 16)+19,3+0x40000000 ;вершины вкл.
89
	mcall ,(36 shl 16)+19,,4+0x40000000 ;каркасные грани вкл.
90
	mcall ,(66 shl 16)+19,,5+0x40000000 ;сплошные грани вкл.
91
	mcall ,(96 shl 16)+19,,6+0x40000000 ;масштаб +
92
	mcall ,(126 shl 16)+19,,7+0x40000000 ;масштаб -
93
 
94
	mcall SF_PUT_IMAGE,[image_data_toolbar],(21 shl 16)+21,(5 shl 16)+5 ;вершины вкл.
95
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
96
	mcall ,,,(35 shl 16)+5 ;каркасные грани вкл.
97
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
98
	mcall ,,,(65 shl 16)+5 ;сплошные грани вкл.
99
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
100
	mcall ,,,(95 shl 16)+5 ;масштаб +
101
	add ebx,IMAGE_TOOLBAR_ICON_SIZE
102
	mcall ,,,(125 shl 16)+5 ;масштаб -
103
 
8174 IgorA 104
	call [kosglSwapBuffers]
6286 IgorA 105
	mcall SF_REDRAW,SSF_END_DRAW
5256 IgorA 106
	popad
107
	ret
108
 
109
align 4
110
key:
6286 IgorA 111
	mcall SF_GET_KEY
5256 IgorA 112
 
113
	cmp ah,27 ;Esc
114
	je button.exit
115
 
116
	cmp ah,61 ;+
117
	jne @f
6286 IgorA 118
		call but_zoom_p
119
		jmp still
5256 IgorA 120
	@@:
121
	cmp ah,45 ;-
122
	jne @f
6286 IgorA 123
		call but_zoom_m
124
		jmp still
5256 IgorA 125
	@@:
126
	cmp ah,178 ;Up
127
	jne @f
6286 IgorA 128
		finit
5256 IgorA 129
		fld dword[angle_y]
130
		fadd dword[delt_size]
6286 IgorA 131
		fst dword[angle_y]
132
		mov word[NumberSymbolsAD],2
133
		fstp qword[Data_Double]
134
		call DoubleFloat_to_String
135
		mov byte[txt_angle_y.v],0
136
		stdcall str_cat, txt_angle_y.v,Data_String
5256 IgorA 137
		call draw_3d
8174 IgorA 138
		call [kosglSwapBuffers]
139
		jmp still
5256 IgorA 140
	@@:
141
	cmp ah,177 ;Down
142
	jne @f
6286 IgorA 143
		finit
5256 IgorA 144
		fld dword[angle_y]
145
		fsub dword[delt_size]
6286 IgorA 146
		fst dword[angle_y]
147
		mov word[NumberSymbolsAD],2
148
		fstp qword[Data_Double]
149
		call DoubleFloat_to_String
150
		mov byte[txt_angle_y.v],0
151
		stdcall str_cat, txt_angle_y.v,Data_String
5256 IgorA 152
		call draw_3d
8174 IgorA 153
		call [kosglSwapBuffers]
154
		jmp still
5256 IgorA 155
	@@:
156
	cmp ah,176 ;Left
157
	jne @f
6286 IgorA 158
		finit
5256 IgorA 159
		fld dword[angle_z]
160
		fadd dword[delt_size]
6286 IgorA 161
		fst dword[angle_z]
162
		mov word[NumberSymbolsAD],2
163
		fstp qword[Data_Double]
164
		call DoubleFloat_to_String
165
		mov byte[txt_angle_z.v],0
166
		stdcall str_cat, txt_angle_z.v,Data_String
5256 IgorA 167
		call draw_3d
8174 IgorA 168
		call [kosglSwapBuffers]
169
		jmp still
5256 IgorA 170
	@@:
171
	cmp ah,179 ;Right
172
	jne @f
6286 IgorA 173
		finit
5256 IgorA 174
		fld dword[angle_z]
175
		fsub dword[delt_size]
6286 IgorA 176
		fst dword[angle_z]
177
		mov word[NumberSymbolsAD],2
178
		fstp qword[Data_Double]
179
		call DoubleFloat_to_String
180
		mov byte[txt_angle_z.v],0
181
		stdcall str_cat, txt_angle_z.v,Data_String
5256 IgorA 182
		call draw_3d
8174 IgorA 183
		call [kosglSwapBuffers]
184
		;jmp still
5256 IgorA 185
	@@:
186
 
187
	jmp still
188
 
189
align 4
190
button:
6286 IgorA 191
	mcall SF_GET_BUTTON
192
	cmp ah,3
193
	jne @f
194
		call but_st_point
195
		jmp still
196
	@@:
197
	cmp ah,4
198
	jne @f
199
		call but_st_line
200
		jmp still
201
	@@:
202
	cmp ah,5
203
	jne @f
204
		call but_st_face
205
		jmp still
206
	@@:
207
	cmp ah,6
208
	jne @f
209
		call but_zoom_p
210
		jmp still
211
	@@:
212
	cmp ah,7
213
	jne @f
214
		call but_zoom_m
215
		jmp still
216
	@@:
5256 IgorA 217
	cmp ah,1
218
	jne still
219
.exit:
220
	stdcall [gluDeleteQuadric], [qObj]
6286 IgorA 221
	stdcall mem.Free,[image_data_toolbar]
222
	mcall SF_TERMINATE_PROCESS
5256 IgorA 223
 
6286 IgorA 224
align 4
225
but_st_point:
226
	stdcall [gluQuadricDrawStyle], [qObj],GLU_POINT
227
	call draw_3d
8174 IgorA 228
	call [kosglSwapBuffers]
6286 IgorA 229
	ret
5256 IgorA 230
 
231
align 4
6286 IgorA 232
but_st_line:
233
	stdcall [gluQuadricDrawStyle], [qObj],GLU_LINE
234
	call draw_3d
8174 IgorA 235
	call [kosglSwapBuffers]
6286 IgorA 236
	ret
237
 
5256 IgorA 238
align 4
6286 IgorA 239
but_st_face:
240
	stdcall [gluQuadricDrawStyle], [qObj],GLU_FILL
241
	call draw_3d
8174 IgorA 242
	call [kosglSwapBuffers]
6286 IgorA 243
	ret
244
 
245
align 4
246
but_zoom_p:
247
	finit
248
	fld dword[scale]
249
	fadd dword[sc_delt]
250
	fcom dword[sc_max]
251
	fstsw ax
252
	sahf
253
	jbe @f
254
		ffree st0
255
		fincstp
256
		fld dword[sc_max]
257
	@@:
258
	fst dword[scale]
259
	mov word[NumberSymbolsAD],3
260
	fstp qword[Data_Double]
261
	call DoubleFloat_to_String
262
	mov byte[txt_scale.v],0
263
	stdcall str_cat, txt_scale.v,Data_String
264
	call draw_3d
8174 IgorA 265
	call [kosglSwapBuffers]
6286 IgorA 266
	ret
267
 
268
align 4
269
but_zoom_m:
270
	finit
271
	fld dword[scale]
272
	fsub dword[sc_delt]
273
	fcom dword[sc_min]
274
	fstsw ax
275
	sahf
276
	ja @f
277
		ffree st0
278
		fincstp
279
		fld dword[sc_min]
280
	@@:
281
	fst dword[scale]
282
	mov word[NumberSymbolsAD],3
283
	fstp qword[Data_Double]
284
	call DoubleFloat_to_String
285
	mov byte[txt_scale.v],0
286
	stdcall str_cat, txt_scale.v,Data_String
287
	call draw_3d
8174 IgorA 288
	call [kosglSwapBuffers]
6286 IgorA 289
	ret
290
 
291
 
292
align 4
293
caption db 'Test gluCylinder, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
8174 IgorA 294
 
6286 IgorA 295
align 4
296
rad1 dq 1.0
297
rad2 dq 0.55
298
rad3 dq 0.15
299
hei1 dq 2.0 ;высота цилиндра
300
hei2 dq 1.25
301
 
5256 IgorA 302
align 4
303
draw_3d:
304
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
305
 
8174 IgorA 306
call [glPushMatrix]
5256 IgorA 307
	call SetLight
308
 
309
	stdcall [glTranslatef], 0.0,0.0,0.5
310
	stdcall [glScalef], [scale], [scale], [scale]
6286 IgorA 311
	stdcall [glScalef], 1.0, 1.0, 0.5
5256 IgorA 312
 
5278 IgorA 313
	stdcall [glColor3f], 1.0, 1.0, 0.0
5256 IgorA 314
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
315
	stdcall [glRotatef], [angle_y],0.0,1.0,0.0
6286 IgorA 316
	stdcall [glTranslatef], 0.0,0.0,-1.0 ;опускаем цилинды вниз
317
	stdcall [gluCylinder], [qObj], rad1,rad1,hei1, 32,8
5256 IgorA 318
 
319
	stdcall [glColor3f], 1.0, 0.0, 0.0
320
	stdcall [glTranslatef], -1.6,0.0,0.0
6286 IgorA 321
	stdcall [gluCylinder], [qObj], rad2,rad3,hei2, 16,8
5256 IgorA 322
 
323
	stdcall [glColor3f], 0.0, 0.0, 1.0
324
	stdcall [glTranslatef], 3.2,0.0,0.0
6286 IgorA 325
	stdcall [gluCylinder], [qObj], rad2,rad3,hei2, 16,8
8174 IgorA 326
call [glPopMatrix]
5256 IgorA 327
 
6286 IgorA 328
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00
329
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_z,5,15,0xffff00
330
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_y,5,25,0xffff00
331
	ret
332
 
5256 IgorA 333
align 4
334
SetLight:
5381 IgorA 335
	stdcall [glLightfv], GL_LIGHT0, GL_POSITION, light_position
336
	stdcall [glLightfv], GL_LIGHT0, GL_SPOT_DIRECTION, light_dir
5256 IgorA 337
 
5381 IgorA 338
	stdcall [glLightfv], GL_LIGHT0, GL_DIFFUSE, white_light
339
	stdcall [glLightfv], GL_LIGHT0, GL_SPECULAR, white_light
5256 IgorA 340
 
341
	stdcall [glEnable], GL_COLOR_MATERIAL
342
	stdcall [glColorMaterial], GL_FRONT, GL_AMBIENT_AND_DIFFUSE
343
	stdcall [glMaterialfv], GL_FRONT, GL_SPECULAR, mat_specular
344
	stdcall [glMaterialf], GL_FRONT, GL_SHININESS, mat_shininess
5381 IgorA 345
	stdcall [glLightModelfv], GL_LIGHT_MODEL_AMBIENT, lmodel_ambient
346
 
5256 IgorA 347
	stdcall [glEnable],GL_LIGHTING
5381 IgorA 348
	stdcall [glEnable],GL_LIGHT0
5256 IgorA 349
ret
350
 
6286 IgorA 351
scale dd 0.4 ;начальный масштаб
352
sc_delt dd 0.05 ;изменение масштаба при нажатии
353
sc_min dd 0.1 ;минимальный масштаб
354
sc_max dd 1.1 ;максимальный масштаб
355
angle_z dd -45.0
356
angle_y dd -150.0
5256 IgorA 357
delt_size dd 3.0
358
 
5278 IgorA 359
light_position dd 3.0, 2.0, -10.0, 1.0 ; Расположение источника [0][1][2]
360
	;[3] = (0.0 - бесконечно удаленный источник, 1.0 - источник света на определенном расстоянии)
5256 IgorA 361
light_dir dd 0.0,0.0,0.0 ;направление лампы
5278 IgorA 362
mat_specular dd 0.1, 0.1, 0.1, 1.0 ; Цвет блика
5256 IgorA 363
mat_shininess dd 3.0 ; Размер блика (обратная пропорция)
364
white_light dd 0.8, 0.8, 0.8, 1.0 ; Цвет и интенсивность освещения, генерируемого источником
365
lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения
366
 
367
;--------------------------------------------------
368
align 4
369
import_lib_tinygl:
370
 
371
macro E_LIB n
372
{
373
	n dd sz_#n
374
}
375
include '../export.inc'
376
	dd 0,0
377
macro E_LIB n
378
{
379
	sz_#n db `n,0
380
}
381
include '../export.inc'
382
 
6286 IgorA 383
align 4
384
import_buf2d:
385
	dd sz_init0
386
	buf2d_create dd sz_buf2d_create
387
	buf2d_create_f_img dd sz_buf2d_create_f_img
388
	buf2d_clear dd sz_buf2d_clear
389
	buf2d_draw dd sz_buf2d_draw
390
	buf2d_delete dd sz_buf2d_delete
391
	buf2d_resize dd sz_buf2d_resize
392
	buf2d_line dd sz_buf2d_line
393
	buf2d_rect_by_size dd sz_buf2d_rect_by_size
394
	buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
395
	buf2d_circle dd sz_buf2d_circle
396
	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
397
	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
398
	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
399
	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
400
	buf2d_bit_blt dd sz_buf2d_bit_blt
401
	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
402
	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
403
	buf2d_curve_bezier dd sz_buf2d_curve_bezier
404
	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
405
	buf2d_draw_text dd sz_buf2d_draw_text
406
	buf2d_crop_color dd sz_buf2d_crop_color
407
	buf2d_offset_h dd sz_buf2d_offset_h
408
	buf2d_flood_fill dd sz_buf2d_flood_fill
409
	buf2d_set_pixel dd sz_buf2d_set_pixel
410
	dd 0,0
411
	sz_init0 db 'lib_init',0
412
	sz_buf2d_create db 'buf2d_create',0
413
	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
414
	sz_buf2d_clear db 'buf2d_clear',0
415
	sz_buf2d_draw db 'buf2d_draw',0
416
	sz_buf2d_delete db 'buf2d_delete',0
417
	sz_buf2d_resize db 'buf2d_resize',0
418
	sz_buf2d_line db 'buf2d_line',0
419
	sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
420
	sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
421
	sz_buf2d_circle db 'buf2d_circle',0
422
	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
423
	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
424
	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
425
	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
426
	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
427
	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
428
	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
429
	sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
430
	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
431
	sz_buf2d_draw_text db 'buf2d_draw_text',0
432
	sz_buf2d_crop_color db 'buf2d_crop_color',0
433
	sz_buf2d_offset_h db 'buf2d_offset_h',0
434
	sz_buf2d_flood_fill db 'buf2d_flood_fill',0
435
	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
436
 
437
align 4
438
import_libimg:
439
	dd alib_init1
8174 IgorA 440
;	img_is_img  dd aimg_is_img
441
;	img_info    dd aimg_info
442
;	img_from_file dd aimg_from_file
443
;	img_to_file dd aimg_to_file
444
;	img_from_rgb dd aimg_from_rgb
445
;	img_to_rgb  dd aimg_to_rgb
6286 IgorA 446
	img_to_rgb2 dd aimg_to_rgb2
447
	img_decode  dd aimg_decode
8174 IgorA 448
;	img_encode  dd aimg_encode
449
;	img_create  dd aimg_create
6286 IgorA 450
	img_destroy dd aimg_destroy
8174 IgorA 451
;	img_destroy_layer dd aimg_destroy_layer
452
;	img_count   dd aimg_count
453
;	img_lock_bits dd aimg_lock_bits
454
;	img_unlock_bits dd aimg_unlock_bits
455
;	img_flip    dd aimg_flip
456
;	img_flip_layer dd aimg_flip_layer
457
;	img_rotate  dd aimg_rotate
458
;	img_rotate_layer dd aimg_rotate_layer
459
;	img_draw    dd aimg_draw
460
;	img_convert dd aimg_convert
6286 IgorA 461
 
462
	dd 0,0
463
	alib_init1   db 'lib_init',0
8174 IgorA 464
;	aimg_is_img  db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
465
;	aimg_info    db 'img_info',0
466
;	aimg_from_file db 'img_from_file',0
467
;	aimg_to_file db 'img_to_file',0
468
;	aimg_from_rgb db 'img_from_rgb',0
469
;	aimg_to_rgb  db 'img_to_rgb',0 ;преобразование изображения в данные RGB
6286 IgorA 470
	aimg_to_rgb2 db 'img_to_rgb2',0
471
	aimg_decode  db 'img_decode',0 ;автоматически определяет формат графических данных
8174 IgorA 472
;	aimg_encode  db 'img_encode',0
473
;	aimg_create  db 'img_create',0
6286 IgorA 474
	aimg_destroy db 'img_destroy',0
8174 IgorA 475
;	aimg_destroy_layer db 'img_destroy_layer',0
476
;	aimg_count   db 'img_count',0
477
;	aimg_lock_bits db 'img_lock_bits',0
478
;	aimg_unlock_bits db 'img_unlock_bits',0
479
;	aimg_flip    db 'img_flip',0
480
;	aimg_flip_layer db 'img_flip_layer',0
481
;	aimg_rotate  db 'img_rotate',0
482
;	aimg_rotate_layer db 'img_rotate_layer',0
483
;	aimg_draw    db 'img_draw',0
484
;	aimg_convert db 'img_convert',0
6286 IgorA 485
 
5256 IgorA 486
;--------------------------------------------------
6737 leency 487
system_dir_0 db '/sys/lib/'
6286 IgorA 488
lib_name_0 db 'tinygl.obj',0
489
system_dir_1 db '/sys/lib/'
490
lib_name_1 db 'buf2d.obj',0
491
system_dir_2 db '/sys/lib/'
492
lib_name_2 db 'libimg.obj',0
8174 IgorA 493
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
494
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0
495
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0
5256 IgorA 496
head_f_i:
8174 IgorA 497
head_f_l db '"System error',0
498
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
499
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0
500
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
5256 IgorA 501
;--------------------------------------------------
502
 
6286 IgorA 503
txt_scale:
504
db 'Scale: '
505
.v:
506
db 0
507
rb 10
508
 
509
txt_angle_z:
510
db 'Rotate z: '
511
.v:
512
db 0
513
rb 10
514
 
515
txt_angle_y:
516
db 'Rotate y: '
517
.v:
518
db 0
519
rb 10
520
 
521
align 4
522
buf_ogl:
523
	dd 0 ;указатель на буфер изображения
524
	dw 10,10 ;+4 left,top
525
.w: dd 400
526
.h: dd 350
527
	dd 0,24 ;+16 color,bit in pixel
528
 
529
align 4
530
buf_1:
531
	dd 0 ;указатель на буфер изображения
532
	dd 0 ;+4 left,top
533
.w: dd 0
534
.h: dd 0,0,24 ;+16 color,bit in pixel
535
 
536
align 4
537
l_libs_start:
538
	lib_0 l_libs lib_name_0, cur_dir_path, file_name,  system_dir_0,\
539
		err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i
540
	lib_1 l_libs lib_name_1, cur_dir_path, file_name,  system_dir_1,\
541
		err_msg_found_lib_1, head_f_l, import_buf2d,  err_msg_import_1,head_f_i
542
	lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\
543
		err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
544
l_libs_end:
545
 
546
align 4
5256 IgorA 547
i_end:
8174 IgorA 548
	ctx1 rb 28 ;sizeof.TinyGLContext = 28
549
	qObj dd 0
6286 IgorA 550
	run_file_70 FileInfoBlock
551
	sc system_colors
552
align 16
553
	rb 4096
5256 IgorA 554
stacktop:
6286 IgorA 555
	cur_dir_path rb 4096
556
	file_name rb 4096
5256 IgorA 557
mem: