Subversion Repositories Kolibri OS

Rev

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