8d42887557548fcaf499037a3ec412c66b42797a
[simavr] / examples / board_reprap / src / c3 / c3context.h
1 /*
2         c3context.h
3
4         Copyright 2008-2012 Michel Pollet <buserror@gmail.com>
5
6         This file is part of simavr.
7
8         simavr is free software: you can redistribute it and/or modify
9         it under the terms of the GNU General Public License as published by
10         the Free Software Foundation, either version 3 of the License, or
11         (at your option) any later version.
12
13         simavr is distributed in the hope that it will be useful,
14         but WITHOUT ANY WARRANTY; without even the implied warranty of
15         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16         GNU General Public License for more details.
17
18         You should have received a copy of the GNU General Public License
19         along with simavr.  If not, see <http://www.gnu.org/licenses/>.
20  */
21
22
23 #ifndef __C3CONTEXT_H___
24 #define __C3CONTEXT_H___
25
26 #include "c3/c3algebra.h"
27 #include "c3/c3geometry.h"
28
29
30 typedef struct c3context_t {
31         c3vec2  size;
32         struct c3object_t * root;
33         c3geometry_array_t      projected;
34
35         const struct c3driver_context_t ** driver;
36 } c3context_t, *c3context_p;
37
38 c3context_p
39 c3context_new(
40                 int w,
41                 int h);
42
43 c3context_p
44 c3context_init(
45                 c3context_p c,
46                 int w,
47                 int h);
48
49 // Reproject geometry for dirty objects
50 void
51 c3context_prepare(
52                 c3context_p c);
53 void
54 c3context_draw(
55                 c3context_p c);
56
57 #endif /* __C3CONTEXT_H___ */