… | |
… | |
18 | void draw (draw_context &ctx); |
18 | void draw (draw_context &ctx); |
19 | }; |
19 | }; |
20 | |
20 | |
21 | struct visibility_state { |
21 | struct visibility_state { |
22 | unsigned int generation; |
22 | unsigned int generation; |
23 | enum { UNKNOWN, TESTING, PARTIAL, FULL } visibility; |
23 | enum { UNKNOWN, OCCLUDED, PARTIAL, FULL } visibility; |
24 | |
24 | |
25 | visibility_state () : generation(0), visibility(UNKNOWN) { }; |
25 | visibility_state () : generation(0), visibility(UNKNOWN) { }; |
26 | }; |
26 | }; |
27 | |
27 | |
28 | struct draw_context { |
28 | struct draw_context { |
… | |
… | |
36 | light *l; |
36 | light *l; |
37 | set<entity_base *> drawn; |
37 | set<entity_base *> drawn; |
38 | |
38 | |
39 | unsigned int generation; |
39 | unsigned int generation; |
40 | map<octant *, visibility_state> vismap; |
40 | map<octant *, visibility_state> vismap; |
41 | vector<octant *> vislist; |
41 | vector<octant *> vislist; // octants partially or fully visible |
|
|
42 | vector<octant *> checklist; // octants possibly visible |
42 | |
43 | |
43 | bool may_draw (entity_base *e); |
44 | bool may_draw (entity_base *e); |
44 | |
45 | |
45 | draw_context (view &v); |
46 | draw_context (view &v); |
46 | ~draw_context (); |
47 | ~draw_context (); |