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.
2024-03-14 22:07:42 +01:00
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.
2024-03-14 22:05:59 +01:00
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.
2024-03-14 22:03:13 +01:00
Simon Ser
0e5034d8ba
compositor: add wlr_compositor_set_renderer()
...
Allows compositors to switch the wlr_renderer at runtime.
Useful for handling GPU resets.
2024-03-14 14:34:44 +01:00
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.
2024-03-14 12:29:01 +00:00
Simon Ser
508d8c9a01
compositor: handle renderer destroy
...
Don't leave a stale renderer pointer behind.
2024-03-14 12:29:01 +00:00
Alexander Orzechowski
8da93e5936
wlr_scene: Add support for custom swapchains
2024-03-12 11:26:03 -04:00
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
2024-03-07 11:08:18 +00:00
Simon Ser
e21b975f5d
tablet-tool: add usb_vendor_id and usb_product_id to wlr_tablet
2024-03-07 11:08:18 +00:00
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.
2024-03-05 11:20:05 +01:00
Isaac Freund
2a897af7dc
wlr_tablet_v2: fix destroy listener name
2024-02-29 16:09:08 +01:00
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.
2024-02-29 16:09:07 +01:00
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.
2024-02-29 12:43:08 +01:00
Simon Ser
488a23c169
pointer: drop enum wlr_axis_orientation
...
Instead, use enum wl_pointer_axis from the Wayland protocol.
2024-02-28 16:39:18 +00:00
Simon Ser
ec5263e6b7
pointer: drop enum wlr_axis_relative_direction
...
Instead, use enum wl_pointer_axis_relative_direction from the
Wayland protocol.
2024-02-28 16:39:18 +00:00
Simon Ser
812451cd8f
pointer: use enum wl_pointer_button_state
2024-02-28 16:39:18 +00:00
Simon Ser
9f4cf242d9
pointer: drop enum wlr_axis_source
...
Instead, use enum wl_pointer_axis_source from the Wayland protocol.
2024-02-28 16:39:18 +00:00
Simon Ser
c45e97f3a5
input-device: add doc comments
2024-02-28 11:31:54 +01:00
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>
2024-02-12 01:05:19 +01:00
Austin Shafer
4cd556ea20
linux_dmabuf_v1: allow callbacks for checking dmabuf import
2024-02-06 16:11:30 +00:00
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.
2024-02-06 13:48:00 +00:00
Simon Ser
a8aeadeab2
switch: add docs
2024-02-02 17:52:56 +01:00
Kirill Primak
7dfbd87771
compositor: drop wlr_surface.external_damage
2024-02-01 14:51:43 +00:00
Andri Yngvason
3a91dc1b48
Create & implement transient seat protocol
2024-01-31 08:22:05 +00:00
Simon Ser
6991f03767
linux-dmabuf-v1: switch to stable
...
The protocol is no longer unstable.
2024-01-31 08:20:17 +00:00
Simon Ser
ba3c1ae065
linux-dmabuf-v1: fix include guard name
2024-01-31 08:20:17 +00:00
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.
2024-01-29 19:17:39 +00:00
Kirill Primak
4688a371e0
compositor: don't get buffer from pending buffer resource too early
...
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3795
2024-01-27 17:48:07 +03:00
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.
2024-01-27 12:21:54 +00:00
Kirill Primak
0052078bd3
compositor: introduce wlr_surface_reject_pending()
2024-01-27 12:05:05 +00:00
Alexander Orzechowski
cca2bfbe92
output: Drop pending state
2024-01-24 18:46:45 +00:00
Simon Ser
00bb1b0f84
seat/pointer: add support for axis_relative_direction event
2024-01-23 08:37:29 +00:00
Simon Ser
88b16bac54
pointer: add support for axis relative direction
2024-01-23 08:37:29 +00:00
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.
2024-01-17 11:00:52 +03:00
MaxVerevkin
48721bca65
fix outdated comment in wlr_output.h
2024-01-07 00:03:27 +02:00
Simon Ser
d0da76fbf6
wl_drm: add deprecation notice
2024-01-03 20:52:34 +00:00
Simon Ser
ab924064f2
scene: drop wlr_scene_set_presentation()
2023-12-27 13:41:20 +01:00
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.
2023-12-27 13:41:01 +01:00
Simon Ser
1968ada213
tearing-control-v1: synchronize state with surface
2023-12-25 18:55:30 +01:00
Simon Ser
0ea6b6e2cc
session-lock-v1: use wlr_surface_synced
2023-12-25 18:55:21 +01:00
Simon Ser
90e12fb978
pointer-constraints-v1: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
a6122c3ec5
layer-shell-v1: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
0e3d2222c2
xdg-decoration: use wlr_surface_synced for toplevel
2023-12-25 11:47:15 +01:00
Simon Ser
96aec06b0a
subcompositor: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
4b3553409a
xdg-shell: use wlr_surface_synced for popups
2023-12-25 11:47:15 +01:00
Simon Ser
9201431c29
xdg-shell: use wlr_surface_synced for toplevel
2023-12-25 11:47:15 +01:00
Simon Ser
69d9a4e2cb
xdg-shell: use wlr_surface_synced for wlr_xdg_surface
2023-12-25 11:47:15 +01:00
Simon Ser
7e1ae5548c
compositor: add wlr_surface_role.client_commit
2023-12-25 11:47:15 +01:00
Simon Ser
d847516765
compositor: add wlr_surface_synced
...
A lot of protocols extend the wl_surface state. Such protocols need
to synchronize their extended state with wl_surface.commit and
cached states. Add a new utility for this purpose.
2023-12-25 11:47:15 +01:00
Simon Ser
34d5af4172
compositor: add wlr_surface_state_has_buffer()
2023-12-25 11:47:15 +01:00