Subversion Repositories Kolibri OS

Rev

Rev 8174 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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