Subversion Repositories Kolibri OS

Rev

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