… | |
… | |
17 | |
17 | |
18 | struct view { |
18 | struct view { |
19 | sector orig; |
19 | sector orig; |
20 | point p; |
20 | point p; |
21 | vec3 d, u; |
21 | vec3 d, u; |
22 | float fov; |
22 | GLfloat fov; |
|
|
23 | GLfloat near, far; |
23 | int w, h; |
24 | int w, h; |
24 | |
25 | |
25 | void draw (); |
26 | GLfloat gamma; |
26 | |
27 | |
27 | // only to be used by friends TODO |
28 | // only to be used by friends TODO |
|
|
29 | |
|
|
30 | GLfloat nextfar; |
28 | |
31 | |
29 | matrix projection; |
32 | matrix projection; |
30 | |
33 | |
31 | void transform (const matrix &m); |
34 | void transform (const matrix &m); |
32 | |
35 | |
33 | struct { |
36 | struct { |
34 | plane l, r, t, b, n, f; |
37 | plane l, r, t, b, n, f; |
35 | } frustum; |
38 | } frustum; |
36 | enum { DEPTH, LIGHTED } mode; |
39 | enum mode { DEPTH, LIGHTED } mode; |
37 | light *l; |
40 | light *l; |
38 | set<entity_base *> drawn; |
41 | set<entity_base *> drawn; |
39 | |
42 | |
40 | unsigned int generation; |
43 | unsigned int generation; |
41 | map<octant *, visibility_state> vismap; |
44 | map<octant *, visibility_state> vismap; |
42 | vector<octant *> vislist; // octants partially or fully visible |
45 | vector<octant *> vislist; // octants partially or fully visible |
43 | vector<octant *> checklist; // octants possibly visible |
46 | vector<octant *> checklist; // octants possibly visible |
|
|
47 | |
|
|
48 | void reset_projection (); |
|
|
49 | |
|
|
50 | // public |
|
|
51 | |
|
|
52 | void begin (); |
|
|
53 | void pass (enum mode m); |
|
|
54 | void end (); |
44 | |
55 | |
45 | bool may_draw (entity_base *e); |
56 | bool may_draw (entity_base *e); |
46 | |
57 | |
47 | view (); |
58 | view (); |
48 | ~view (); |
59 | ~view (); |