Subversion Repositories Kolibri OS

Rev

Rev 5381 | Rev 6288 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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