Simon Ser
bda1b41ee2
output-swapchain-manager: new helper
...
This new helper assists compositors in allocating buffers for
modesets. It degrades to different allocation parameters as
needed, and should help with screens not turning on when multiple
outputs are connected on some hardware (e.g. Intel).
For simplicity, the old logic to try allocating with explicit
modifiers first and then fallback to implicit modifiers later is
left as-is. We'll probably want to have more complicated logic
instead in the future: try the fallback on one output at a time,
and try dropping modifiers one by one instead of using implicit
modifiers (at the cost of some combinatorial explosion).
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1873
Co-authored-by: Kenny Levinsen <kl@kl.wtf>
9 months ago
Simon Ser
2ff3479558
output-management-v1: add wlr_output_configuration_v1_build_state()
...
A convenience function to make it easier for compositors to
implement the protocol.
9 months ago
Simon Ser
859373b253
scene: listen to renderer destroy in wlr_scene_buffer
...
When a renderer is destroyed, so are all textures. Reset the
texture in that case.
9 months ago
Simon Ser
f0d8377732
output: listen to renderer destroy in wlr_output_cursor
...
When a renderer is destroyed, so are all textures. Reset the
texture in that case.
9 months ago
Simon Ser
9e3576426d
buffer: listen to renderer destroy in wlr_client_buffer
...
When a renderer is destroyed, so are all textures. Reset the
texture in that case.
9 months ago
Simon Ser
0e5034d8ba
compositor: add wlr_compositor_set_renderer()
...
Allows compositors to switch the wlr_renderer at runtime.
Useful for handling GPU resets.
9 months ago
Simon Ser
3075e6a6f9
compositor: use compositor to get renderer
...
This allows us to remove the renderer destroy listener. The
listener was buggy: compositors can't destroy surface resources on
their own.
The wlr_compositor will always outlive the wlr_surface, so no need
for a destroy listener.
9 months ago
Simon Ser
508d8c9a01
compositor: handle renderer destroy
...
Don't leave a stale renderer pointer behind.
9 months ago
Alexander Orzechowski
8da93e5936
wlr_scene: Add support for custom swapchains
9 months ago
Simon Ser
edbf8bf2ce
input-device: drop wlr_input_device.{vendor,product}
...
These aren't super useful without the bus type. Compositors can
fish back this information from the libinput device if they want to.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3818
9 months ago
Simon Ser
e21b975f5d
tablet-tool: add usb_vendor_id and usb_product_id to wlr_tablet
9 months ago
Isaac Freund
22178451f7
cursor-shape-v1: expose tablet tool in event
...
This allows compositors which use a separate cursor per tablet tool to
support setting tablet tool cursors individually using this protocol.
9 months ago
Isaac Freund
2a897af7dc
wlr_tablet_v2: fix destroy listener name
9 months ago
Isaac Freund
b821be5749
input-device: unconfuse tablet naming
...
WLR_INPUT_DEVICE_TABLET_TOOL is renamed to WLR_INPUT_DEVICE_TABLET
The input device corresponds to wlr_tablet, not wlr_tablet_tool.
9 months ago
Simon Ser
cfd605705f
input-device: fix WLR_INPUT_DEVICE_TABLET_TOOL doc comment
...
wlr_tablet_tool is not a wlr_input_device.
The name is confusing, but changing it would be a breaking change.
Let's fix the docs as a first step.
9 months ago
Simon Ser
488a23c169
pointer: drop enum wlr_axis_orientation
...
Instead, use enum wl_pointer_axis from the Wayland protocol.
9 months ago
Simon Ser
ec5263e6b7
pointer: drop enum wlr_axis_relative_direction
...
Instead, use enum wl_pointer_axis_relative_direction from the
Wayland protocol.
9 months ago
Simon Ser
812451cd8f
pointer: use enum wl_pointer_button_state
9 months ago
Simon Ser
9f4cf242d9
pointer: drop enum wlr_axis_source
...
Instead, use enum wl_pointer_axis_source from the Wayland protocol.
9 months ago
Simon Ser
c45e97f3a5
input-device: add doc comments
9 months ago
columbarius
9e426e70e6
ext-foreign-toplevel-list-v1: new protocol implementation
...
This implements the new ext-foreign-toplevel-list-v1 protocol [1].
Implemented analog to the zwlr-foreign-toplevel-management-v1 implementation.
The additional _ext_ in the names was added to avoid name collisions.
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/187
Co-authored-by: Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>
10 months ago
Austin Shafer
4cd556ea20
linux_dmabuf_v1: allow callbacks for checking dmabuf import
10 months ago
Kirill Primak
811ca199c4
xdg-shell: drop automatic surface configuration
...
Compositors now are expected to wait for an initial commit by checking
wlr_xdg_surface.initial_commit on every surface commit and send
(schedule) configure events manually.
10 months ago
Simon Ser
a8aeadeab2
switch: add docs
10 months ago
Kirill Primak
7dfbd87771
compositor: drop wlr_surface.external_damage
10 months ago
Andri Yngvason
3a91dc1b48
Create & implement transient seat protocol
10 months ago
Simon Ser
6991f03767
linux-dmabuf-v1: switch to stable
...
The protocol is no longer unstable.
10 months ago
Simon Ser
ba3c1ae065
linux-dmabuf-v1: fix include guard name
10 months ago
Alexander Orzechowski
8dff1bb9bd
wlr_damage_ring: Replace wlr_damage_ring_rotate_buffer with original list impl
...
The seq based implementation is complex to reason about and doesn't even
work.
10 months ago
Kirill Primak
4688a371e0
compositor: don't get buffer from pending buffer resource too early
...
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3795
10 months ago
Simon Ser
4ec901bb33
scene: release shm buffers once uploaded
...
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.
10 months ago
Kirill Primak
0052078bd3
compositor: introduce wlr_surface_reject_pending()
10 months ago
Alexander Orzechowski
cca2bfbe92
output: Drop pending state
10 months ago
Simon Ser
00bb1b0f84
seat/pointer: add support for axis_relative_direction event
10 months ago
Simon Ser
88b16bac54
pointer: add support for axis relative direction
10 months ago
Isaac Freund
7129eaa1f2
keyboard: fix type of wlr_keyboard_modifiers.group
...
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.
11 months ago
MaxVerevkin
48721bca65
fix outdated comment in wlr_output.h
11 months ago
Simon Ser
d0da76fbf6
wl_drm: add deprecation notice
11 months ago
Simon Ser
ab924064f2
scene: drop wlr_scene_set_presentation()
11 months ago
Simon Ser
d68ba9d6c2
presentation-time: drop wlr_presentation arg
...
There can only be a single presentation-time global advertised to
clients, this it's unnecessary to pass around the wlr_presentation
pointer.
11 months ago
Simon Ser
1968ada213
tearing-control-v1: synchronize state with surface
11 months ago
Simon Ser
0ea6b6e2cc
session-lock-v1: use wlr_surface_synced
11 months ago
Simon Ser
90e12fb978
pointer-constraints-v1: use wlr_surface_synced
11 months ago
Simon Ser
a6122c3ec5
layer-shell-v1: use wlr_surface_synced
11 months ago
Simon Ser
0e3d2222c2
xdg-decoration: use wlr_surface_synced for toplevel
11 months ago
Simon Ser
96aec06b0a
subcompositor: use wlr_surface_synced
11 months ago
Simon Ser
4b3553409a
xdg-shell: use wlr_surface_synced for popups
11 months ago
Simon Ser
9201431c29
xdg-shell: use wlr_surface_synced for toplevel
11 months ago
Simon Ser
69d9a4e2cb
xdg-shell: use wlr_surface_synced for wlr_xdg_surface
11 months ago
Simon Ser
7e1ae5548c
compositor: add wlr_surface_role.client_commit
11 months ago