ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libgender/view.h
(Generate patch)

Comparing libgender/view.h (file contents):
Revision 1.3 by root, Mon Oct 4 02:06:57 2004 UTC vs.
Revision 1.7 by root, Tue Oct 5 02:48:17 2004 UTC

1#ifndef VIEW_H 1#ifndef VIEW_H
2#define VIEW_H 2#define VIEW_H
3 3
4#include <set> 4#include <set>
5#include <map>
5 6
6using namespace std; 7using namespace std;
7 8
8#include "util.h" 9#include "util.h"
9 10
15 int w, h; 16 int w, h;
16 17
17 void draw (draw_context &ctx); 18 void draw (draw_context &ctx);
18}; 19};
19 20
21struct visibility_state {
22 unsigned int generation;
23 enum { UNKNOWN, OCCLUDED, PARTIAL, FULL } visibility;
24
25 visibility_state () : generation(0), visibility(UNKNOWN) { };
26};
27
20struct draw_context { 28struct draw_context {
29 view &v;
30
21 gl_matrix projection; 31 gl_matrix projection;
22 view &v; 32 struct {
33 plane l, r, t, b, n, f;
34 } frustum;
23 enum { DEPTH, LIGHTED } mode; 35 enum { DEPTH, LIGHTED } mode;
24 light *l; 36 light *l;
25 set<entity_base *> drawn; 37 set<entity_base *> drawn;
38
39 unsigned int generation;
40 map<octant *, visibility_state> vismap;
41 vector<octant *> vislist; // octants partially or fully visible
42 vector<octant *> checklist; // octants possibly visible
26 43
27 bool may_draw (entity_base *e); 44 bool may_draw (entity_base *e);
28 45
29 draw_context (view &v); 46 draw_context (view &v);
30 ~draw_context (); 47 ~draw_context ();
31}; 48};
32 49
50inline void update_matrix (const draw_context &ctx)
51{
52 gl_matrix m1 = ctx.projection;
53 gl_matrix m2;
54
55 glGetFloatv (GL_MODELVIEW_MATRIX, (GLfloat *)&m2);
56
57 m1 = m1 * m2;
58
59 for (int i = 0; i < 4; i++)
60 for (int j = 0; j < 4 ; j++)
61 mvp[i][j] = m1(i,j);
62}
63
33#endif 64#endif
34 65

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines