4 Copyright 2008-2012 Michel Pollet <buserror@gmail.com>
6 This file is part of libc3.
8 libc3 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.
13 libc3 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.
18 You should have received a copy of the GNU General Public License
19 along with libc3. If not, see <http://www.gnu.org/licenses/>.
23 #ifndef __C3DRIVER_CONTEXT_H___
24 #define __C3DRIVER_CONTEXT_H___
29 struct c3driver_context_t;
32 typedef struct c3driver_context_t {
34 * Called when a geometry projection had changed in world view
35 * can also be used to prepare resources like textures and so on
37 void (*geometry_project)(
38 struct c3context_t * c,
39 const struct c3driver_context_t *d,
40 struct c3geometry_t * g,
43 * Called to draw a geometry
45 void (*geometry_draw)(
46 struct c3context_t * c,
47 const struct c3driver_context_t *d,
48 struct c3geometry_t * g);
51 * called when a geometry is disposed of, let the application
52 * delete resources like textures etc
54 void (*geometry_dispose)(
55 struct c3context_t * c,
56 const struct c3driver_context_t *d,
57 struct c3geometry_t * g);
58 } c3driver_context_t, *c3driver_context_p;
60 #endif /* __C3DRIVER_CONTEXT_H___ */