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;
31 struct c3context_view_t;
33 typedef struct c3driver_context_t {
35 * Called when a geometry projection had changed in world view
36 * can also be used to prepare resources like textures and so on
38 void (*geometry_project)(
39 struct c3context_t * c,
40 const struct c3driver_context_t *d,
41 struct c3geometry_t * g,
44 * Called to draw a geometry
46 void (*geometry_draw)(
47 struct c3context_t * c,
48 const struct c3driver_context_t *d,
49 struct c3geometry_t * g);
52 * Called when starting to draw a context view(point)
54 void (*context_view_draw)(
55 struct c3context_t * c,
56 const struct c3driver_context_t *d,
57 struct c3context_view_t * ctx);
60 * called when a geometry is disposed of, let the application
61 * delete resources like textures etc
63 void (*geometry_dispose)(
64 struct c3context_t * c,
65 const struct c3driver_context_t *d,
66 struct c3geometry_t * g);
67 } c3driver_context_t, *c3driver_context_p;
69 #endif /* __C3DRIVER_CONTEXT_H___ */