Subversion Repositories Kolibri OS

Rev

Rev 6286 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6286 Rev 8059
Line 10... Line 10...
10
offs_qobj_Orientation equ 4
10
offs_qobj_Orientation equ 4
11
offs_qobj_TextureFlag equ 8
11
offs_qobj_TextureFlag equ 8
12
offs_qobj_Normals equ 12
12
offs_qobj_Normals equ 12
13
offs_qobj_ErrorFunc equ 16
13
offs_qobj_ErrorFunc equ 16
Line -... Line 14...
-
 
14
 
-
 
15
;Так как некоторые извращенческие функции OpenGL воспринимают только параметры
-
 
16
;типа double (8 байт) то придется пихать их в стек макросом glpush
-
 
17
macro glpush GLDoubleVar {
-
 
18
	push dword[GLDoubleVar+4]
-
 
19
	push dword[GLDoubleVar]
-
 
20
}
14
 
21
 
15
;void drawTorus(float rc, int numc, float rt, int numt)
22
;void drawTorus(float rc, int numc, float rt, int numt)
16
;{
23
;{
Line 17... Line 24...
17
;}
24
;}
18
 
25
 
19
;static void normal3f(GLfloat x, GLfloat y, GLfloat z )
26
;static void normal3f(GLfloat x, GLfloat y, GLfloat z )
Line -... Line 27...
-
 
27
;{
-
 
28
;}
-
 
29
 
-
 
30
align 4
20
;{
31
an360f dd 360.0
-
 
32
 
-
 
33
align 16
-
 
34
proc gluPerspective, fovy:qword, aspect:qword, zNear:qword, zFar:qword
-
 
35
locals
-
 
36
	mfW dq ?
-
 
37
	fW dq ?
-
 
38
	mfH dq ?
-
 
39
	fH dq ?
-
 
40
endl
-
 
41
	fldpi
-
 
42
	fmul qword[fovy]
-
 
43
	fdiv dword[an360f]
-
 
44
	fptan
-
 
45
	ffree st0 ;выкидываем 1.0 которая осталось после вычисления тангенса
-
 
46
	fincstp
-
 
47
	fmul qword[zNear]
-
 
48
	fld st0
-
 
49
	fchs
-
 
50
	fstp qword[mfH]
-
 
51
	fst qword[fH]
-
 
52
	fmul qword[aspect]
-
 
53
	fld st0
21
;}
54
	fchs
-
 
55
	fstp qword[mfW]
-
 
56
	fstp qword[fW]
-
 
57
 
-
 
58
	glpush zFar
-
 
59
	glpush zNear
-
 
60
	glpush fH
-
 
61
	glpush mfH
-
 
62
	glpush fW
22
 
63
	glpush mfW
Line 23... Line 64...
23
;void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar )
64
	call glFrustum
24
;{
65
	ret
25
;}
66
endp
26
 
67