Rev 8062 | Rev 8408 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8062 | Rev 8063 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ; glVertex |
1 | ; glVertex |
Line 2... | Line 2... | ||
2 | 2 | ||
3 | align 4 |
3 | align 4 |
4 | proc glVertex4f uses eax, x:dword, y:dword, z:dword, w:dword |
- | |
5 | locals |
- | |
6 | p rd 5 |
- | |
7 | endl |
4 | glVertex4f: ;x, y, z, w |
8 | mov dword[p],OP_Vertex |
5 | push dword[esp] ;копируем адрес возврата |
9 | mov eax,[x] |
- | |
10 | mov dword[p+4],eax |
6 | push eax |
11 | mov eax,[y] |
7 | lea eax,[esp+8] |
12 | mov dword[p+8],eax |
- | |
13 | mov eax,[z] |
- | |
14 | mov dword[p+12],eax |
- | |
15 | mov eax,[w] |
- | |
16 | mov dword[p+16],eax |
- | |
17 | - | ||
18 | mov eax,ebp |
- | |
19 | sub eax,20 ;=sizeof(dd)*5 |
8 | mov dword[eax],OP_Vertex |
20 | stdcall gl_add_op,eax |
9 | stdcall gl_add_op,eax |
21 | ret |
10 | pop eax |
Line 22... | Line 11... | ||
22 | endp |
11 | ret 20 ;=sizeof(dd)*5 |
23 | 12 | ||
24 | align 4 |
13 | align 4 |
25 | proc glVertex2f, x:dword, y:dword |
14 | proc glVertex2f, x:dword, y:dword |
Line 55... | Line 44... | ||
55 | endp |
44 | endp |
Line 56... | Line 45... | ||
56 | 45 | ||
Line 57... | Line 46... | ||
57 | ; glNormal |
46 | ; glNormal |
58 | 47 | ||
59 | align 4 |
- | |
60 | proc glNormal3f uses eax, x:dword, y:dword, z:dword |
- | |
61 | locals |
- | |
62 | p rd 4 |
48 | align 4 |
63 | endl |
49 | glNormal3f: ;x, y, z |
64 | mov dword[p],OP_Normal |
- | |
65 | mov eax,[x] |
50 | push dword[esp] ;копируем адрес возврата |
66 | mov dword[p+4],eax |
51 | push eax |
67 | mov eax,[y] |
- | |
68 | mov dword[p+8],eax |
- | |
69 | mov eax,[z] |
- | |
70 | mov dword[p+12],eax |
- | |
71 | - | ||
72 | mov eax,ebp |
52 | lea eax,[esp+8] |
73 | sub eax,16 ;=sizeof(dd)*4 |
53 | mov dword[eax],OP_Normal |
74 | stdcall gl_add_op,eax |
54 | stdcall gl_add_op,eax |
Line 75... | Line 55... | ||
75 | ret |
55 | pop eax |
76 | endp |
56 | ret 16 ;=sizeof(dd)*4 |
77 | 57 | ||
78 | align 4 |
58 | align 4 |
Line 97... | Line 77... | ||
97 | mov eax,[r] |
77 | mov eax,[r] |
98 | mov dword[p+12],eax |
78 | mov dword[p+12],eax |
99 | mov eax,[a] |
79 | mov eax,[a] |
100 | mov dword[p+16],eax |
80 | mov dword[p+16],eax |
101 | ; direct convertion to integer to go faster if no shading |
81 | ; direct convertion to integer to go faster if no shading |
102 | mov eax,ebp |
- | |
103 | sub eax,12 ;ebp-12 = &p[5] |
82 | lea eax,[ebp-12] ;ebp-12 = &p[5] |
104 | push eax |
83 | push eax |
105 | add eax,4 ;ebp-8 = &p[6] |
84 | add eax,4 ;ebp-8 = &p[6] |
106 | push eax |
85 | push eax |
107 | add eax,4 ;ebp-4 = &p[7] |
86 | add eax,4 ;ebp-4 = &p[7] |
108 | push eax |
87 | push eax |
109 | stdcall RGBFtoRGBI,[r],[g],[b] ;call: r,g,b,&p[7],&p[6],&p[5] |
88 | stdcall RGBFtoRGBI,[r],[g],[b] ;call: r,g,b,&p[7],&p[6],&p[5] |
Line 110... | Line -... | ||
110 | - | ||
111 | mov eax,ebp |
89 | |
112 | sub eax,32 ;=sizeof(dd)*8 |
90 | lea eax,[ebp-32] ;=sizeof(dd)*8 |
113 | stdcall gl_add_op,eax |
91 | stdcall gl_add_op,eax |
114 | ret |
92 | ret |
Line 115... | Line 93... | ||
115 | endp |
93 | endp |
Line 166... | Line 144... | ||
166 | endp |
144 | endp |
Line 167... | Line 145... | ||
167 | 145 | ||
Line 168... | Line 146... | ||
168 | ; TexCoord |
146 | ; TexCoord |
169 | 147 | ||
170 | align 4 |
- | |
171 | proc glTexCoord4f uses eax, s:dword, t:dword, r:dword, q:dword |
- | |
172 | locals |
- | |
173 | p rd 5 |
148 | align 4 |
174 | endl |
149 | glTexCoord4f: ;s, t, r, q |
175 | mov dword[p],OP_TexCoord |
- | |
176 | mov eax,[s] |
150 | push dword[esp] ;копируем адрес возврата |
177 | mov dword[p+4],eax |
151 | push eax |
178 | mov eax,[t] |
- | |
179 | mov dword[p+8],eax |
- | |
180 | mov eax,[r] |
- | |
181 | mov dword[p+12],eax |
- | |
182 | mov eax,[q] |
- | |
183 | mov dword[p+16],eax |
- | |
184 | - | ||
185 | mov eax,ebp |
152 | lea eax,[esp+8] |
186 | sub eax,20 ;=sizeof(dd)*5 |
153 | mov dword[eax],OP_TexCoord |
187 | stdcall gl_add_op,eax |
154 | stdcall gl_add_op,eax |
Line 188... | Line 155... | ||
188 | ret |
155 | pop eax |
189 | endp |
156 | ret 20 ;=sizeof(dd)*5 |
190 | 157 | ||
191 | align 4 |
158 | align 4 |
Line 200... | Line 167... | ||
200 | stdcall glTexCoord4f,[eax],[eax+4],0.0,1.0 |
167 | stdcall glTexCoord4f,[eax],[eax+4],0.0,1.0 |
201 | ret |
168 | ret |
202 | endp |
169 | endp |
Line 203... | Line 170... | ||
203 | 170 | ||
204 | align 4 |
171 | align 4 |
205 | proc glEdgeFlag uses eax, flag:dword |
- | |
- | 172 | glEdgeFlag: ;flag |
|
206 | locals |
173 | push dword[esp] ;копируем адрес возврата |
207 | p rd 2 |
- | |
208 | endl |
- | |
209 | mov dword[p],OP_EdgeFlag |
174 | push eax |
210 | mov eax,[flag] |
175 | lea eax,[esp+8] |
211 | mov dword[p+4],eax |
- | |
212 | - | ||
213 | mov eax,ebp |
- | |
214 | sub eax,8 ;=sizeof(dd)*2 |
176 | mov dword[eax],OP_EdgeFlag |
215 | stdcall gl_add_op,eax |
177 | stdcall gl_add_op,eax |
216 | ret |
178 | pop eax |
Line 217... | Line 179... | ||
217 | endp |
179 | ret 8 ;=sizeof(dd)*2 |
Line 218... | Line 180... | ||
218 | 180 | ||
219 | ; misc |
181 | ; misc |
220 | - | ||
221 | align 4 |
- | |
222 | proc glShadeModel uses eax, mode:dword |
- | |
223 | locals |
- | |
224 | p rd 2 |
182 | |
225 | endl |
- | |
226 | 183 | align 4 |
|
227 | ; assert(mode == GL_FLAT || mode == GL_SMOOTH); |
184 | glShadeModel: ;mode |
228 | - | ||
229 | mov dword[p],OP_ShadeModel |
- | |
230 | mov eax,[mode] |
185 | ; assert(mode == GL_FLAT || mode == GL_SMOOTH); |
231 | mov dword[p+4],eax |
186 | push dword[esp] ;копируем адрес возврата |
232 | 187 | push eax |
|
233 | mov eax,ebp |
188 | lea eax,[esp+8] |
234 | sub eax,8 ;=sizeof(dd)*2 |
189 | mov dword[eax],OP_ShadeModel |
Line 235... | Line 190... | ||
235 | stdcall gl_add_op,eax |
190 | stdcall gl_add_op,eax |
236 | ret |
191 | pop eax |
237 | endp |
- | |
238 | - | ||
239 | align 4 |
- | |
240 | proc glCullFace uses eax, mode:dword |
- | |
241 | locals |
192 | ret 8 ;=sizeof(dd)*2 |
242 | p rd 2 |
193 | |
243 | endl |
194 | align 4 |
244 | - | ||
245 | ; assert(mode == GL_BACK || |
195 | glCullFace: ;mode |
246 | ; mode == GL_FRONT || |
196 | ; assert(mode == GL_BACK || |
247 | ; mode == GL_FRONT_AND_BACK); |
- | |
248 | - | ||
249 | mov dword[p],OP_CullFace |
197 | ; mode == GL_FRONT || |
250 | mov eax,[mode] |
198 | ; mode == GL_FRONT_AND_BACK); |
251 | mov dword[p+4],eax |
199 | push dword[esp] ;копируем адрес возврата |
252 | 200 | push eax |
|
253 | mov eax,ebp |
201 | lea eax,[esp+8] |
Line 254... | Line 202... | ||
254 | sub eax,8 ;=sizeof(dd)*2 |
202 | mov dword[eax],OP_CullFace |
255 | stdcall gl_add_op,eax |
203 | stdcall gl_add_op,eax |
256 | ret |
204 | pop eax |
257 | endp |
205 | ret 8 ;=sizeof(dd)*2 |
Line 270... | Line 218... | ||
270 | je @f |
218 | je @f |
271 | inc eax |
219 | inc eax |
272 | @@: |
220 | @@: |
273 | mov dword[p+4],eax |
221 | mov dword[p+4],eax |
Line 274... | Line -... | ||
274 | - | ||
275 | mov eax,ebp |
222 | |
276 | sub eax,8 ;=sizeof(dd)*2 |
223 | lea eax,[ebp-8] ;=sizeof(dd)*2 |
277 | stdcall gl_add_op,eax |
224 | stdcall gl_add_op,eax |
278 | ret |
225 | ret |
Line 279... | Line 226... | ||
279 | endp |
226 | endp |
280 | 227 | ||
281 | align 4 |
- | |
282 | proc glPolygonMode uses eax, face:dword, mode:dword |
- | |
283 | locals |
- | |
284 | p rd 3 |
- | |
285 | endl |
228 | align 4 |
286 | 229 | glPolygonMode: ;face, mode |
|
287 | ; assert(face == GL_BACK || |
230 | ; assert(face == GL_BACK || |
288 | ; face == GL_FRONT || |
231 | ; face == GL_FRONT || |
289 | ; face == GL_FRONT_AND_BACK); |
- | |
290 | ; assert(mode == GL_POINT || mode == GL_LINE || mode==GL_FILL); |
232 | ; face == GL_FRONT_AND_BACK); |
291 | 233 | ; assert(mode == GL_POINT || mode == GL_LINE || mode==GL_FILL); |
|
292 | mov dword[p],OP_PolygonMode |
- | |
293 | mov eax,[face] |
234 | push dword[esp] ;копируем адрес возврата |
294 | mov dword[p+4],eax |
235 | push eax |
295 | mov eax,[mode] |
- | |
296 | mov dword[p+8],eax |
- | |
297 | - | ||
298 | mov eax,ebp |
236 | lea eax,[esp+8] |
299 | sub eax,12 ;=sizeof(dd)*3 |
237 | mov dword[eax],OP_PolygonMode |
300 | stdcall gl_add_op,eax |
238 | stdcall gl_add_op,eax |
Line 301... | Line 239... | ||
301 | ret |
239 | pop eax |
Line 302... | Line 240... | ||
302 | endp |
240 | ret 12 ;=sizeof(dd)*3 |
303 | 241 | ||
Line 311... | Line 249... | ||
311 | mov dword[p],OP_EnableDisable |
249 | mov dword[p],OP_EnableDisable |
312 | mov eax,[cap] |
250 | mov eax,[cap] |
313 | mov dword[p+4],eax |
251 | mov dword[p+4],eax |
314 | mov dword[p+8],1 |
252 | mov dword[p+8],1 |
Line 315... | Line -... | ||
315 | - | ||
316 | mov eax,ebp |
253 | |
317 | sub eax,12 ;=sizeof(dd)*3 |
254 | lea eax,[ebp-12] ;=sizeof(dd)*3 |
318 | stdcall gl_add_op,eax |
255 | stdcall gl_add_op,eax |
319 | ret |
256 | ret |
Line 320... | Line 257... | ||
320 | endp |
257 | endp |
Line 327... | Line 264... | ||
327 | mov dword[p],OP_EnableDisable |
264 | mov dword[p],OP_EnableDisable |
328 | mov eax,[cap] |
265 | mov eax,[cap] |
329 | mov dword[p+4],eax |
266 | mov dword[p+4],eax |
330 | mov dword[p+8],0 |
267 | mov dword[p+8],0 |
Line 331... | Line -... | ||
331 | - | ||
332 | mov eax,ebp |
268 | |
333 | sub eax,12 ;=sizeof(dd)*3 |
269 | lea eax,[ebp-12] ;=sizeof(dd)*3 |
334 | stdcall gl_add_op,eax |
270 | stdcall gl_add_op,eax |
335 | ret |
271 | ret |
Line 336... | Line 272... | ||
336 | endp |
272 | endp |
Line 337... | Line 273... | ||
337 | 273 | ||
338 | ; glBegin / glEnd |
274 | ; glBegin / glEnd |
339 | - | ||
- | 275 | ||
340 | align 4 |
276 | align 4 |
341 | proc glBegin uses eax, mode:dword |
- | |
342 | locals |
- | |
343 | p rd 2 |
277 | glBegin: ;mode |
344 | endl |
278 | push dword[esp] ;копируем адрес возврата |
345 | mov dword[p],OP_Begin |
- | |
346 | mov eax,[mode] |
- | |
347 | mov dword[p+4],eax |
- | |
348 | 279 | push eax |
|
349 | mov eax,ebp |
280 | lea eax,[esp+8] |
350 | sub eax,8 ;=sizeof(dd)*2 |
281 | mov dword[eax],OP_Begin |
Line 351... | Line 282... | ||
351 | stdcall gl_add_op,eax |
282 | stdcall gl_add_op,eax |
352 | ret |
- | |
353 | endp |
- | |
354 | - | ||
355 | align 4 |
283 | pop eax |
356 | proc glEnd uses eax |
- | |
357 | locals |
- | |
358 | p dd ? |
- | |
359 | endl |
- | |
360 | mov dword[p],OP_End |
284 | ret 8 ;=sizeof(dd)*2 |
361 | 285 | ||
362 | mov eax,ebp |
- | |
Line 363... | Line 286... | ||
363 | sub eax,4 ;=sizeof(dd)*1 |
286 | align 4 |
Line 364... | Line 287... | ||
364 | stdcall gl_add_op,eax |
287 | glEnd: |
365 | ret |
288 | stdcall gl_add_op,op_End |
366 | endp |
- | |
- | 289 | ret |
|
367 | 290 | ||
368 | ; matrix |
- | |
369 | - | ||
370 | align 4 |
291 | ; matrix |
371 | proc glMatrixMode uses eax, mode:dword |
292 | |
372 | locals |
- | |
373 | p rd 2 |
- | |
374 | endl |
- | |
375 | mov dword[p],OP_MatrixMode |
293 | align 4 |
376 | mov eax,[mode] |
294 | glMatrixMode: ;mode |
377 | mov dword[p+4],eax |
295 | push dword[esp] ;копируем адрес возврата |
Line 378... | Line 296... | ||
378 | 296 | push eax |
|
379 | mov eax,ebp |
297 | lea eax,[esp+8] |
380 | sub eax,8 ;=sizeof(dd)*2 |
298 | mov dword[eax],OP_MatrixMode |
381 | stdcall gl_add_op,eax |
299 | stdcall gl_add_op,eax |
Line 392... | Line 310... | ||
392 | mov esi,[m] |
310 | mov esi,[m] |
393 | mov edi,ebp |
311 | mov edi,ebp |
394 | sub edi,64 ;=sizeof(M4) |
312 | sub edi,64 ;=sizeof(M4) |
395 | rep movsd |
313 | rep movsd |
Line 396... | Line -... | ||
396 | - | ||
397 | mov ecx,ebp |
314 | |
398 | sub ecx,68 ;=sizeof(dd)*17 |
315 | lea ecx,[ebp-68] ;=sizeof(dd)*17 |
399 | stdcall gl_add_op,ecx |
316 | stdcall gl_add_op,ecx |
400 | ret |
317 | ret |
Line 401... | Line 318... | ||
401 | endp |
318 | endp |
402 | 319 | ||
403 | align 4 |
- | |
404 | proc glLoadIdentity uses eax |
- | |
405 | locals |
- | |
406 | p dd ? |
- | |
407 | endl |
- | |
408 | mov dword[p],OP_LoadIdentity |
- | |
409 | - | ||
410 | mov eax,ebp |
320 | align 4 |
411 | sub eax,4 ;=sizeof(dd)*1 |
321 | glLoadIdentity: |
412 | stdcall gl_add_op,eax |
- | |
Line 413... | Line 322... | ||
413 | ret |
322 | stdcall gl_add_op,op_LoadIdentity |
414 | endp |
323 | ret |
415 | 324 | ||
416 | align 4 |
325 | align 4 |
Line 423... | Line 332... | ||
423 | mov esi,[m] |
332 | mov esi,[m] |
424 | mov edi,ebp |
333 | mov edi,ebp |
425 | sub edi,64 ;=sizeof(M4) |
334 | sub edi,64 ;=sizeof(M4) |
426 | rep movsd |
335 | rep movsd |
Line 427... | Line -... | ||
427 | - | ||
428 | mov ecx,ebp |
336 | |
429 | sub ecx,68 ;=sizeof(dd)*17 |
337 | lea ecx,[ebp-68] ;=sizeof(dd)*17 |
430 | stdcall gl_add_op,ecx |
338 | stdcall gl_add_op,ecx |
431 | ret |
339 | ret |
Line 432... | Line 340... | ||
432 | endp |
340 | endp |
433 | 341 | ||
434 | align 4 |
- | |
435 | proc glPushMatrix uses eax |
- | |
436 | locals |
- | |
437 | p dd ? |
- | |
438 | endl |
- | |
439 | mov dword[p],OP_PushMatrix |
- | |
440 | - | ||
441 | mov eax,ebp |
342 | align 4 |
442 | sub eax,4 ;=sizeof(dd)*1 |
343 | glPushMatrix: |
443 | stdcall gl_add_op,eax |
- | |
Line 444... | Line 344... | ||
444 | ret |
344 | stdcall gl_add_op,op_PushMatrix |
445 | endp |
345 | ret |
446 | - | ||
447 | align 4 |
- | |
448 | proc glPopMatrix uses eax |
- | |
449 | locals |
- | |
450 | p dd ? |
- | |
451 | endl |
- | |
452 | mov dword[p],OP_PopMatrix |
- | |
453 | 346 | ||
454 | mov eax,ebp |
347 | align 4 |
455 | sub eax,4 ;=sizeof(dd)*1 |
- | |
Line 456... | Line 348... | ||
456 | stdcall gl_add_op,eax |
348 | glPopMatrix: |
457 | ret |
349 | stdcall gl_add_op,op_PopMatrix |
458 | endp |
- | |
459 | - | ||
460 | align 4 |
- | |
461 | proc glRotatef uses eax, angle:dword, x:dword, y:dword, z:dword |
350 | ret |
462 | locals |
- | |
463 | p rd 5 |
- | |
464 | endl |
- | |
465 | mov dword[p],OP_Rotate |
- | |
466 | mov eax,[angle] |
351 | |
467 | mov dword[p+4],eax |
- | |
468 | mov eax,[x] |
352 | align 4 |
469 | mov dword[p+8],eax |
353 | glRotatef: ;angle, x, y, z |
470 | mov eax,[y] |
- | |
471 | mov dword[p+12],eax |
- | |
472 | mov eax,[z] |
- | |
473 | mov dword[p+16],eax |
354 | push dword[esp] ;копируем адрес возврата |
474 | 355 | push eax |
|
475 | mov eax,ebp |
356 | lea eax,[esp+8] |
Line 476... | Line 357... | ||
476 | sub eax,20 ;=sizeof(dd)*5 |
357 | mov dword[eax],OP_Rotate |
477 | stdcall gl_add_op,eax |
358 | stdcall gl_add_op,eax |
478 | ret |
- | |
479 | endp |
- | |
480 | - | ||
481 | align 4 |
359 | pop eax |
482 | proc glTranslatef uses eax, x:dword, y:dword, z:dword |
360 | ret 20 ;=sizeof(dd)*5 |
483 | locals |
- | |
484 | p rd 4 |
361 | |
485 | endl |
362 | align 4 |
486 | mov dword[p],OP_Translate |
- | |
487 | mov eax,[x] |
- | |
488 | mov dword[p+4],eax |
- | |
489 | mov eax,[y] |
- | |
490 | mov dword[p+8],eax |
- | |
491 | mov eax,[z] |
363 | glTranslatef: ;x, y, z |
492 | mov dword[p+12],eax |
364 | push dword[esp] ;копируем адрес возврата |
493 | 365 | push eax |
|
Line 494... | Line 366... | ||
494 | mov eax,ebp |
366 | lea eax,[esp+8] |
495 | sub eax,16 ;=sizeof(dd)*4 |
367 | mov dword[eax],OP_Translate |
496 | stdcall gl_add_op,eax |
- | |
497 | ret |
- | |
498 | endp |
- | |
499 | 368 | stdcall gl_add_op,eax |
|
500 | align 4 |
369 | pop eax |
501 | proc glScalef uses eax, x:dword, y:dword, z:dword |
- | |
502 | locals |
370 | ret 16 ;=sizeof(dd)*4 |
503 | p rd 4 |
371 | |
504 | endl |
- | |
505 | mov dword[p],OP_Scale |
- | |
506 | mov eax,[x] |
- | |
507 | mov dword[p+4],eax |
- | |
508 | mov eax,[y] |
- | |
509 | mov dword[p+8],eax |
372 | align 4 |
510 | mov eax,[z] |
373 | glScalef: ;x, y, z |
511 | mov dword[p+12],eax |
374 | push dword[esp] ;копируем адрес возврата |
Line 512... | Line 375... | ||
512 | 375 | push eax |
|
513 | mov eax,ebp |
376 | lea eax,[esp+8] |
514 | sub eax,16 ;=sizeof(dd)*4 |
- | |
515 | stdcall gl_add_op,eax |
- | |
516 | ret |
- | |
517 | endp |
377 | mov dword[eax],OP_Scale |
518 | - | ||
519 | align 4 |
- | |
520 | proc glViewport uses eax, x:dword, y:dword, width:dword, heigh:dword |
378 | stdcall gl_add_op,eax |
521 | locals |
- | |
522 | p rd 5 |
- | |
523 | endl |
- | |
524 | mov dword[p],OP_Viewport |
379 | pop eax |
525 | mov eax,[x] |
380 | ret 16 ;=sizeof(dd)*4 |
526 | mov dword[p+4],eax |
- | |
527 | mov eax,[y] |
- | |
528 | mov dword[p+8],eax |
- | |
529 | mov eax,[width] |
381 | |
530 | mov dword[p+12],eax |
382 | align 4 |
531 | mov eax,[heigh] |
383 | glViewport: ;x, y, width, heigh |
Line 532... | Line 384... | ||
532 | mov dword[p+16],eax |
384 | push dword[esp] ;копируем адрес возврата |
533 | 385 | push eax |
|
534 | mov eax,ebp |
386 | lea eax,[esp+8] |
535 | sub eax,20 ;=sizeof(dd)*5 |
387 | mov dword[eax],OP_Viewport |
Line 555... | Line 407... | ||
555 | fld qword[near] |
407 | fld qword[near] |
556 | fstp dword[p+20] |
408 | fstp dword[p+20] |
557 | fld qword[farv] |
409 | fld qword[farv] |
558 | fstp dword[p+24] |
410 | fstp dword[p+24] |
Line 559... | Line -... | ||
559 | - | ||
560 | mov eax,ebp |
411 | |
561 | sub eax,28 ;=sizeof(dd)*7 |
412 | lea eax,[ebp-28] ;=sizeof(dd)*7 |
562 | stdcall gl_add_op,eax |
413 | stdcall gl_add_op,eax |
563 | ret |
414 | ret |
Line 564... | Line 415... | ||
564 | endp |
415 | endp |
Line 619... | Line 470... | ||
619 | mov dword[p+16],0.0 |
470 | mov dword[p+16],0.0 |
620 | mov dword[p+20],0.0 |
471 | mov dword[p+20],0.0 |
621 | mov dword[p+24],0.0 |
472 | mov dword[p+24],0.0 |
622 | @@: |
473 | @@: |
Line 623... | Line -... | ||
623 | - | ||
624 | mov eax,ebp |
474 | |
625 | sub eax,28 ;=sizeof(dd)*7 |
475 | lea eax,[ebp-28] ;=sizeof(dd)*7 |
626 | stdcall gl_add_op,eax |
476 | stdcall gl_add_op,eax |
627 | ret |
477 | ret |
Line 628... | Line 478... | ||
628 | endp |
478 | endp |
Line 641... | Line 491... | ||
641 | mov dword[p+12],eax |
491 | mov dword[p+12],eax |
642 | mov dword[p+16],0.0 |
492 | mov dword[p+16],0.0 |
643 | mov dword[p+20],0.0 |
493 | mov dword[p+20],0.0 |
644 | mov dword[p+24],0.0 |
494 | mov dword[p+24],0.0 |
Line 645... | Line -... | ||
645 | - | ||
646 | mov eax,ebp |
495 | |
647 | sub eax,28 ;=sizeof(dd)*7 |
496 | lea eax,[ebp-28] ;=sizeof(dd)*7 |
648 | stdcall gl_add_op,eax |
497 | stdcall gl_add_op,eax |
649 | ret |
498 | ret |
Line 650... | Line 499... | ||
650 | endp |
499 | endp |
651 | 500 | ||
652 | align 4 |
- | |
653 | proc glColorMaterial uses eax, mode:dword, type:dword |
- | |
654 | locals |
- | |
655 | p rd 3 |
501 | align 4 |
656 | endl |
502 | glColorMaterial: ;mode, type |
657 | mov dword[p],OP_ColorMaterial |
- | |
658 | mov eax,[mode] |
503 | push dword[esp] ;копируем адрес возврата |
659 | mov dword[p+4],eax |
504 | push eax |
660 | mov eax,[type] |
- | |
661 | mov dword[p+8],eax |
- | |
662 | - | ||
663 | mov eax,ebp |
505 | lea eax,[esp+8] |
664 | sub eax,12 ;=sizeof(dd)*3 |
506 | mov dword[eax],OP_ColorMaterial |
665 | stdcall gl_add_op,eax |
507 | stdcall gl_add_op,eax |
Line 666... | Line 508... | ||
666 | ret |
508 | pop eax |
667 | endp |
509 | ret 12 ;=sizeof(dd)*3 |
668 | 510 | ||
669 | align 4 |
511 | align 4 |
Line 686... | Line 528... | ||
686 | mov ecx,[eax+8] |
528 | mov ecx,[eax+8] |
687 | mov dword[p+20],ecx |
529 | mov dword[p+20],ecx |
688 | mov ecx,[eax+12] |
530 | mov ecx,[eax+12] |
689 | mov dword[p+24],ecx |
531 | mov dword[p+24],ecx |
Line 690... | Line -... | ||
690 | - | ||
691 | mov eax,ebp |
532 | |
692 | sub eax,28 ;=sizeof(dd)*7 |
533 | lea eax,[ebp-28] ;=sizeof(dd)*7 |
693 | stdcall gl_add_op,eax |
534 | stdcall gl_add_op,eax |
694 | ret |
535 | ret |
Line 695... | Line 536... | ||
695 | endp |
536 | endp |
Line 708... | Line 549... | ||
708 | mov dword[p+12],eax |
549 | mov dword[p+12],eax |
709 | mov dword[p+16],0.0 |
550 | mov dword[p+16],0.0 |
710 | mov dword[p+20],0.0 |
551 | mov dword[p+20],0.0 |
711 | mov dword[p+24],0.0 |
552 | mov dword[p+24],0.0 |
Line 712... | Line -... | ||
712 | - | ||
713 | mov eax,ebp |
553 | |
714 | sub eax,28 ;=sizeof(dd)*7 |
554 | lea eax,[ebp-28] ;=sizeof(dd)*7 |
715 | stdcall gl_add_op,eax |
555 | stdcall gl_add_op,eax |
716 | ret |
556 | ret |
Line 717... | Line 557... | ||
717 | endp |
557 | endp |
Line 729... | Line 569... | ||
729 | 569 | ||
730 | mov dword[p+12],0.0 |
570 | mov dword[p+12],0.0 |
731 | mov dword[p+16],0.0 |
571 | mov dword[p+16],0.0 |
Line 732... | Line -... | ||
732 | mov dword[p+20],0.0 |
- | |
733 | 572 | mov dword[p+20],0.0 |
|
734 | mov eax,ebp |
573 | |
735 | sub eax,24 ;=sizeof(dd)*6 |
574 | lea eax,[ebp-24] ;=sizeof(dd)*6 |
736 | stdcall gl_add_op,eax |
575 | stdcall gl_add_op,eax |
Line 737... | Line 576... | ||
737 | ret |
576 | ret |
Line 753... | Line 592... | ||
753 | mov ecx,[eax+8] |
592 | mov ecx,[eax+8] |
754 | mov dword[p+16],ecx |
593 | mov dword[p+16],ecx |
755 | mov ecx,[eax+12] |
594 | mov ecx,[eax+12] |
756 | mov dword[p+20],ecx |
595 | mov dword[p+20],ecx |
Line 757... | Line -... | ||
757 | - | ||
758 | mov eax,ebp |
596 | |
759 | sub eax,24 ;=sizeof(dd)*6 |
597 | lea eax,[ebp-24] ;=sizeof(dd)*6 |
760 | stdcall gl_add_op,eax |
598 | stdcall gl_add_op,eax |
761 | ret |
599 | ret |
Line 762... | Line 600... | ||
762 | endp |
600 | endp |
Line 763... | Line 601... | ||
763 | 601 | ||
764 | ; clear |
602 | ; clear |
765 | - | ||
- | 603 | ||
766 | align 4 |
604 | align 4 |
767 | proc glClear uses eax, mask:dword |
- | |
768 | locals |
- | |
769 | p rd 2 |
605 | glClear: ;mask |
770 | endl |
606 | push dword[esp] ;копируем адрес возврата |
771 | mov dword[p],OP_Clear |
- | |
772 | mov eax,[mask] |
- | |
773 | mov dword[p+4],eax |
- | |
774 | 607 | push eax |
|
775 | mov eax,ebp |
608 | lea eax,[esp+8] |
776 | sub eax,8 ;=sizeof(dd)*2 |
609 | mov dword[eax],OP_Clear |
Line 777... | Line 610... | ||
777 | stdcall gl_add_op,eax |
610 | stdcall gl_add_op,eax |
778 | ret |
611 | pop eax |
779 | endp |
612 | ret 8 ;=sizeof(dd)*2 |
780 | 613 | ||
Line 791... | Line 624... | ||
791 | mov eax,[r] |
624 | mov eax,[r] |
792 | mov dword[p+12],eax |
625 | mov dword[p+12],eax |
793 | mov eax,[a] |
626 | mov eax,[a] |
794 | mov dword[p+16],eax |
627 | mov dword[p+16],eax |
Line 795... | Line -... | ||
795 | - | ||
796 | mov eax,ebp |
628 | |
797 | sub eax,20 ;=sizeof(dd)*5 |
629 | lea eax,[ebp-20] ;=sizeof(dd)*5 |
798 | stdcall gl_add_op,eax |
630 | stdcall gl_add_op,eax |
799 | ret |
631 | ret |
Line 800... | Line 632... | ||
800 | endp |
632 | endp |
Line 807... | Line 639... | ||
807 | mov dword[p],OP_ClearDepth |
639 | mov dword[p],OP_ClearDepth |
808 | mov eax,[depth] |
640 | mov eax,[depth] |
809 | fld qword[eax] |
641 | fld qword[eax] |
810 | fstp dword[p+4] |
642 | fstp dword[p+4] |
Line 811... | Line -... | ||
811 | - | ||
812 | mov eax,ebp |
643 | |
813 | sub eax,8 ;=sizeof(dd)*2 |
644 | lea eax,[ebp-8] ;=sizeof(dd)*2 |
814 | stdcall gl_add_op,eax |
645 | stdcall gl_add_op,eax |
815 | ret |
646 | ret |
Line 816... | Line 647... | ||
816 | endp |
647 | endp |
Line 817... | Line 648... | ||
817 | 648 | ||
818 | ; textures |
- | |
819 | 649 | ; textures |
|
820 | align 4 |
650 | |
821 | proc glTexImage2D uses ecx edi esi,\ |
- | |
822 | target:dword, level:dword, components:dword,\ |
- | |
823 | width:dword, height:dword, border:dword,\ |
651 | align 4 |
824 | format:dword, type:dword, pixels:dword |
652 | glTexImage2D: ;target, level, components, width, height, border, format, type, pixels |
825 | locals |
653 | push dword[esp] ;копируем адрес возврата |
826 | p rd 10 |
- | |
827 | endl |
- | |
828 | mov dword[p],OP_TexImage2D |
- | |
829 | mov ecx,9 |
654 | push eax |
830 | mov esi,ebp |
- | |
831 | add esi,8 ;указатель на стек с входными параметрами |
- | |
832 | mov edi,ebp |
- | |
833 | sub edi,36 ;указатель на стек с локальным массивом |
655 | lea eax,[esp+8] |
834 | rep movsd ;копирование в цикле 9-ти входных параметров |
656 | mov dword[eax],OP_TexImage2D |
835 | - | ||
836 | mov ecx,ebp |
- | |
837 | sub ecx,40 ;=sizeof(dd)*10 |
- | |
Line 838... | Line 657... | ||
838 | stdcall gl_add_op,ecx |
657 | stdcall gl_add_op,eax |
839 | ret |
658 | pop eax |
840 | endp |
- | |
841 | - | ||
842 | align 4 |
- | |
843 | proc glBindTexture uses eax, target:dword, texture:dword |
659 | ret 40 ;=sizeof(dd)*10 |
844 | locals |
660 | |
845 | p rd 3 |
- | |
846 | endl |
661 | align 4 |
847 | mov dword[p],OP_BindTexture |
662 | glBindTexture: ;target, texture |
848 | mov eax,[target] |
- | |
849 | mov dword[p+4],eax |
- | |
850 | mov eax,[texture] |
- | |
851 | mov dword[p+8],eax |
663 | push dword[esp] ;копируем адрес возврата |
852 | 664 | push eax |
|
853 | mov eax,ebp |
665 | lea eax,[esp+8] |
Line 854... | Line 666... | ||
854 | sub eax,12 ;=sizeof(dd)*3 |
666 | mov dword[eax],OP_BindTexture |
855 | stdcall gl_add_op,eax |
667 | stdcall gl_add_op,eax |
856 | ret |
668 | pop eax |
857 | endp |
669 | ret 12 ;=sizeof(dd)*3 |
Line 871... | Line 683... | ||
871 | mov dword[p+16],0.0 |
683 | mov dword[p+16],0.0 |
872 | mov dword[p+20],0.0 |
684 | mov dword[p+20],0.0 |
873 | mov dword[p+24],0.0 |
685 | mov dword[p+24],0.0 |
874 | mov dword[p+28],0.0 |
686 | mov dword[p+28],0.0 |
Line 875... | Line -... | ||
875 | - | ||
876 | mov eax,ebp |
687 | |
877 | sub eax,32 ;=sizeof(dd)*8 |
688 | lea eax,[ebp-32] ;=sizeof(dd)*8 |
878 | stdcall gl_add_op,eax |
689 | stdcall gl_add_op,eax |
879 | ret |
690 | ret |
Line 880... | Line 691... | ||
880 | endp |
691 | endp |
Line 894... | Line 705... | ||
894 | mov dword[p+16],0.0 |
705 | mov dword[p+16],0.0 |
895 | mov dword[p+20],0.0 |
706 | mov dword[p+20],0.0 |
896 | mov dword[p+24],0.0 |
707 | mov dword[p+24],0.0 |
897 | mov dword[p+28],0.0 |
708 | mov dword[p+28],0.0 |
Line 898... | Line -... | ||
898 | - | ||
899 | mov eax,ebp |
709 | |
900 | sub eax,32 ;=sizeof(dd)*8 |
710 | lea eax,[ebp-32] ;=sizeof(dd)*8 |
901 | stdcall gl_add_op,eax |
711 | stdcall gl_add_op,eax |
902 | ret |
712 | ret |
Line 903... | Line 713... | ||
903 | endp |
713 | endp |
904 | 714 | ||
905 | align 4 |
- | |
906 | proc glPixelStorei uses eax, pname:dword, param:dword |
- | |
907 | locals |
- | |
908 | p rd 3 |
715 | align 4 |
909 | endl |
716 | glPixelStorei: ;pname, param |
910 | mov dword[p],OP_PixelStore |
- | |
911 | mov eax,[pname] |
717 | push dword[esp] ;копируем адрес возврата |
912 | mov dword[p+4],eax |
718 | push eax |
913 | mov eax,[param] |
- | |
914 | mov dword[p+8],eax |
- | |
915 | - | ||
916 | mov eax,ebp |
719 | lea eax,[esp+8] |
917 | sub eax,12 ;=sizeof(dd)*3 |
720 | mov dword[eax],OP_PixelStore |
918 | stdcall gl_add_op,eax |
721 | stdcall gl_add_op,eax |
Line 919... | Line 722... | ||
919 | ret |
722 | pop eax |
Line 920... | Line 723... | ||
920 | endp |
723 | ret 12 ;=sizeof(dd)*3 |
921 | 724 | ||
922 | ; selection |
- | |
923 | - | ||
924 | align 4 |
- | |
925 | proc glInitNames uses eax |
- | |
926 | locals |
- | |
927 | p dd ? |
- | |
928 | endl |
- | |
929 | mov dword[p],OP_InitNames |
725 | ; selection |
930 | 726 | ||
931 | mov eax,ebp |
- | |
Line 932... | Line 727... | ||
932 | sub eax,4 ;=sizeof(dd)*1 |
727 | align 4 |
933 | stdcall gl_add_op,eax |
728 | glInitNames: |
934 | ret |
- | |
- | 729 | stdcall gl_add_op,op_InitNames |
|
935 | endp |
730 | ret |
936 | - | ||
937 | align 4 |
- | |
938 | proc glPushName uses eax, name:dword |
731 | |
939 | locals |
732 | align 4 |
940 | p rd 2 |
- | |
941 | endl |
- | |
942 | mov dword[p],OP_PushName |
- | |
943 | mov eax,[name] |
733 | glPushName: ;name |
944 | mov dword[p+4],eax |
734 | push dword[esp] ;копируем адрес возврата |
945 | 735 | push eax |
|
Line 946... | Line 736... | ||
946 | mov eax,ebp |
736 | lea eax,[esp+8] |
947 | sub eax,8 ;=sizeof(dd)*2 |
- | |
948 | stdcall gl_add_op,eax |
737 | mov dword[eax],OP_PushName |
949 | ret |
- | |
950 | endp |
- | |
951 | - | ||
952 | align 4 |
- | |
953 | proc glPopName uses eax |
- | |
954 | locals |
- | |
955 | p dd ? |
738 | stdcall gl_add_op,eax |
956 | endl |
739 | pop eax |
957 | mov dword[p],OP_PopName |
- | |
Line 958... | Line 740... | ||
958 | 740 | ret 8 ;=sizeof(dd)*2 |
|
959 | mov eax,ebp |
741 | |
960 | sub eax,4 ;=sizeof(dd)*1 |
- | |
- | 742 | align 4 |
|
961 | stdcall gl_add_op,eax |
743 | glPopName: |
962 | ret |
- | |
963 | endp |
- | |
964 | 744 | stdcall gl_add_op,op_PopName |
|
965 | align 4 |
745 | ret |
966 | proc glLoadName uses eax, name:dword |
- | |
967 | locals |
- | |
968 | p rd 2 |
- | |
969 | endl |
746 | |
970 | mov dword[p],OP_LoadName |
747 | align 4 |
971 | mov eax,[name] |
748 | glLoadName: ;name |
Line 972... | Line 749... | ||
972 | mov dword[p+4],eax |
749 | push dword[esp] ;копируем адрес возврата |
973 | 750 | push eax |
|
974 | mov eax,ebp |
- | |
975 | sub eax,8 ;=sizeof(dd)*2 |
- | |
976 | stdcall gl_add_op,eax |
- | |
977 | ret |
751 | lea eax,[esp+8] |
978 | endp |
752 | mov dword[eax],OP_LoadName |
979 | - | ||
980 | align 4 |
753 | stdcall gl_add_op,eax |
981 | proc glPolygonOffset uses eax, factor:dword, units:dword |
754 | pop eax |
982 | locals |
- | |
983 | p rd 3 |
- | |
984 | endl |
- | |
985 | mov dword[p],OP_PolygonOffset |
755 | ret 8 ;=sizeof(dd)*2 |
986 | mov eax,[factor] |
756 | |
987 | mov dword[p+4],eax |
757 | align 4 |
Line 988... | Line 758... | ||
988 | mov eax,[units] |
758 | glPolygonOffset: ;factor, units |
Line 989... | Line 759... | ||
989 | mov dword[p+8],eax |
759 | push dword[esp] ;копируем адрес возврата |
990 | 760 | push eax |
|
991 | mov eax,ebp |
- | |
- | 761 | lea eax,[esp+8] |
|
992 | sub eax,12 ;=sizeof(dd)*3 |
762 | mov dword[eax],OP_PolygonOffset |
993 | stdcall gl_add_op,eax |
- | |
994 | ret |
- | |
995 | endp |
763 | stdcall gl_add_op,eax |
996 | 764 | pop eax |
|
997 | ; Special Functions |
- | |
998 | - | ||
999 | align 4 |
- | |
1000 | proc glCallList uses eax, list:dword |
765 | ret 12 ;=sizeof(dd)*3 |
1001 | locals |
766 | |
1002 | p rd 2 |
767 | ; Special Functions |
Line 1003... | Line 768... | ||
1003 | endl |
768 | |
1004 | mov dword[p],OP_CallList |
769 | align 4 |
1005 | mov eax,[list] |
770 | glCallList: ;list |
1006 | mov dword[p+4],eax |
771 | push dword[esp] ;копируем адрес возврата |
1007 | 772 | push eax |
|
Line 1008... | Line 773... | ||
1008 | mov eax,ebp |
773 | lea eax,[esp+8] |
1009 | sub eax,8 ;=sizeof(dd)*2 |
774 | mov dword[eax],OP_CallList |
1010 | stdcall gl_add_op,eax |
- | |
1011 | ret |
- | |
1012 | endp |
- | |
1013 | 775 | stdcall gl_add_op,eax |
|
1014 | align 4 |
776 | pop eax |
1015 | proc glFlush ;(void) |
- | |
1016 | ;nothing to do |
777 | ret 8 ;=sizeof(dd)*2 |
1017 | ret |
778 | |
1018 | endp |
- | |
1019 | - | ||
1020 | align 4 |
- | |
1021 | proc glHint uses eax, target:dword, mode:dword |
779 | align 4 |
1022 | locals |
780 | proc glFlush ;(void) |
1023 | p rd 3 |
781 | ;nothing to do |
Line 1024... | Line 782... | ||
1024 | endl |
782 | ret |
Line 1025... | Line 783... | ||
1025 | mov dword[p],OP_Hint |
783 | endp |
1026 | mov eax,[target] |
784 |