Rev 5256 | Rev 6101 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5256 | Rev 5262 | ||
---|---|---|---|
Line 8... | Line 8... | ||
8 | mov dword[f_inc],SPECULAR_BUFFER_SIZE |
8 | mov dword[f_inc],SPECULAR_BUFFER_SIZE |
9 | fld1 |
9 | fld1 |
10 | fidiv dword[f_inc] |
10 | fidiv dword[f_inc] |
11 | fstp dword[f_inc] ;f_inc = 1.0f/SPECULAR_BUFFER_SIZE |
11 | fstp dword[f_inc] ;f_inc = 1.0f/SPECULAR_BUFFER_SIZE |
12 | xor ecx,ecx |
12 | mov ebx,[buf] |
- | 13 | add ebx,offs_spec_buf |
|
- | 14 | xor ecx,ecx |
|
13 | align 4 |
15 | align 4 |
14 | .cycle_0: ;for (i = 0; i <= SPECULAR_BUFFER_SIZE; i++) |
16 | .cycle_0: ;for (i = 0; i <= SPECULAR_BUFFER_SIZE; i++) |
15 | cmp ecx,SPECULAR_BUFFER_SIZE |
17 | cmp ecx,SPECULAR_BUFFER_SIZE |
16 | jg @f |
18 | jg @f |
17 | ;Вычисляем x^y |
19 | ;Вычисляем x^y |
Line 28... | Line 30... | ||
28 | fscale ;st1=z, st0=(2**trunc(z))*(2**(z-trunc(z)))=2**t |
30 | fscale ;st1=z, st0=(2**trunc(z))*(2**(z-trunc(z)))=2**t |
29 | fxch st1 |
31 | fxch st1 |
30 | fstp st ;Результат остается на вершине стека st0 |
32 | fstp st ;Результат остается на вершине стека st0 |
31 | 33 | ||
Line 32... | Line -... | ||
32 | mov ebx,ecx |
- | |
33 | shl ebx,2 |
- | |
34 | add ebx,offs_spec_buf |
- | |
35 | add ebx,[buf] |
- | |
36 | fstp dword[ebx] ;buf.buf[i] = pow(val, shininess) |
34 | fstp dword[ebx] ;buf.buf[i] = pow(val, shininess) |
- | 35 | add ebx,4 |
|
Line 37... | Line 36... | ||
37 | 36 | ||
38 | fld dword[val] |
37 | fld dword[val] |
39 | fadd dword[f_inc] |
38 | fadd dword[f_inc] |
40 | fstp dword[val] ;val += f_inc |
39 | fstp dword[val] ;val += f_inc |