windowmaker-wl/tests
Levi Neely f4cc8a803e wayland: Phase 18 — nested compositor + wlr_scene rendering
Two major additions:

1. Nested Wayland mode (WMAKER_WAYLAND_NESTED=1):
   wlr_multi_backend wraps wlr_wl_backend (visual output as a host
   Wayland window) and wlr_headless_backend (for synthetic input
   devices).  wlr_wl_output_create queues the output window before
   start; handle_backend_new_output initialises the render pipeline
   (wlr_output_init_render, preferred mode, enable, commit) and sets
   the window title to "Window Maker".

2. wlr_scene compositing (both modes):
   wlr_scene_create() produces a scene graph; per-surface scene nodes
   are added in handle_toplevel_map (wlr_scene_xdg_surface_create) and
   handle_xwayland_map (wlr_scene_subsurface_tree_create).  Positions
   are kept in sync via wlr_scene_node_set_position from wl_window_move
   and wl_client_synth_configure.  handle_output_frame calls
   wlr_scene_output_commit on every output vsync to render and send
   frame callbacks.

Other changes:
- wlr_allocator_autocreate added; wlr_output_init_render called in
  handle_backend_new_output for proper buffer allocation
- headless_inner / wl_backend_inner stored separately so
  wlr_headless_add_input_device always uses the headless sub-backend
- frame_timer_cb skips wlr_output_send_frame in nested mode (host
  drives frame schedule via output->events.frame)
- Scene nodes removed on surface destroy; allocator/scene torn down
  in wl_display_close

Smoke test: new "scene check" verifies "scene graph created" and
"headless compositor mode" log lines.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 21:37:30 +01:00
..
Makefile.am Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
test_geom.c Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
test_x11_event.c Wayland backend abstraction: WMBackend vtable (Phases 0–30) 2026-03-27 19:20:00 +01:00
wl-smoke-test.sh wayland: Phase 18 — nested compositor + wlr_scene rendering 2026-03-28 21:37:30 +01:00
x11-smoke-test.sh wayland: add WMAKER_USE_WAYLAND backend selector and split smoke tests 2026-03-27 22:29:27 +01:00