U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/56] expo: Various features and improvements
@ 2025-03-28 13:05 Simon Glass
  2025-03-28 13:05 ` [PATCH v2 01/56] video: Make white-on-black a video-device property Simon Glass
                   ` (56 more replies)
  0 siblings, 57 replies; 63+ messages in thread
From: Simon Glass @ 2025-03-28 13:05 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Simon Glass, Alexander Graf, Alexander Sverdlin, Alper Nebi Yasak,
	Anatolij Gustschin, Bin Meng, Caleb Connolly, Christian Marangi,
	Devarsh Thakkar, Guillaume La Roque, Heinrich Schuchardt,
	Igor Opaniuk, Julien Masson, Kever Yang, Marek Vasut,
	Mattijs Korpershoek, Miquel Raynal, Nikhil M Jain, Peter Robinson,
	Quentin Schulz, Rasmus Villemoes, Stefan Roese, Sughosh Ganu,
	Tom Rini

This series collects together some new features for expo to make it more
useful for boot menus:

- measurement and display of multi-line text objects
- internal alignment for objects (e.g. centred text)
- editable strings in text fields
- new 'box' object to draw a rectangle
- highlighting of menu items, rather than just relying on a pointer

Expo's boot menu is restructured so that it is possible to iterate
through various bootdevs and update the menu as new ones are found. This
is more in keeping with how bootstd works.

A new textedit object is added, intended to provide a simple text
editor. Future work will complete this.

With this series the boot menu has a better layout and appearance.

Changes in v2:
- Add new patch to pass in the video device for cedit_prepare()
- Add new patch to test rendering a lineedit
- Add new patch to test editing a lineedit
- Handle the case of an initially empty string
- Only check the text objects used by the bootmenu, for now

Simon Glass (56):
  video: Make white-on-black a video-device property
  sandbox: Select white-on-black
  video: Add a test for font measurement
  video: Begin support for measuring multiple lines of text
  video: truetype: Fill in the measured line
  video: truetype: Support newlines in the measured string
  video: truetype: Support a limit on the width of a line
  video: Add a way to write a partial string to the console
  console: Support a format string for stderr output
  test: video: Export the video-checking functions
  video: Allow console output to be silenced
  video: Add a function to draw a rectangle
  expo: Add CLI context to the expo
  expo: Add a function to poll for input
  expo: Destroy the cedit expo when done
  vidconsole: Avoid kerning against an unrelated character
  expo: Create a rendering test for cedit
  expo: Move cedit-state fields into expo
  expo: Test some cedit actions
  expo: Pass in the video device for cedit_prepare()
  expo: Test rendering a lineedit
  expo: Provide access to the current menu item
  expo: Adjust how menu items are highlighted
  expo: Test editing a lineedit
  expo: Split bootflow_menu_run() into two pieces
  expo: Split bootflow_menu_new() into two pieces
  expo: Allow adding a single bootflow to a menu
  expo: Rename scene_dim to scene_obj_bbox
  expo: Rename x and y in struct scene_obj_bbox
  expo: Use an abuf to hold strings
  expo: Separate dimensions from the bounding box
  expo: Make bounding-box calculation more flexible
  expo: Support setting the size and bounds of an object
  expo: Line up all menu objects
  expo: Create a struct for generic text attributes
  expo: Move text-rendering into its own function
  expo: Tidy up scene_txt_render()
  expo: Allow strings to be editable
  expo: Check the screen contents after rendering
  expo: Support rendering multiple lines of text
  expo: Support white-on-black in the theme
  expo: Implement a box
  expo: Support object alignment
  expo: Begin implementation of a text editor
  expo: Use a simpler name for USB media
  expo: Drop the gap between groups of menu items
  expo: Add forward declarations to scene_internal.h
  expo: Support highlighting menu items
  expo: Adjust expo_poll() to avoid looping forever
  expo: Drop the render from expo_poll()
  expo: Provide a way to position things relative to display
  expo: Improve the visual appearance of the menu
  expo: Update bootflow_menu_poll() to return a sequence ID
  expo: Split setting up the menu from adding items
  expo: Set up menu fully in bootflow_menu_start()
  expo: Drop the special theme code for bootflow_menu

 arch/sandbox/dts/test.dts         |   1 +
 boot/Makefile                     |   2 +-
 boot/bootflow_internal.h          |  11 +-
 boot/bootflow_menu.c              | 371 ++++++++++++-----------
 boot/cedit.c                      | 156 +++++-----
 boot/expo.c                       |  70 ++++-
 boot/scene.c                      | 476 ++++++++++++++++++++++++------
 boot/scene_internal.h             |  71 ++++-
 boot/scene_menu.c                 | 154 +++++++---
 boot/scene_textedit.c             |  60 ++++
 boot/scene_textline.c             |  44 +--
 cmd/bootflow.c                    |  40 ++-
 cmd/cedit.c                       |   2 +
 common/console.c                  |  18 ++
 doc/develop/expo.rst              |  34 +++
 drivers/video/console_truetype.c  |  90 +++++-
 drivers/video/vidconsole-uclass.c |  36 ++-
 drivers/video/video-uclass.c      |  52 +++-
 include/bootflow.h                |  77 ++++-
 include/cedit.h                   |  17 +-
 include/console.h                 |  15 +
 include/expo.h                    | 293 ++++++++++++++++--
 include/test/video.h              |  45 +++
 include/video.h                   |  31 +-
 include/video_console.h           |  83 +++++-
 test/boot/bootflow.c              |   9 +-
 test/boot/cedit.c                 | 217 +++++++++++++-
 test/boot/expo.c                  | 214 +++++++++++---
 test/dm/video.c                   | 352 +++++++++++++++-------
 29 files changed, 2376 insertions(+), 665 deletions(-)
 create mode 100644 boot/scene_textedit.c
 create mode 100644 include/test/video.h

