Subversion Repositories Kolibri OS

Rev

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

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