fix: resize wireframe animation on Wayland (overlay flush per draw)
The overlay drawing functions (wl_overlay_draw_rect, wl_overlay_draw_line) write XOR pixels to a client-side pixman buffer but never flushed it to the scene graph. On X11, each XDrawRectangle is immediately processed server-side, so the wireframe appears in real-time. On Wayland, the overlay buffer was only flushed in wl_server_ungrab() at the END of the resize operation. Added overlay_flush() after each draw call so each XOR batch is pushed to wlr_scene_buf and rendered immediately.
This commit is contained in:
parent
1bf64c26c9
commit
ae980e66e9
|
|
@ -7579,8 +7579,10 @@ static void
|
|||
wl_overlay_draw_line(WScreen *scr, int x1, int y1, int x2, int y2)
|
||||
{
|
||||
overlay_ensure(scr);
|
||||
if (wl_state.overlay_surf)
|
||||
if (wl_state.overlay_surf) {
|
||||
ovl_line(wl_state.overlay_surf, x1, y1, x2, y2);
|
||||
overlay_flush();
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -7605,6 +7607,7 @@ wl_overlay_draw_rect(WScreen *scr, int x, int y, int w, int h)
|
|||
ovl_hline(s, x, y + h, w + 1); /* bottom */
|
||||
ovl_vline(s, x, y, h + 1); /* left */
|
||||
ovl_vline(s, x + w, y, h + 1); /* right */
|
||||
overlay_flush();
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Reference in New Issue