diff options
author | Simon Glass <sjg@chromium.org> | 2023-06-01 19:22:58 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-07-14 19:54:51 +0300 |
commit | 4c87e073a4573159f97eb4ed80ec4088f33c7008 (patch) | |
tree | 52fb7976fe76163d61eb860c78bd16e00f87557a /boot/scene_internal.h | |
parent | 756c9559e60a0ef8434128205adced937240925d (diff) | |
download | u-boot-4c87e073a4573159f97eb4ed80ec4088f33c7008.tar.xz |
expo: Draw the current opened menu on top
When a menu is opened, it must be displayed over all other objects in
the scene, so that all its items are visible.
Handle this by drawing the menu object a second time, after all other
objects have been drawn. Draw all of the objects which are dependent
on the menu object.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'boot/scene_internal.h')
-rw-r--r-- | boot/scene_internal.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/boot/scene_internal.h b/boot/scene_internal.h index 2544c961da..dc98ecd021 100644 --- a/boot/scene_internal.h +++ b/boot/scene_internal.h @@ -161,6 +161,26 @@ int scene_send_key(struct scene *scn, int key, struct expo_action *event); void scene_menu_render(struct scene_obj_menu *menu); /** + * scene_render_deps() - Render an object and its dependencies + * + * @scn: Scene to render + * @id: Object ID to render (or 0 for none) + * Returns: 0 if OK, -ve on error + */ +int scene_render_deps(struct scene *scn, uint id); + +/** + * scene_menu_render_deps() - Render a menu and its dependencies + * + * Renders the menu and all of its attached objects + * + * @scn: Scene to render + * @menu: Menu render + * Returns: 0 if OK, -ve on error + */ +int scene_menu_render_deps(struct scene *scn, struct scene_obj_menu *menu); + +/** * scene_menu_calc_dims() - Calculate the dimensions of a menu * * Updates the width and height of the menu based on its contents |