Subversion Repositories Kolibri OS

Rev

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

Rev 8059 Rev 8069
Line 76... Line 76...
76
	mov eax,dword[procinfo.box.height]
76
	mov eax,dword[procinfo.box.height]
77
	cmp eax,120
77
	cmp eax,120
78
	jge @f
78
	jge @f
79
		mov eax,120 ;min size
79
		mov eax,120 ;min size
80
	@@:
80
	@@:
81
	sub eax,42
81
	sub eax,43
82
	mov ebx,dword[procinfo.box.width]
82
	mov ebx,dword[procinfo.box.width]
83
	cmp ebx,200
83
	cmp ebx,200
84
	jge @f
84
	jge @f
85
		mov ebx,200
85
		mov ebx,200
86
	@@:
86
	@@:
Line 89... Line 89...
89
	.end0:
89
	.end0:
Line 90... Line 90...
90
 
90
 
91
align 16
91
align 16
92
still:
92
still:
-
 
93
	call draw_3d
93
	call draw_3d
94
	cmp dword[stop],1
94
 
95
	je @f
-
 
96
		stdcall Fps, 365,4
95
	stdcall Fps, 365,4
97
 
96
	mov dword[esp-4],eax
98
		mov dword[esp-4],eax
97
	fild dword[esp-4]
99
		fild dword[esp-4]
98
	fmul dword[a2]
100
		fmul dword[a2]
99
	fadd dword[a1]
101
		fadd dword[a1]
100
	fadd dword[angle]
102
		fadd dword[angle]
Line 101... Line 103...
101
	fstp dword[angle]
103
		fstp dword[angle]
-
 
104
 
-
 
105
		mcall SF_CHECK_EVENT
-
 
106
		jmp .end0
-
 
107
align 4
-
 
108
	@@:
102
 
109
		mcall SF_WAIT_EVENT
103
	mcall SF_CHECK_EVENT
110
	.end0:
104
	cmp al,1
111
	cmp al,1
105
	jz red_win
112
	jz red_win
106
	cmp al,2
113
	cmp al,2
Line 154... Line 161...
154
draw_window:
161
draw_window:
155
	pushad
162
	pushad
156
	mcall SF_REDRAW,SSF_BEGIN_DRAW
163
	mcall SF_REDRAW,SSF_BEGIN_DRAW
Line 157... Line 164...
157
 
164
 
158
	mcall SF_CREATE_WINDOW,(50 shl 16)+409,(30 shl 16)+425,0x33404040,,title1
165
	mcall SF_CREATE_WINDOW,(50 shl 16)+409,(30 shl 16)+425,0x33404040,,title1
Line 159... Line 166...
159
	stdcall [kosglSwapBuffers]
166
	call [kosglSwapBuffers]
160
 
167
 
161
	;Title
168
	;Title
162
	mcall SF_DRAW_TEXT,(338 shl 16)+4,0xc0c0c0,fps,   fps.end-fps
169
	mcall SF_DRAW_TEXT,(338 shl 16)+4,0xc0c0c0,fps,   fps.end-fps
Line 177... Line 184...
177
	cmp ah,43 ;+
184
	cmp ah,43 ;+
178
	jne @f
185
	jne @f
179
		fld dword[scale]
186
		fld dword[scale]
180
		fdiv dword[delt_sc]
187
		fdiv dword[delt_sc]
181
		fstp dword[scale]
188
		fstp dword[scale]
182
		call draw_3d
189
		jmp still
183
	@@:
190
	@@:
184
	cmp ah,61 ;=
191
	cmp ah,61 ;=
185
	jne @f
192
	jne @f
186
		fld dword[scale]
193
		fld dword[scale]
187
		fdiv dword[delt_sc]
194
		fdiv dword[delt_sc]
188
		fstp dword[scale]
195
		fstp dword[scale]
189
		call draw_3d
196
		jmp still
190
	@@:
197
	@@:
191
	cmp ah,45 ;-
198
	cmp ah,45 ;-
192
	jne @f
199
	jne @f
193
		fld dword[scale]
200
		fld dword[scale]
194
		fmul dword[delt_sc]
201
		fmul dword[delt_sc]
195
		fstp dword[scale]
202
		fstp dword[scale]
196
		call draw_3d
203
		jmp still
-
 
204
	@@:
-
 
205
	cmp ah,112 ;P
-
 
206
	jne @f
-
 
207
		xor dword[stop],1
-
 
208
		jmp still
197
	@@:
209
	@@:
198
	cmp ah,178 ;Up
210
	cmp ah,178 ;Up
199
	jne @f
211
	jne @f
200
		fld dword[view_rotx]
212
		fld dword[view_rotx]
201
		fadd dword[delt_size]
213
		fadd dword[delt_size]
202
		fstp dword[view_rotx]
214
		fstp dword[view_rotx]
203
		call draw_3d
215
		jmp still
204
	@@:
216
	@@:
205
	cmp ah,177 ;Down
217
	cmp ah,177 ;Down
206
	jne @f
218
	jne @f
207
		fld dword[view_rotx]
219
		fld dword[view_rotx]
208
		fsub dword[delt_size]
220
		fsub dword[delt_size]
209
		fstp dword[view_rotx]
221
		fstp dword[view_rotx]
210
		call draw_3d
222
		jmp still
211
	@@:
223
	@@:
212
	cmp ah,176 ;Left
224
	cmp ah,176 ;Left
213
	jne @f
225
	jne @f
214
		fld dword[view_roty]
226
		fld dword[view_roty]
215
		fadd dword[delt_size]
227
		fadd dword[delt_size]
