Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
6113 IgorA 1
use32
7929 IgorA 2
	org 0
6113 IgorA 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
 
7929 IgorA 115
	call [kosglSwapBuffers]
6113 IgorA 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
7929 IgorA 149
		call [kosglSwapBuffers]
6113 IgorA 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
7929 IgorA 163
		call [kosglSwapBuffers]
6113 IgorA 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
7929 IgorA 177
		call [kosglSwapBuffers]
6113 IgorA 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
7929 IgorA 191
		call [kosglSwapBuffers]
6113 IgorA 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
7929 IgorA 230
	call [kosglSwapBuffers]
6113 IgorA 231
	ret
232
 
233
align 4
234
but_dr_1:
235
	mov dword[dr_figure],1
236
	call draw_3d
7929 IgorA 237
	call [kosglSwapBuffers]
6113 IgorA 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
7929 IgorA 260
	call [kosglSwapBuffers]
6200 IgorA 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
7929 IgorA 283
	call [kosglSwapBuffers]
6200 IgorA 284
	ret
285
 
286
align 4
6113 IgorA 287
caption db 'Test textures, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
288
 
289
align 4
290
draw_3d:
291
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
292
 
293
stdcall [glPushMatrix]
294
	stdcall [glTranslatef], 0.0,0.0,0.5
295
	stdcall [glScalef], [scale], [scale], [scale]
296
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
297
	stdcall [glRotatef], [angle_y],0.0,1.0,0.0
298
 
299
cmp dword[dr_figure],0
300
jne @f
301
	; рисование сфер
302
	stdcall [glColor3f], 1.0, 1.0, 0.0
303
	stdcall [gluSphere], [qObj], 1.0, 32,32
304
 
305
	stdcall [glColor3f], 1.0, 0.0, 0.0
306
	stdcall [glTranslatef], -1.6,0.0,0.0
307
	stdcall [gluSphere], [qObj], 0.55, 16,16
308
 
309
	stdcall [glColor3f], 0.0, 0.0, 1.0
310
	stdcall [glTranslatef], 3.2,0.0,0.0
311
	stdcall [gluSphere], [qObj], 0.55, 16,16
312
@@:
313
cmp dword[dr_figure],1
314
jne @f
315
	; рисование граней куба
316
	stdcall [glBegin],GL_QUADS
317
 
318
; Передняя грань
319
	stdcall [glTexCoord2f], 0.0f, 0.0f
320
	stdcall [glVertex3f], -1.0f, -1.0f,  1.0f ; Низ лево
321
	stdcall [glTexCoord2f], 1.0f, 0.0f
322
	stdcall [glVertex3f],  1.0f, -1.0f,  1.0f ; Низ право
323
	stdcall [glTexCoord2f], 1.0f, 1.0f
324
	stdcall [glVertex3f],  1.0f,  1.0f,  1.0f ; Верх право
325
	stdcall [glTexCoord2f], 0.0f, 1.0f
326
	stdcall [glVertex3f], -1.0f,  1.0f,  1.0f ; Верх лево
327
 
328
; Задняя грань
329
	stdcall [glTexCoord2f], 1.0f, 0.0f
330
	stdcall [glVertex3f], -1.0f, -1.0f, -1.0f ; Низ право
331
	stdcall [glTexCoord2f], 1.0f, 1.0f
332
	stdcall [glVertex3f], -1.0f,  1.0f, -1.0f ; Верх право
333
	stdcall [glTexCoord2f], 0.0f, 1.0f
334
	stdcall [glVertex3f],  1.0f,  1.0f, -1.0f ; Верх лево
335
	stdcall [glTexCoord2f], 0.0f, 0.0f
336
	stdcall [glVertex3f],  1.0f, -1.0f, -1.0f ; Низ лево
337
 
338
; Верхняя грань
339
	stdcall [glTexCoord2f], 0.0f, 1.0f
340
	stdcall [glVertex3f], -1.0f,  1.0f, -1.0f ; Верх лево
