91 } |
90 } |
92 } |
91 } |
93 |
92 |
94 // create render groups |
93 // create render groups |
95 CxList *render_group[ASC_RENDER_GROUP_COUNT]; |
94 CxList *render_group[ASC_RENDER_GROUP_COUNT]; |
96 cx_for_n(i, ASC_RENDER_GROUP_COUNT) { |
95 for (unsigned i = 0 ; i < ASC_RENDER_GROUP_COUNT ; i++) { |
97 render_group[i] = cxArrayListCreateSimple(CX_STORE_POINTERS, 32); |
96 render_group[i] = cxArrayListCreateSimple(CX_STORE_POINTERS, 32); |
98 } |
97 } |
99 |
98 |
100 // update the scene graph and add nodes to their render groups |
99 // update the scene graph and add nodes to their render groups |
101 CxTreeVisitor iter = cx_tree_visitor(scene->root, |
100 CxTreeVisitor iter = cx_tree_visitor(scene->root, |
200 asc_sprite_draw(node); |
199 asc_sprite_draw(node); |
201 } |
200 } |
202 } |
201 } |
203 |
202 |
204 // deallocate render groups |
203 // deallocate render groups |
205 cx_for_n(i, ASC_RENDER_GROUP_COUNT) { |
204 for (unsigned i = 0 ; i < ASC_RENDER_GROUP_COUNT ; i++) { |
206 cxListFree(render_group[i]); |
205 cxListFree(render_group[i]); |
207 } |
206 } |
208 } |
207 } |
209 |
208 |
210 void asc_scene_add_node(AscScene *scene, AscSceneNode *node) { |
209 void asc_scene_add_node(AscScene *scene, AscSceneNode *node) { |