Mercurial > molko
annotate src/libmlk-core/core/drawable.c @ 347:0969931b98e4
core: start removing POSIX APIs
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 19 Oct 2021 13:23:30 +0200 |
parents | 8f9937403749 |
children | 15bdac29ba4b |
rev | line source |
---|---|
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * drawable.c -- automatic drawable objects |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
314 | 4 * Copyright (c) 2020-2021 David Demelier <markand@malikania.fr> |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <assert.h> |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #include <stddef.h> |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <stdlib.h> |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 #include <string.h> |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #include "animation.h" |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include "drawable.h" |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 #include "util.h" |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 #include "sprite.h" |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
29 #define DRAWABLE_FOREACH(st, iter) \ |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
30 for (size_t i = 0; i < DRAWABLE_STACK_MAX && ((iter) = (st)->objects[i], 1); ++i) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
31 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
32 int |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 drawable_update(struct drawable *dw, unsigned int ticks) |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 { |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 assert(dw); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 return dw->update(dw, ticks); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 void |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 drawable_draw(struct drawable *dw) |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 { |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 assert(dw); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 dw->draw(dw); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 void |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
49 drawable_end(struct drawable *dw) |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
50 { |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
51 assert(dw); |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
52 |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
53 if (dw->end) |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
54 dw->end(dw); |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
55 } |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
56 |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
57 void |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 drawable_finish(struct drawable *dw) |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 { |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
60 assert(dw); |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
61 |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 if (dw->finish) |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 dw->finish(dw); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 void |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 drawable_stack_init(struct drawable_stack *st) |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 { |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 assert(st); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 memset(st, 0, sizeof (*st)); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
74 int |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
75 drawable_stack_add(struct drawable_stack *st, struct drawable *dw) |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 { |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
77 assert(st); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
78 assert(dw); |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 for (size_t i = 0; i < DRAWABLE_STACK_MAX; ++i) { |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
81 if (!st->objects[i]) { |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
82 st->objects[i] = dw; |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
83 return 0; |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
87 return -1; |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
90 int |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 drawable_stack_update(struct drawable_stack *st, unsigned int ticks) |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 { |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 assert(st); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 for (size_t i = 0; i < DRAWABLE_STACK_MAX; ++i) { |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
96 struct drawable *dw = st->objects[i]; |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
98 if (dw && drawable_update(dw, ticks)) { |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
99 drawable_end(dw); |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
100 drawable_finish(dw); |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
101 st->objects[i] = NULL; |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
102 } |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 } |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
104 |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
105 /* |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
106 * We process the array again in case a drawable added a new drawable |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
107 * within the update function. |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
108 */ |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
109 return drawable_stack_completed(st); |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 void |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 drawable_stack_draw(struct drawable_stack *st) |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 { |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 assert(st); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
117 struct drawable *dw; |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 |
136
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
119 DRAWABLE_FOREACH(st, dw) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
120 if (dw) |
30b68089ae70
core: rework actions and a bit of drawables, closes #2492
David Demelier <markand@malikania.fr>
parents:
129
diff
changeset
|
121 drawable_draw(dw); |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
124 int |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
125 drawable_stack_completed(const struct drawable_stack *st) |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
126 { |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
127 assert(st); |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
128 |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
129 struct drawable *dw; |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
130 |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
131 DRAWABLE_FOREACH(st, dw) |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
132 if (dw) |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
133 return 0; |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
134 |
298
196264679079
misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
135 return 1; |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
136 } |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
137 |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 void |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 drawable_stack_finish(struct drawable_stack *st) |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 { |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
141 assert(st); |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
142 |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
143 struct drawable *dw; |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 |
142
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
145 DRAWABLE_FOREACH(st, dw) { |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
146 if (dw) { |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
147 drawable_end(dw); |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
148 drawable_finish(dw); |
fea0cc899931
core: drawable_stack_update returns a bool (similar to action_stack_update)
David Demelier <markand@malikania.fr>
parents:
136
diff
changeset
|
149 } |
129
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 } |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 memset(st, 0, sizeof (*st)); |
9301c7c84471
core: implement basic drawables, closes #2491 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 } |