summaryrefslogtreecommitdiff
path: root/boot/scene_internal.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-06-01 19:22:58 +0300
committerTom Rini <trini@konsulko.com>2023-07-14 19:54:51 +0300
commit4c87e073a4573159f97eb4ed80ec4088f33c7008 (patch)
tree52fb7976fe76163d61eb860c78bd16e00f87557a /boot/scene_internal.h
parent756c9559e60a0ef8434128205adced937240925d (diff)
downloadu-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.h20
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