341
	stdcall [glTexCoord2f], 0.0f, 0.0f
342
	stdcall [glVertex3f], -1.0f,  1.0f,  1.0f ; Низ лево
343
	stdcall [glTexCoord2f], 1.0f, 0.0f
344
	stdcall [glVertex3f],  1.0f,  1.0f,  1.0f ; Низ право
345
	stdcall [glTexCoord2f], 1.0f, 1.0f
346
	stdcall [glVertex3f],  1.0f,  1.0f, -1.0f ; Верх право
347
 
348
; Нижняя грань
349
	stdcall [glTexCoord2f], 1.0f, 1.0f
350
	stdcall [glVertex3f], -1.0f, -1.0f, -1.0f ; Верх право
351
	stdcall [glTexCoord2f], 0.0f, 1.0f
352
	stdcall [glVertex3f],  1.0f, -1.0f, -1.0f ; Верх лево
353
	stdcall [glTexCoord2f], 0.0f, 0.0f
354
	stdcall [glVertex3f],  1.0f, -1.0f,  1.0f ; Низ лево
355
	stdcall [glTexCoord2f], 1.0f, 0.0f
356
	stdcall [glVertex3f], -1.0f, -1.0f,  1.0f ; Низ право
357
 
358
; Правая грань
359
	stdcall [glTexCoord2f], 1.0f, 0.0f
360
	stdcall [glVertex3f],  1.0f, -1.0f, -1.0f ; Низ право
361
	stdcall [glTexCoord2f], 1.0f, 1.0f
362
	stdcall [glVertex3f],  1.0f,  1.0f, -1.0f ; Верх право
363
	stdcall [glTexCoord2f], 0.0f, 1.0f
364
	stdcall [glVertex3f],  1.0f,  1.0f,  1.0f ; Верх лево
365
	stdcall [glTexCoord2f], 0.0f, 0.0f
366
	stdcall [glVertex3f],  1.0f, -1.0f,  1.0f ; Низ лево
367
 
368
; Левая грань
369
	stdcall [glTexCoord2f], 0.0f, 0.0f
370
	stdcall [glVertex3f], -1.0f, -1.0f, -1.0f ; Низ лево
371
	stdcall [glTexCoord2f], 1.0f, 0.0f
372
	stdcall [glVertex3f], -1.0f, -1.0f,  1.0f ; Низ право
373
	stdcall [glTexCoord2f], 1.0f, 1.0f
374
	stdcall [glVertex3f], -1.0f,  1.0f,  1.0f ; Верх право
375
	stdcall [glTexCoord2f], 0.0f, 1.0f
376
	stdcall [glVertex3f], -1.0f,  1.0f, -1.0f ; Верх лево
377
 
378
	stdcall [glEnd]
379
@@:
380
stdcall [glPopMatrix]
381
 
382
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00
383
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_z,5,15,0xffff00
384
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_y,5,25,0xffff00
385
	ret
386
 
6200 IgorA 387
scale dd 0.4 ;начальный масштаб
388
sc_delt dd 0.05 ;изменение масштаба при нажатии
389
sc_min dd 0.1 ;минимальный масштаб
390
sc_max dd 1.1 ;максимальный масштаб
6113 IgorA 391
angle_z dd 0.0
392
angle_y dd 0.0
393
delt_size dd 3.0
394
 
395
light_position dd 3.0, 2.0, -10.0, 1.0 ; Расположение источника [0][1][2]
396
	;[3] = (0.0 - бесконечно удаленный источник, 1.0 - источник света на определенном расстоянии)
397
light_dir dd 0.0,0.0,0.0 ;направление лампы
398
mat_specular dd 0.1, 0.1, 0.1, 1.0 ; Цвет блика
399
;mat_shininess dd 3.0 ; Размер блика (обратная пропорция)
400
white_light dd 0.8, 0.8, 0.8, 1.0 ; Цвет и интенсивность освещения, генерируемого источником
401
lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения
402
 
