Rev 8232 | Rev 8719 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8232 | Rev 8666 | ||
---|---|---|---|
Line 17... | Line 17... | ||
17 | imul ecx,eax ;SIZE_X*SIZE_Y |
17 | imul ecx,eax ;SIZE_X*SIZE_Y |
18 | xor eax,eax |
18 | xor eax,eax |
19 | cld |
19 | cld |
20 | rep stosd |
20 | rep stosd |
21 | pop edi |
21 | pop edi |
22 | ; movzx eax,[sinus_flag] |
- | |
23 | ; mov edx,10 |
- | |
24 | ; mul edx |
- | |
25 | ; mov [sin_amplitude],eax |
- | |
26 | ; mov [sin_frq],eax |
- | |
27 | fninit |
22 | fninit |
28 | ;if Ext = SSE2 |
- | |
29 | ; movups xmm1,[const0123] ; xmm1 - init values |
- | |
30 | ; mov eax,0x000000ff |
- | |
31 | ; movd xmm2,eax |
- | |
32 | ; shufps xmm2,xmm2,0 ; xmm2 - mask value |
- | |
33 | ; mov eax,4 |
- | |
34 | ; movd xmm3,eax |
- | |
35 | ; shufps xmm3,xmm3,0 |
- | |
36 | .again: |
23 | .again: |
37 | if 0 |
- | |
38 | fild dword .x |
- | |
39 | fidiv [sin_frq] |
- | |
40 | fsin |
- | |
41 | fimul [sin_amplitude] |
- | |
42 | fiadd dword .y |
- | |
43 | fistp dword .new_y |
- | |
44 | else |
- | |
45 | fild dword .x |
24 | fild dword .x |
46 | fmul [sin_frq] |
25 | fmul [sin_frq] |
47 | fistp dword .temp |
26 | fistp dword .temp |
48 | mov eax, .temp |
27 | mov eax, .temp |
49 | ; mov bx, [angle_x] |
- | |
50 | ; add bx, [angle_y] |
- | |
51 | ; movzx ebx,bx |
- | |
52 | ; shr ebx,1 ; change phase |
- | |
53 | ; add eax,ebx |
- | |
54 | - | ||
Line 55... | Line 28... | ||
55 | 28 | ||
Line 56... | Line -... | ||
56 | and eax, 0x000000ff |
- | |
57 | - | ||
58 | ; cdq |
- | |
59 | ; mul [sin_frq] |
- | |
60 | ; and eax,0x000000ff |
- | |
Line 61... | Line 29... | ||
61 | ; and ax,0x00ff |
29 | and eax, 0x000000ff |
62 | ; cwde |
30 | |
63 | 31 | ||
64 | fld dword [sin_tab+eax*4] |
32 | fld dword [sin_tab+eax*4] |
65 | fimul dword [sin_amplitude] |
33 | fimul dword [sin_amplitude] |
66 | fiadd dword .y |
34 | fiadd dword .y |
67 | fistp dword .new_y |
35 | fistp dword .new_y |
68 | end if |
36 | |
69 | mov eax,.new_y |
37 | mov eax,.new_y |
70 | or eax,eax |
38 | or eax,eax |
Line 274... | Line 242... | ||
274 | 242 | ||
Line 275... | Line 243... | ||
275 | end if |
243 | end if |
Line 276... | Line -... | ||
276 | - | ||
277 | ret |
- | |
278 | - | ||
279 | ;align 16 |
- | |
280 | ; emboss_bias: |
- | |
281 | ; dw 128, 128, 128, 128, 128, 128, 128, 128 |
- | |
282 | - | ||
283 | if 0 ; old emb proc |
- | |
284 | - | ||
285 | ; emboss - after drawing all, |
- | |
286 | ; transfer screen buffer into bump map |
- | |
287 | ; and draw two bump triangles |
- | |
288 | ; ************************************* |
- | |
289 | mov esi,screen |
- | |
290 | mov edi,bumpmap2 |
- | |
291 | mov ecx,TEXTURE_SIZE/3 |
- | |
292 | cld |
- | |
293 | if Ext=NON |
- | |
294 | xor eax,eax |
- | |
295 | xor bh,bh |
- | |
296 | xor dh,dh |
- | |
297 | @@: |
- | |
298 | lodsb |
- | |
299 | movzx bx,al |
- | |
300 | lodsb |
- | |
301 | movzx dx,al |
- | |
302 | lodsb |
- | |
303 | add ax,bx |
- | |
304 | add ax,dx |
- | |
305 | ; cwd |
- | |
306 | ; div [i3] |
- | |
307 | ;; push ax |
- | |
308 | ;; pop bx |
- | |
309 | ;; shr bx,3 |
- | |
310 | ;; shr ax,2 |
- | |
311 | ;; add ax,bx |
- | |
Line 312... | Line -... | ||
312 | - | ||
313 | lea eax,[eax*5] |
- | |
314 | shr ax,4 |
- | |
315 | - | ||
316 | stosb |
- | |
317 | loop @b |
- | |
318 | else |
- | |
319 | emms |
- | |
320 | pxor mm1,mm1 |
- | |
321 | mov ebx,0x0000ffff |
- | |
322 | @@: |
- | |
323 | movd mm0,[esi] |
- | |
324 | punpcklbw mm0,mm1 |
- | |
325 | movq mm2,mm0 |
- | |
326 | psrlq mm2,16 |
- | |
327 | movq mm3,mm0 |
- | |
328 | psrlq mm3,32 |
- | |
329 | paddw mm0,mm2 |
- | |
330 | paddw mm0,mm3 |
- | |
331 | - | ||
332 | - | ||
333 | movd eax,mm0 |
- | |
334 | and eax,ebx |
- | |
335 | lea eax,[eax*5] |
- | |
336 | shr ax,4 |
- | |
337 | stosb |
- | |
338 | add esi,3 |
- | |
339 | loop @b |
- | |
340 | - | ||
341 | end if |
- | |
342 | push ebp |
- | |
343 | - | ||
344 | push dword 0 ; env coords |
- | |
345 | push word 0 |
- | |
346 | push word SIZE_X |
- | |
347 | push word SIZE_Y |
- | |
348 | push dword 0 |
- | |
349 | push dword 0 ; bump coords |
- | |
350 | push word SIZE_X |
- | |
351 | push word SIZE_Y |
- | |
352 | push word 0 |
- | |
353 | mov eax,SIZE_Y |
- | |
354 | mov ebx,SIZE_X*65536+0 |
- | |
355 | xor ecx,ecx |
- | |
356 | mov edx,bumpmap2 |
- | |
357 | mov esi,envmap |
- | |
358 | mov edi,screen |
- | |
359 | call bump_triangle |
- | |
360 | - | ||
361 | push dword SIZE_X shl 16 + SIZE_Y ; env coords |
- | |
362 | push word 0 |
- | |
363 | push word SIZE_X |
- | |
364 | push word SIZE_Y |
- | |
365 | push word 0 |
- | |
366 | push dword SIZE_X shl 16 + SIZE_Y ; bump coords |
- | |
367 | push word 0 |
- | |
368 | push word SIZE_X |
- | |
369 | push word SIZE_Y |
- | |
370 | push word 0 |
- | |
371 | mov eax,SIZE_Y |
- | |
372 | mov ebx,SIZE_X * 65536+0 |
- | |
373 | mov ecx,SIZE_X shl 16 + SIZE_Y |
- | |
374 | mov edx,bumpmap2 |
- | |
375 | mov esi,envmap |
- | |
376 | mov edi,screen |
- | |
377 | call bump_triangle |
- | |
378 | 244 | ||
Line 379... | Line 245... | ||
379 | pop ebp |
245 | ret |
380 | ret |
246 |