# HG changeset patch # User Mike Becker # Date 1712770286 -7200 # Node ID 6b61b4899587430f6c628ce60bc8b4412e31fd8e # Parent cb94d983e3ddb44eb3b9a5792ae2e52dfdeb8f4c make hidden flag a general attribute of nodes diff -r cb94d983e3dd -r 6b61b4899587 src/ascension/scene.h --- a/src/ascension/scene.h Wed Apr 10 19:29:09 2024 +0200 +++ b/src/ascension/scene.h Wed Apr 10 19:31:26 2024 +0200 @@ -62,6 +62,7 @@ asc_transform transform; asc_transform world_transform; enum AscRenderGroup render_group; + bool hidden; bool need_graphics_update; bool need_transform_update; }; diff -r cb94d983e3dd -r 6b61b4899587 src/ascension/ui/text.h --- a/src/ascension/ui/text.h Wed Apr 10 19:29:09 2024 +0200 +++ b/src/ascension/ui/text.h Wed Apr 10 19:31:26 2024 +0200 @@ -38,7 +38,6 @@ AscFont const *font; asc_col4i color; unsigned max_width; - bool hidden; bool centered; AscTexture tex; } AscText; diff -r cb94d983e3dd -r 6b61b4899587 src/scene.c --- a/src/scene.c Wed Apr 10 19:29:09 2024 +0200 +++ b/src/scene.c Wed Apr 10 19:31:26 2024 +0200 @@ -83,6 +83,11 @@ cx_foreach(AscSceneNode*, node, iter) { node->depth = iter.depth; + // skip hidden nodes (and all their children) + if (node->hidden) { + cxTreeVisitorContinue(iter); + } + // execute behaviors, first if (node->behaviors != NULL) { CxIterator behavior_iter = cxListIterator(node->behaviors);