Subversion Repositories Kolibri OS

Rev

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