… | |
… | |
13 | } |
13 | } |
14 | |
14 | |
15 | void draw_context::transform (const matrix &m) |
15 | void draw_context::transform (const matrix &m) |
16 | { |
16 | { |
17 | modelview = modelview * m; |
17 | modelview = modelview * m; |
18 | mvp = projection * modelview; |
18 | matrix d = projection * modelview; |
|
|
19 | |
|
|
20 | glLoadMatrixf ((GLfloat *)&d); |
|
|
21 | |
|
|
22 | #if 0 |
|
|
23 | for (int i = 0; i < 4; i++) |
|
|
24 | for (int j = 0; j < 4 ; j++) |
|
|
25 | mvp[i](j) = d(i,j); |
|
|
26 | #endif |
19 | } |
27 | } |
20 | |
28 | |
21 | bool draw_context::may_draw (entity_base *e) |
29 | bool draw_context::may_draw (entity_base *e) |
22 | { |
30 | { |
23 | if (drawn.find (e) != drawn.end ()) |
31 | if (drawn.find (e) != drawn.end ()) |
… | |
… | |
85 | ctx.frustum.b = plane ( m(3,0) + m(1,0), m(3,1) + m(1,1), m(3,2) + m(1,2), m(3,3) + m(1,3) ); |
93 | ctx.frustum.b = plane ( m(3,0) + m(1,0), m(3,1) + m(1,1), m(3,2) + m(1,2), m(3,3) + m(1,3) ); |
86 | ctx.frustum.t = plane ( m(3,0) - m(1,0), m(3,1) - m(1,1), m(3,2) - m(1,2), m(3,3) - m(1,3) ); |
94 | ctx.frustum.t = plane ( m(3,0) - m(1,0), m(3,1) - m(1,1), m(3,2) - m(1,2), m(3,3) - m(1,3) ); |
87 | ctx.frustum.n = plane ( m(3,0) + m(2,0), m(3,1) + m(2,1), m(3,2) + m(2,2), m(3,3) + m(2,3) ); |
95 | ctx.frustum.n = plane ( m(3,0) + m(2,0), m(3,1) + m(2,1), m(3,2) + m(2,2), m(3,3) + m(2,3) ); |
88 | ctx.frustum.f = plane ( m(3,0) - m(2,0), m(3,1) - m(2,1), m(3,2) - m(2,2), m(3,3) - m(2,3) ); |
96 | ctx.frustum.f = plane ( m(3,0) - m(2,0), m(3,1) - m(2,1), m(3,2) - m(2,2), m(3,3) - m(2,3) ); |
89 | |
97 | |
90 | for (int i = 0; i < 4; i++) |
|
|
91 | for (int j = 0; j < 4 ; j++) |
|
|
92 | mvp[i][j] = m(i,j); |
|
|
93 | |
|
|
94 | ctx.modelview.identity (); |
98 | ctx.modelview.identity (); |
95 | |
99 | |
|
|
100 | glMatrixMode (GL_PROJECTION);//D |
96 | world.draw (ctx); |
101 | world.draw (ctx); |
97 | |
102 | |
98 | ctx.drawn.clear (); |
103 | ctx.drawn.clear (); |
99 | |
104 | |
100 | glColorMask (1, 1, 1, 0); |
105 | glColorMask (1, 1, 1, 0); |