403
;--------------------------------------------------
404
align 4
405
import_lib_tinygl:
406
 
407
macro E_LIB n
408
{
409
	n dd sz_#n
410
}
411
include '../export.inc'
412
	dd 0,0
413
macro E_LIB n
414
{
415
	sz_#n db `n,0
416
}
417
include '../export.inc'
418
 
419
align 4
420
import_buf2d:
421
	dd sz_init0
422
	buf2d_create dd sz_buf2d_create
423
	buf2d_create_f_img dd sz_buf2d_create_f_img
424
	buf2d_clear dd sz_buf2d_clear
425
	buf2d_draw dd sz_buf2d_draw
426
	buf2d_delete dd sz_buf2d_delete
427
	buf2d_resize dd sz_buf2d_resize
428
	buf2d_line dd sz_buf2d_line
429
	buf2d_rect_by_size dd sz_buf2d_rect_by_size
430
	buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
431
	buf2d_circle dd sz_buf2d_circle
432
	buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
433
	buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
434
	buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
435
	buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
436
	buf2d_bit_blt dd sz_buf2d_bit_blt
437
	buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
438
	buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
439
	buf2d_curve_bezier dd sz_buf2d_curve_bezier
440
	buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
441
	buf2d_draw_text dd sz_buf2d_draw_text
442
	buf2d_crop_color dd sz_buf2d_crop_color
443
	buf2d_offset_h dd sz_buf2d_offset_h
444
	buf2d_flood_fill dd sz_buf2d_flood_fill
445
	buf2d_set_pixel dd sz_buf2d_set_pixel
446
	dd 0,0
447
	sz_init0 db 'lib_init',0
448
	sz_buf2d_create db 'buf2d_create',0
449
	sz_buf2d_create_f_img db 'buf2d_create_f_img',0
450
	sz_buf2d_clear db 'buf2d_clear',0
451
	sz_buf2d_draw db 'buf2d_draw',0
452
	sz_buf2d_delete db 'buf2d_delete',0
453
	sz_buf2d_resize db 'buf2d_resize',0
454
	sz_buf2d_line db 'buf2d_line',0
455
	sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
456
	sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
457
	sz_buf2d_circle db 'buf2d_circle',0
458
	sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
459
	sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
460
	sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
461
	sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
462
	sz_buf2d_bit_blt db 'buf2d_bit_blt',0
463
	sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
464
	sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
465
	sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
466
	sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
467
	sz_buf2d_draw_text db 'buf2d_draw_text',0
468
	sz_buf2d_crop_color db 'buf2d_crop_color',0
469
	sz_buf2d_offset_h db 'buf2d_offset_h',0
470
	sz_buf2d_flood_fill db 'buf2d_flood_fill',0
471
	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
472
 
473
align 4
474
import_libimg:
475
	dd alib_init1
476
	img_is_img  dd aimg_is_img
477
	img_info    dd aimg_info
478
	img_from_file dd aimg_from_file
479
	img_to_file dd aimg_to_file
480
	img_from_rgb dd aimg_from_rgb
481
	img_to_rgb  dd aimg_to_rgb
482
	img_to_rgb2 dd aimg_to_rgb2
483
	img_decode  dd aimg_decode
484
	img_encode  dd aimg_encode
485
	img_create  dd aimg_create
486
	img_destroy dd aimg_destroy
487
	img_destroy_layer dd aimg_destroy_layer
488
	img_count   dd aimg_count
489
	img_lock_bits dd aimg_lock_bits
490
	img_unlock_bits dd aimg_unlock_bits
491
	img_flip    dd aimg_flip
492
	img_flip_layer dd aimg_flip_layer
493
	img_rotate  dd aimg_rotate
494
	img_rotate_layer dd aimg_rotate_layer
495
	img_draw    dd aimg_draw
496
 
497
	dd 0,0
498
	alib_init1   db 'lib_init',0
499
	aimg_is_img  db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
500
	aimg_info    db 'img_info',0
501
	aimg_from_file db 'img_from_file',0
502
	aimg_to_file db 'img_to_file',0
503
	aimg_from_rgb db 'img_from_rgb',0
504
	aimg_to_rgb  db 'img_to_rgb',0 ;преобразование изображения в данные RGB
505
	aimg_to_rgb2 db 'img_to_rgb2',0
506
	aimg_decode  db 'img_decode',0 ;автоматически определяет формат графических данных
507
	aimg_encode  db 'img_encode',0
508
	aimg_create  db 'img_create',0
509
	aimg_destroy db 'img_destroy',0
510
	aimg_destroy_layer db 'img_destroy_layer',0
511
	aimg_count   db 'img_count',0
512
	aimg_lock_bits db 'img_lock_bits',0
513
	aimg_unlock_bits db 'img_unlock_bits',0
514
	aimg_flip    db 'img_flip',0
515
	aimg_flip_layer db 'img_flip_layer',0
516
	aimg_rotate  db 'img_rotate',0
517
	aimg_rotate_layer db 'img_rotate_layer',0
518
	aimg_draw    db 'img_draw',0
519
 
520
;--------------------------------------------------
521
system_dir_0 db '/sys/lib/'
522
lib_name_0 db 'tinygl.obj',0
523
system_dir_1 db '/sys/lib/'
524
lib_name_1 db 'buf2d.obj',0
525
system_dir_2 db '/sys/lib/'
526
lib_name_2 db 'libimg.obj',0
7929 IgorA 527
err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
528
err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0
529
err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0
6113 IgorA 530
head_f_i:
7929 IgorA 531
head_f_l db '"System error',0
532
err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
533
err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0
534
err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0
6113 IgorA 535
;--------------------------------------------------
536
 
537
txt_scale:
538
db 'Scale: '
539
.v:
540
db 0
541
rb 10
542
 
543
txt_angle_z:
544
db 'Rotate z: '
545
.v:
546
db 0
547
rb 10
548
 
549
txt_angle_y:
550
db 'Rotate y: '
551
.v:
552
db 0
553
rb 10
554
 
555
align 4
556
buf_ogl:
557
	dd 0 ;указатель на буфер изображения
558
	dw 10,10 ;+4 left,top
559
.w: dd 400
560
.h: dd 350
561
	dd 0,24 ;+16 color,bit in pixel
562
 
563
align 4
564
buf_1:
565
	dd 0 ;указатель на буфер изображения
6200 IgorA 566
	dd 0 ;+4 left,top
567
.w: dd 0
568
.h: dd 0,0,24 ;+16 color,bit in pixel
6113 IgorA 569
 
570
align 4
571
l_libs_start:
6200 IgorA 572
	lib_0 l_libs lib_name_0, cur_dir_path, file_name,  system_dir_0,\
6113 IgorA 573
		err_msg_found_lib_0, head_f_l, import_lib_tinygl,err_msg_import_0,head_f_i
6200 IgorA 574
	lib_1 l_libs lib_name_1, cur_dir_path, file_name,  system_dir_1,\
6113 IgorA 575
		err_msg_found_lib_1, head_f_l, import_buf2d,  err_msg_import_1,head_f_i
576
	lib_2 l_libs lib_name_2, cur_dir_path, file_name, system_dir_2,\
577
		err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
578
l_libs_end:
579
 
580
align 4
581
i_end:
7929 IgorA 582
	ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
583
	;sizeof.TinyGLContext = 28
584
	dr_figure dd 0
585
	qObj dd 0
586
	TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
587
	texture dd 0 ;указатель на память с текстурой
588
	text_w dd 0
589
	text_h dd 0
6113 IgorA 590
	run_file_70 FileInfoBlock
591
	sc system_colors
592
align 16
593
	rb 4096
594
stacktop:
595
	cur_dir_path rb 4096
596
	file_name rb 4096
597
mem: