I feel it’s time for another update here. Progress has been slow, but steady thanks to @bullishOnFunctional and @anarchymatt.
The following APIs are now implemented, at least in part:
- From libwayland:
wl_display,wl_list,wl_listener - Basic interfaces:
wlr_backend,wlr_renderer,wlr_allocator,wlr_output,wlr_seat - Compositing:
,wlr_compositorwlr_subcompositor,wlr_scene - Window management:
wlr_xdg_shell - Input:
wlr_input_device,wlr_keyboard - Pointer:
,wlr_pointerwlr_cursor,wlr_xcursor_manager - Clipboard:
wlr_data_device - Logging:
wlr_log
Plus some others which are important mostly as dependencies for wlr_output and wlr_seat.
One thing I’d like to do now is to try porting over some of the basic parts of the tinywl compositor which comes with wlroots. It could be a little difficult, though, since wlroots makes intensive use of function pointers, which are hard to marshal. I’m sorely tempted to write the relevant C code and include it directly in the low-level bindings, because otherwise it looks like they’re completely unusable.