Age | Commit message (Collapse) | Author |
|
Fixes: 71fb55f3 ("render/pixel-format: Move has_alpha into it's own array")
|
|
Some opaque pixel formats (nv12, p010) require per-plane bytes_per_block
info. However, it doesn't make sense to store them in
wlr_pixel_format_info, as they will never be useful (currently, this
info is used for shm, which doesn't have a concept of multi-planar
buffers.)
Let's define a separate array and function for determining whether a
pixel format has alpha.
|
|
|
|
We already send a protocol error when the modifiers aren't the same
for all planes.
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/224
|
|
The protocol is no longer unstable.
|
|
|
|
This also fixes a memleak.
|
|
The seq based implementation is complex to reason about and doesn't even
work.
|
|
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3795
|
|
The kernel patches [1] have been merged.
[1]: https://patchwork.freedesktop.org/series/120103/
|
|
Once a shm buffer is uploaded there's no reason for wlr_scene_buffer
to keep it locked any further. Allow the compositor to re-use it.
|
|
|
|
|
|
|
|
|
|
We can grab the event loop from the wlr_session instead.
|
|
|
|
|
|
We can grab the event loop from the wlr_session instead.
|
|
|
|
|
|
Leave it up to the compositor to decide what to do when a backend
becomes unavailable.
|
|
This makes it easy for compositors to handle situations where the
DRM or libinput backend becomes unavailable. Compositors can listen
the destroy event of the multi backend returned by
wlr_backend_autocreate() and decide what to do.
|
|
We'll need this in the next commit.
|
|
Some users might want to destroy the multi backend when a child
backend is being destroyed. However, they can't destroy the multi
backend if it's already in the process of being destroyed.
The destroy signal was changed to be emitted after destroying child
backends in babdd6ccf757 ("backend: fix use-after-free when destroying
backends"). However, this was done to accomodate for an old
"output_remove" event on backends, which has long been dropped in
favor of wlr_output.events.destroy.
This patch follows the same principle as 5d639394f3e8
("types/output: emit destroy event before destroying global").
|
|
A motivating example of such problem - Zoom's popups that open on button presses.
Before this fix the popup would flicker and immediately disappear - because the PID is not yet
available for the verification (as the surface has not been associated yet), wlroots would refuse to
focus the popup and instead focus the previous window. This leads QT to interpret this as a sign to
close the popup.
This change moves the PID aqcuisition to an earlier phase - just where the window is created.
|
|
|
|
This matches the behavior before f5797be8a8d410e22fa6397b2217a6a81858d05c.
|
|
|
|
|
|
|
|
|
|
Negative values here would indicate a compositor bug. For xdg_popup,
zero values are not allowed.
|
|
|
|
|
|
copying errors
|
|
|
|
|
|
|
|
|
|
This isn't a breaking change since both of these typedefs are uint32_t
but this should make things a bit less confusing for readers.
|
|
|
|
|
|
This makes wlroots build in C23 mode.
C23 is more strict and rejects implicit conversions from bool to a
pointer.
|
|
wl_drm is a legacy interface superseded by the linux-dmabuf
protocol. All clients should migrate.
As a first step, stop creating the wl_drm global by default.
This should let us discover any remaining issues in clients.
Compositors can still manually create the global if they want to.
As a second step, we can completely drop our implementation.
|
|
|
|
|
|
wlr_output.refresh is populated by core wlr_output, and thus will
be zero for a custom mode with an unset refresh rate.
Save the refresh rate from the drmModeModeInfo in wlr_drm_connector
instead.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3791
|
|
|
|
There can only be a single presentation-time global advertised to
clients, this it's unnecessary to pass around the wlr_presentation
pointer.
|