216
		fstp dword[view_roty]
228
		fstp dword[view_roty]
217
		call draw_3d
229
		jmp still
218
	@@:
230
	@@:
219
	cmp ah,179 ;Right
231
	cmp ah,179 ;Right
220
	jne @f
232
	jne @f
221
		fld dword[view_roty]
233
		fld dword[view_roty]
222
		fsub dword[delt_size]
234
		fsub dword[delt_size]
223
		fstp dword[view_roty]
235
		fstp dword[view_roty]
224
		call draw_3d
236
		jmp still
225
	@@:
237
	@@:
226
	jmp still
238
	jmp still
Line 227... Line 239...
227
 
239
 
228
align 4
240
align 4
Line 235... Line 247...
235
 
247
 
236
 
248
 
237
align 4
249
align 4
238
title1: db 'TinyGL in KolibriOS'
250
title1: db 'TinyGL in KolibriOS'
239
.end: db 0
251
.end: db 0
240
title2: db 'F full screen'
252
;title2: db 'F full screen'
241
.end: db 0
253
;.end: db 0
242
title3: db 'ESC - exit   Arrow keys - rotate   +/- zoom'
254
title3: db 'ESC - exit, Arrow keys - rotate, +/- zoom, P - pause'
243
.end: db 0
255
.end: db 0
Line 244... Line 256...
244
fps:	db 'FPS:'
256
fps:	db 'FPS:'
245
.end: db 0
257
.end: db 0
246
 
258
 
Line 247... Line 259...
247
align 16
259
align 16
248
draw_3d:
260
draw_3d:
249
	stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT
261
	stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT
250
 
262
 
251
	stdcall [glPushMatrix]
263
	call [glPushMatrix]
Line 252... Line 264...
252
	stdcall [glScalef],  [scale], [scale], [scale]
264
	stdcall [glScalef],  [scale], [scale], [scale]
253
	stdcall [glRotatef], [view_rotx], 1.0, 0.0, 0.0
265
	stdcall [glRotatef], [view_rotx], 1.0, 0.0, 0.0
254
	stdcall [glRotatef], [view_roty], 0.0, 1.0, 0.0
266
	stdcall [glRotatef], [view_roty], 0.0, 1.0, 0.0
255
	stdcall [glRotatef], [view_rotz], 0.0, 0.0, 1.0
267
	stdcall [glRotatef], [view_rotz], 0.0, 0.0, 1.0
256
 
268
 
Line 257... Line 269...
257
	stdcall [glPushMatrix]
269
	call [glPushMatrix]
258
	stdcall [glTranslatef], -3.0, -2.0, 0.0
270
	stdcall [glTranslatef], -3.0, -2.0, 0.0
259
	stdcall [glRotatef], [angle], 0.0, 0.0, 1.0
271
	stdcall [glRotatef], [angle], 0.0, 0.0, 1.0
260
	stdcall [glCallList],[gear1]
272
	stdcall [glCallList],[gear1]
261
	stdcall [glPopMatrix]
273
	call [glPopMatrix]
262
 
274
 
Line 275... Line 287...
275
	fsub dword[an_9]
287
	fsub dword[an_9]
276
	fstp dword[esp-4]
288
	fstp dword[esp-4]
277
	sub esp,4
289
	sub esp,4
278
	call [glRotatef] ;, -2.0*angle-9.0, 0.0, 0.0, 1.0
290
	call [glRotatef] ;, -2.0*angle-9.0, 0.0, 0.0, 1.0
279
	stdcall [glCallList],[gear2]
291
	stdcall [glCallList],[gear2]
280
	stdcall [glPopMatrix]
292
	call [glPopMatrix]
Line 281... Line 293...
281
 
293
 
282
	stdcall [glPushMatrix]
294
	call [glPushMatrix]
283
	stdcall [glTranslatef], -3.1, 4.2, 0.0
295
	stdcall [glTranslatef], -3.1, 4.2, 0.0
284
	push dword 1.0
296
	push dword 1.0
285
	push dword 0.0
297
	push dword 0.0
286
	push dword 0.0
298
	push dword 0.0
Line 294... Line 306...
294
	fsub dword[an_25]
306
	fsub dword[an_25]
295
	fstp dword[esp-4]
307
	fstp dword[esp-4]
296
	sub esp,4
308
	sub esp,4
297
	call [glRotatef] ;, -2.0*angle-25.0, 0.0, 0.0, 1.0
309
	call [glRotatef] ;, -2.0*angle-25.0, 0.0, 0.0, 1.0
298
	stdcall [glCallList],[gear3]
310
	stdcall [glCallList],[gear3]
299
	stdcall [glPopMatrix]
311
	call [glPopMatrix]
Line 300... Line 312...
300
 
312
 
Line 301... Line 313...
301
	stdcall [glPopMatrix]
313
	call [glPopMatrix]
Line 302... Line 314...
302
 
314
 
303
	stdcall [kosglSwapBuffers]
315
	call [kosglSwapBuffers]
304
 
316
 
305
;   count++;
317
;   count++;
Line 328... Line 340...
328
gear3 dd ?
340
gear3 dd ?
329
angle dd 0.0
341
angle dd 0.0
Line 330... Line 342...
330
 
342
 
331
limit dd ?
343
limit dd ?
-
 
344
count dd 1
Line 332... Line 345...
332
count dd 1
345
stop  dd 0 ;пауза
333
 
346
 
334
;
347
;
335
;  Draw a gear wheel.  You'll probably want to call this function when
348
;  Draw a gear wheel.  You'll probably want to call this function when