From b50c169621c3d6fba5c6ddf08a1acd80601c5c93 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Fri, 29 May 2020 12:39:24 -0700 Subject: libstage: add stage, rename adopt->replace in stage_conf_t In preparation for supporting caller-supplied stage memory, add another stage_t pointer to the conf called .stage. The naming of .adopt was always awkward and resulted from the reuse of the .parent pointer to indicate the stage to replace. Now that there's a .stage member, just rename .adopt to .replace, with the same semantics. At some point I need to firm up what .replace does with the other conf data. Currently, only the name, ops, and object, are updated. The existing active/locked/alpha etc are retained unchanged, ignored from the conf. This can be surprising/unexpected to someone performing a replace through the .conf, and it would probably be convenient to be able to set everything during a replace. So there should probably be a convenience helper for constructing a conf from an existing stage, which can then be overridden selectively while passing to a new(). --- src/stage.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/stage.h') diff --git a/src/stage.h b/src/stage.h index 785ddf5..40f2057 100644 --- a/src/stage.h +++ b/src/stage.h @@ -33,14 +33,14 @@ typedef struct stage_ops_t { } stage_ops_t; typedef struct stage_conf_t { - stage_t *parent; + stage_t *parent, *stage; int layer; const char *name; float alpha; unsigned active:1; unsigned locked:1; unsigned dirty:1; - unsigned adopt:1; + unsigned replace:1; } stage_conf_t; stage_t * stage_new(const stage_conf_t *conf, const stage_ops_t *ops, void *object); -- cgit v1.2.3