Subversion Repositories Kolibri OS

Rev

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

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