-- 
2.43.0

base-commit: 37ef92a972663c6de1b81d24d2ca5cfd664fc6df
branch: schd2

^ permalink raw reply	[flat|nested] 63+ messages in thread

end of thread, other threads:[~2025-04-01 17:13 UTC | newest]

Thread overview: 63+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-28 13:05 [PATCH v2 00/56] expo: Various features and improvements Simon Glass
2025-03-28 13:05 ` [PATCH v2 01/56] video: Make white-on-black a video-device property Simon Glass
2025-03-28 13:05 ` [PATCH v2 02/56] sandbox: Select white-on-black Simon Glass
2025-03-28 13:05 ` [PATCH v2 03/56] video: Add a test for font measurement Simon Glass
2025-03-28 13:05 ` [PATCH v2 04/56] video: Begin support for measuring multiple lines of text Simon Glass
2025-03-28 13:05 ` [PATCH v2 05/56] video: truetype: Fill in the measured line Simon Glass
2025-03-28 13:05 ` [PATCH v2 06/56] video: truetype: Support newlines in the measured string Simon Glass
2025-03-28 13:05 ` [PATCH v2 07/56] video: truetype: Support a limit on the width of a line Simon Glass
2025-03-28 13:05 ` [PATCH v2 08/56] video: Add a way to write a partial string to the console Simon Glass
2025-03-28 13:05 ` [PATCH v2 09/56] console: Support a format string for stderr output Simon Glass
2025-03-28 13:05 ` [PATCH v2 10/56] test: video: Export the video-checking functions Simon Glass
2025-03-28 13:05 ` [PATCH v2 11/56] video: Allow console output to be silenced Simon Glass
2025-03-28 13:05 ` [PATCH v2 12/56] video: Add a function to draw a rectangle Simon Glass
2025-03-28 13:06 ` [PATCH v2 13/56] expo: Add CLI context to the expo Simon Glass
2025-03-28 13:06 ` [PATCH v2 14/56] expo: Add a function to poll for input Simon Glass
2025-03-28 13:06 ` [PATCH v2 15/56] expo: Destroy the cedit expo when done Simon Glass
2025-03-28 13:06 ` [PATCH v2 16/56] vidconsole: Avoid kerning against an unrelated character Simon Glass
2025-03-28 13:06 ` [PATCH v2 17/56] expo: Create a rendering test for cedit Simon Glass
2025-03-28 13:06 ` [PATCH v2 18/56] expo: Move cedit-state fields into expo Simon Glass
2025-03-28 13:06 ` [PATCH v2 19/56] expo: Test some cedit actions Simon Glass
2025-03-28 13:06 ` [PATCH v2 20/56] expo: Pass in the video device for cedit_prepare() Simon Glass
2025-03-28 13:06 ` [PATCH v2 21/56] expo: Test rendering a lineedit Simon Glass
2025-03-28 13:06 ` [PATCH v2 22/56] expo: Provide access to the current menu item Simon Glass
2025-03-28 13:06 ` [PATCH v2 23/56] expo: Adjust how menu items are highlighted Simon Glass
2025-03-28 13:06 ` [PATCH v2 24/56] expo: Test editing a lineedit Simon Glass
2025-03-28 13:06 ` [PATCH v2 25/56] expo: Split bootflow_menu_run() into two pieces Simon Glass
2025-03-28 13:06 ` [PATCH v2 26/56] expo: Split bootflow_menu_new() " Simon Glass
2025-03-28 13:06 ` [PATCH v2 27/56] expo: Allow adding a single bootflow to a menu Simon Glass
2025-03-28 13:06 ` [PATCH v2 28/56] expo: Rename scene_dim to scene_obj_bbox Simon Glass
2025-03-28 13:06 ` [PATCH v2 29/56] expo: Rename x and y in struct scene_obj_bbox Simon Glass
2025-03-28 13:06 ` [PATCH v2 30/56] expo: Use an abuf to hold strings Simon Glass
2025-03-28 13:06 ` [PATCH v2 31/56] expo: Separate dimensions from the bounding box Simon Glass
2025-03-28 13:06 ` [PATCH v2 32/56] expo: Make bounding-box calculation more flexible Simon Glass
2025-03-28 13:06 ` [PATCH v2 33/56] expo: Support setting the size and bounds of an object Simon Glass
2025-03-28 13:06 ` [PATCH v2 34/56] expo: Line up all menu objects Simon Glass
2025-03-28 13:06 ` [PATCH v2 35/56] expo: Create a struct for generic text attributes Simon Glass
2025-03-28 13:06 ` [PATCH v2 36/56] expo: Move text-rendering into its own function Simon Glass
2025-03-28 13:06 ` [PATCH v2 37/56] expo: Tidy up scene_txt_render() Simon Glass
2025-03-28 13:06 ` [PATCH v2 38/56] expo: Allow strings to be editable Simon Glass
2025-03-28 13:06 ` [PATCH v2 39/56] expo: Check the screen contents after rendering Simon Glass
2025-03-28 13:06 ` [PATCH v2 40/56] expo: Support rendering multiple lines of text Simon Glass
2025-03-28 13:06 ` [PATCH v2 41/56] expo: Support white-on-black in the theme Simon Glass
2025-03-28 13:06 ` [PATCH v2 42/56] expo: Implement a box Simon Glass
2025-03-28 13:06 ` [PATCH v2 43/56] expo: Support object alignment Simon Glass
2025-03-28 13:06 ` [PATCH v2 44/56] expo: Begin implementation of a text editor Simon Glass
2025-03-28 13:06 ` [PATCH v2 45/56] expo: Use a simpler name for USB media Simon Glass
2025-03-28 13:06 ` [PATCH v2 46/56] expo: Drop the gap between groups of menu items Simon Glass
2025-03-28 13:06 ` [PATCH v2 47/56] expo: Add forward declarations to scene_internal.h Simon Glass
2025-03-28 13:06 ` [PATCH v2 48/56] expo: Support highlighting menu items Simon Glass
2025-03-28 13:06 ` [PATCH v2 49/56] expo: Adjust expo_poll() to avoid looping forever Simon Glass
2025-03-28 13:06 ` [PATCH v2 50/56] expo: Drop the render from expo_poll() Simon Glass
2025-03-28 13:06 ` [PATCH v2 51/56] expo: Provide a way to position things relative to display Simon Glass
2025-03-28 13:06 ` [PATCH v2 52/56] expo: Improve the visual appearance of the menu Simon Glass
2025-03-28 13:06 ` [PATCH v2 53/56] expo: Update bootflow_menu_poll() to return a sequence ID Simon Glass
2025-03-28 13:06 ` [PATCH v2 54/56] expo: Split setting up the menu from adding items Simon Glass
2025-03-28 13:06 ` [PATCH v2 55/56] expo: Set up menu fully in bootflow_menu_start() Simon Glass
2025-03-28 13:06 ` [PATCH v2 56/56] expo: Drop the special theme code for bootflow_menu Simon Glass
2025-03-30 14:47 ` [PATCH v2 00/56] expo: Various features and improvements Tom Rini
2025-03-31  1:18   ` Simon Glass
2025-03-31 10:06     ` Caleb Connolly
2025-03-31 13:42     ` Tom Rini
2025-04-01 15:43       ` Simon Glass
2025-04-01 17:13         ` Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox