fix iteration order when drawing nodes

Thu, 21 Mar 2024 23:01:09 +0100

author
Mike Becker <universe@uap-core.de>
date
Thu, 21 Mar 2024 23:01:09 +0100
changeset 43
5a8c31904e44
parent 42
cc912686f663
child 44
b3da4096c607

fix iteration order when drawing nodes

src/scene.c file | annotate | diff | comparison | revisions
     1.1 --- a/src/scene.c	Thu Mar 21 23:00:39 2024 +0100
     1.2 +++ b/src/scene.c	Thu Mar 21 23:01:09 2024 +0100
     1.3 @@ -49,6 +49,13 @@
     1.4      );
     1.5  }
     1.6  
     1.7 +static CxTreeVisitor asc_scene_node_visitor(AscSceneNode *node) {
     1.8 +    return cx_tree_visitor(node,
     1.9 +            offsetof(AscSceneNode, children),
    1.10 +            offsetof(AscSceneNode, next)
    1.11 +    );
    1.12 +}
    1.13 +
    1.14  void asc_scene_init(AscScene *scene) {
    1.15      if (scene->root != NULL) {
    1.16          asc_error("Scene is already initialized.");
    1.17 @@ -95,7 +102,7 @@
    1.18      scene->rg_sprites_blended_size = 0;
    1.19  
    1.20      // skip the root node deliberately, we know it's just the container
    1.21 -    CxTreeIterator iter = asc_scene_node_iterator(scene->root, false);
    1.22 +    CxTreeVisitor iter = asc_scene_node_visitor(scene->root);
    1.23      cxIteratorNext(iter);
    1.24  
    1.25      // update the children and add them to the render groups

mercurial