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 |