Subversion Repositories Kolibri OS

Rev

Rev 6164 | Rev 6200 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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