Redesign wlr_texture
This PR ports the texture part of #319.
- Textures are now immutable (apart from those created from raw pixels), no more invalid textures
- Move all wl_drm stuff in wlr_renderer
- Most wlr_texture fields are now private
- Remove some duplicated DMA-BUF code in the DRM backend
- Add more assertions
- Stride is now always given in bytes rather than in pixels
- Drop wl_shm functions
Test plan: try weston-simple-shm
, weston-simple-egl
and weston-simple-dmabuf-drm
(with --import-format
set to XRGB and then set to NV12). Try GTK clients, weston-terminal
and Xwayland clients.
Updates #558 (closed)