From: Simon Glass <sjg@chromium.org> This series integrates mouse support into expo and starts to build the infrastructure for drawing the mouse pointer more efficiently (i.e. without re-rendering the entire scene). It also adds a few more structs to video_defs.h for position and size. This is part D. Simon Glass (14): video: Add struct vid_pos for coordinates mouse: Use struct vid_pos for click position mouse: Update mouse_get_click() to use struct vid_pos expo: Update poll_mouse() to use struct vid_pos video: Add struct vid_size for width/height mouse: Track last mouse position expo: Store mouse pointer and size in expo expo: Show the mouse when enabled expo: Drop struct scene_obj_bbox in favour of vid_bbox expo: Add damage tracking expo: Set dirty flag when an object bbox changes expo: Add a way to calculate the bbox of dirty objects expo: Add selective rendering for dirty objects in scene expo: Support drawing only the dirty portion of an expo boot/cedit.c | 12 ++- boot/expo.c | 141 ++++++++++++++++++++++++++++++++--- boot/scene.c | 79 +++++++++++++++++++- boot/scene_internal.h | 3 +- cmd/bootflow.c | 12 ++- drivers/input/mouse-uclass.c | 34 +++++++-- include/expo.h | 83 ++++++++++++++++----- include/mouse.h | 23 ++++-- include/video_defs.h | 23 ++++++ test/boot/cedit.c | 21 ++++-- test/dm/mouse.c | 29 ++++--- 11 files changed, 383 insertions(+), 77 deletions(-) -- 2.43.0 base-commit: a3435107db9ff9d6fe1af66859d36b24d0d8b094 branch: prod