Alexander Orzechowski
1133bc15ce
wlr_scene: Transparently restack xwayland surfaces
...
Scene will now automatically restack xwayland windows. Scene
compositors should drop calls to wlr_xwayland_surface_restack()
4 months ago
Alexander Orzechowski
66d96d244c
wlr_scene: Ensure scene_node_update is updating entire node.
...
The old logic might not update the entire scene node when a node is
disabled. It would only consider the damage last time (the damage was
based on the visible region of the node).
It's important that we update the entire node region because xwayland
stacking will depend on this.
4 months ago
Alexander Orzechowski
823a64bf7d
wlr_scene: Store update box in update data
...
We'll use it later
4 months ago
Kirill Primak
8730ca9661
seat/pointer: handle duplicate presses/releases correctly
4 months ago
Simon Ser
738bbf01ee
cursor: add support for linux-drm-syncobj-v1
4 months ago
Simon Ser
5f88635118
scene: add explicit synchronization for rendered buffers
4 months ago
Simon Ser
9e9636f675
scene: add support for linux-drm-syncobj-v1
4 months ago
Simon Ser
850dd7a792
linux-drm-syncobj-v1: add helper to signal on buffer release
4 months ago
Simon Ser
c7035da5e2
scene: add timeline point to wlr_scene_buffer_set_buffer() options
4 months ago
Simon Ser
48f0902a36
scene: add wlr_scene_buffer_set_buffer_with_options()
...
This is an extensible version of wlr_scene_buffer_set_buffer().
4 months ago
Simon Ser
1ad42bea99
output: add explicit sync API
4 months ago
Alexander Orzechowski
4481c6b243
wlr_scene: Force blend mode to PREMULTIPLIED if calculate visibility is disabled
...
We do it here so WLR_SCENE_HIGHLIGHT_TRANSPARENT_REGION doesn't break
4 months ago
Kirill Primak
de574ac098
output-power-management: send zwlr_output_power_v1.failed on output destroy
...
From the event description:
This event indicates that the output power management mode control is no
longer valid. This can happen for a number of reasons, including:
<...>
- The output disappeared
4 months ago
Kirill Primak
e17916d413
Rename wlr_surface_get_extends() to wlr_surface_get_extents()
...
Extend (verb): cause to cover a wider area; make larger.
4 months ago
Isaac Freund
5ecbd23c1d
wlr_surface: fix argument order consistency
...
This swaps the argument order of wlr_surface_accepts_touch() and
wlr_surface_accepts_tablet_v2(), putting the wlr_surface argument first
as should be the case for functions namespaced with wlr_surface_*.
4 months ago
Simon Ser
e34cc23549
scene: only skip bottom-most black rects with fractional scaling
...
We were relying on the fact that we wouldn't paint anything on top
of the black background in the region of a black rect. However
when fractional scaling is used the repaint region might get
expanded to nearby pixels by scale_output_damage(). As a result
the neighbour scene nodes might leak into the skipped black rect's
region.
Avoid this by using this optimization for bottom-most black rects
only when fractional scaling is used.
References: https://github.com/swaywm/sway/issues/8233
4 months ago
Simon Ser
a35b4f059d
backend/drm: add support for SIZE_HINTS property
...
This property allows the driver to advertise support for multiple
cursor sizes. On Intel, using a smaller buffer size reduces power
consumption.
References: https://lore.kernel.org/dri-devel/20240227193523.5601-2-ville.syrjala@linux.intel.com/
5 months ago
Simon Ser
22dab77d28
shm: add support for wl_shm version 2
...
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/335
5 months ago
Alexander Orzechowski
ee24201e26
wlr_scene: Don't disable scene nodes at creation time
5 months ago
Alexander Orzechowski
a9375d6bac
wlr_scene: Drop map/unmap listeners from layer_shell_v1
...
Redundant.
5 months ago
Alexander Orzechowski
48b9b7d406
wlr_scene: Drop map/unmap listeners from drag_icon
...
Redundant.
5 months ago
Alexander Orzechowski
24a9f88873
wlr_scene: Drop map/unmap listeners from xdg_shell
...
subsurface_tree will handle it. This was redundant.
5 months ago
Alexander Orzechowski
65e6579c56
wlr_scene: send preferred buffer transform
5 months ago
Simon Ser
fe429b2463
Switch to stable tablet-v2 protocol
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/284
5 months ago
Simon Ser
213bd88b4c
linux-drm-syncobj-v1: new protocol implementation
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/90
5 months ago
Kirill Primak
f464213447
input-method: unmap popup surfaces on deactivate
...
Fixes 743da5c0ae
5 months ago
Kirill Primak
1e58e4006d
xdg-popup: validate positioner on reposition request
5 months ago
Kirill Primak
e7deea44fd
xdg-popup: don't emit parent's new_popup signal too early
5 months ago
Simon Ser
dc5996a8b4
seat/keyboard: drop unnecessary check in handle_keyboard_keymap()
...
This condition always holds true: the listener is set up for
state->keyboard.
6 months ago
Kenny Levinsen
13b9b54f3f
wlr_scene: Skip direct scanout on color transform
...
If we need to apply a color transform to rendered content, we will not
be able to use direct scanout. Explicitly skip it to not accidentally
show frames lacking the color transform.
6 months ago
JiDe Zhang
36c0d5fe3a
output: reset hardware_cursor on failure
...
The DRM backend's set_cursor function always return true if the
buffer is NULL. If using a NULL cursor's buffer on startup, the
wlr_output_cursor will be marked as a hardware cursor. If the
cursor later gains a non-NULL buffer and the DRM backend rejects
that buffer, the cursor will remain marked as a hardware cursor,
despite the backend not displaying it as such. As a result, the
cursor will not be displayed at all. Fix this by always resetting
the hardware_cursor field in output_cursor_attempt_hardware().
6 months ago
Kirill Primak
510664e79b
output: disable hardware cursor when falling back to software
7 months ago
Kirill Primak
f534434be6
output: extract hardware cursor disabling logic
7 months ago
Kirill Primak
9c50cd71b6
xdg-toplevel: allow edge_none for resizing
7 months ago
groveer
293b0aa502
wlr_pointer_gestures_v1: emit destroy signal in destroy function
7 months ago
groveer
dead0ebcc8
wlr_pointer_gestures_v1: init destroy signal
7 months ago
Alexander Orzechowski
53be443f39
wlr_scene: Add WLR_SCENE_HIGHLIGHT_TRANSPARENT_REGION env
7 months ago
Kirill Primak
8fdf9dc4f0
scene: fix double scaling of opaque region for blend mode optimization
7 months ago
Kirill Primak
341154a5f6
alpha-modifier-v1: add a missing NULL check in wlr_alpha_modifier_v1_get_surface_state()
7 months ago
Simon Ser
027d453f6a
scene/surface: add support for alpha-modifier-v1
7 months ago
Simon Ser
563f100627
alpha-modifier-v1: new protocol implementation
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/287
7 months ago
Manuel Stoeckl
391410deb5
wlr_scene: add color transform argument for rendering
7 months ago
Alexander Orzechowski
41fd552f53
wlr_scene: Set `wlr_damage_ring_set_bounds` earlier
...
Fixes the _HIGHLIGHT option not highlighting the buffer correctly after
a resize
7 months ago
Alexander Orzechowski
1dc44a1afe
wlr_scene: Schedule new frame for WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT in output commit handler
...
We were doing it too early before and the output would disregard a
scheduled frame if called when we were first putting together the output
state
7 months ago
Alexander Orzechowski
14692a7c55
wlr_scene: Fix WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT output damage
7 months ago
Consolatis
e70afebfc9
scene: do not reset scene_buffer state on buffer release
...
This fixes an issue with some buffers not rendering anymore due
to buffer_width and buffer_height being reset on buffer release.
7 months ago
Simon Ser
ebef710746
renderer: replace get_render_buffer_caps() with struct field
7 months ago
Simon Ser
0686666cf5
render: drop wlr_renderer_get_dmabuf_texture_formats()
...
wlr_renderer_get_texture_formats() with WLR_BUFFER_CAP_DMABUF is
the replacement.
7 months ago
Simon Ser
85c1eda721
render: unify getter for texture formats
...
Instead of having separate getters for shm formats and DMA-BUF
formats, use the same pattern as wlr_output_impl.get_primary_formats
with a single function which takes buffer caps as input.
7 months ago
Ilia Bozhinov
75ecba444a
seat: add serials to touch up events
7 months ago