compositor-drm: Split cursor handling into prepare and set
Like how we handle overlays, we split drm_output_set_cursor() into drm_output_prepare_cursor_surface() that will assign the hw cursor to a suitable surface and drm_output_set_cursor() that will do the actual work of updating cursor contents and moving it. This is more in line with how we handle everything else, and lets us update cursor contents based on changes to the cursor plane damage. This works when the cursor content changes but also accumulates damage when the cursor changes output. In that case we move the cursor surface to the cursor plane in the new output and weston_surface_move_to_plane() will generate the damage that triggers download of sprite contents there.
Showing with 40 additions and 21 deletions