From: Simon Glass Date: Fri, 2 May 2025 14:46:53 +0000 (-0600) Subject: expo: Provide a way to position things relative to display X-Git-Tag: v2025.10-rc1~118^2~56^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ddd1c97653560c6015f2c165de459ebfdc79f5d7;p=thirdparty%2Fu-boot.git expo: Provide a way to position things relative to display It is often necessary to centre objects within the display area. Add a special position value to indicate this. Signed-off-by: Simon Glass --- diff --git a/boot/scene.c b/boot/scene.c index 237f2bccc00..fa8f540bfb0 100644 --- a/boot/scene.c +++ b/boot/scene.c @@ -364,6 +364,11 @@ static void handle_alignment(enum scene_obj_align horiz, { int width, height; + if (bbox->x1 == SCENEOB_DISPLAY_MAX) + bbox->x1 = xsize ?: 1280; + if (bbox->y1 == SCENEOB_DISPLAY_MAX) + bbox->y1 = ysize ?: 1024; + width = bbox->x1 - bbox->x0; height = bbox->y1 - bbox->y0; diff --git a/include/expo.h b/include/expo.h index 2addddd5012..4dee479e9a0 100644 --- a/include/expo.h +++ b/include/expo.h @@ -242,6 +242,12 @@ struct scene_obj_dims { int y; }; +/* special values for dimensions */ +enum { + /* width/height of the display */ + SCENEOB_DISPLAY_MAX = 0x7f000000, +}; + /** * enum scene_obj_halign - Horizontal alignment of objects *