Subversion Repositories Kolibri OS

Rev

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

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