Alexander Orzechowski
823a64bf7d
wlr_scene: Store update box in update data
...
We'll use it later
2024-08-06 20:00:01 -04:00
Kirill Primak
8730ca9661
seat/pointer: handle duplicate presses/releases correctly
2024-08-06 22:53:08 +00:00
Simon Ser
738bbf01ee
cursor: add support for linux-drm-syncobj-v1
2024-08-06 17:37:06 +00:00
Simon Ser
5f88635118
scene: add explicit synchronization for rendered buffers
2024-08-06 17:37:06 +00:00
Simon Ser
9e9636f675
scene: add support for linux-drm-syncobj-v1
2024-08-06 17:37:06 +00:00
Simon Ser
850dd7a792
linux-drm-syncobj-v1: add helper to signal on buffer release
2024-08-06 17:37:06 +00:00
Simon Ser
c7035da5e2
scene: add timeline point to wlr_scene_buffer_set_buffer() options
2024-08-06 17:37:06 +00:00
Simon Ser
48f0902a36
scene: add wlr_scene_buffer_set_buffer_with_options()
...
This is an extensible version of wlr_scene_buffer_set_buffer().
2024-08-06 17:37:06 +00:00
Simon Ser
1ad42bea99
output: add explicit sync API
2024-08-06 17:37:06 +00:00
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
2024-08-05 14:46:30 -04:00
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
2024-08-01 15:24:20 +03:00
Kirill Primak
e17916d413
Rename wlr_surface_get_extends() to wlr_surface_get_extents()
...
Extend (verb): cause to cover a wider area; make larger.
2024-07-13 19:56:58 +00:00
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_*.
2024-07-13 19:56:58 +00:00
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
2024-07-11 21:03:27 +02:00
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/
2024-07-10 22:42:44 +00:00
Simon Ser
22dab77d28
shm: add support for wl_shm version 2
...
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/335
2024-07-07 18:16:45 +02:00
Alexander Orzechowski
ee24201e26
wlr_scene: Don't disable scene nodes at creation time
2024-07-04 14:35:52 -04:00
Alexander Orzechowski
a9375d6bac
wlr_scene: Drop map/unmap listeners from layer_shell_v1
...
Redundant.
2024-07-04 14:10:33 -04:00
Alexander Orzechowski
48b9b7d406
wlr_scene: Drop map/unmap listeners from drag_icon
...
Redundant.
2024-07-04 14:09:47 -04:00
Alexander Orzechowski
24a9f88873
wlr_scene: Drop map/unmap listeners from xdg_shell
...
subsurface_tree will handle it. This was redundant.
2024-07-04 14:08:24 -04:00
Alexander Orzechowski
65e6579c56
wlr_scene: send preferred buffer transform
2024-06-28 13:44:35 -04:00
Simon Ser
fe429b2463
Switch to stable tablet-v2 protocol
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/284
2024-06-27 18:04:00 +00:00
Simon Ser
213bd88b4c
linux-drm-syncobj-v1: new protocol implementation
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/90
2024-06-12 18:40:25 +02:00
Kirill Primak
f464213447
input-method: unmap popup surfaces on deactivate
...
Fixes 743da5c0ae
2024-06-11 13:13:00 +00:00
Kirill Primak
1e58e4006d
xdg-popup: validate positioner on reposition request
2024-06-11 12:02:35 +03:00
Kirill Primak
e7deea44fd
xdg-popup: don't emit parent's new_popup signal too early
2024-06-11 11:28:09 +03:00
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.
2024-05-27 23:08:20 +00:00
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.
2024-05-24 17:24:32 +02:00
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().
2024-05-23 09:32:16 +02:00
Kirill Primak
510664e79b
output: disable hardware cursor when falling back to software
2024-05-07 14:47:05 +00:00
Kirill Primak
f534434be6
output: extract hardware cursor disabling logic
2024-05-07 14:47:05 +00:00
Kirill Primak
9c50cd71b6
xdg-toplevel: allow edge_none for resizing
2024-05-07 09:45:58 +03:00
groveer
293b0aa502
wlr_pointer_gestures_v1: emit destroy signal in destroy function
2024-05-06 10:47:33 +03:00
groveer
dead0ebcc8
wlr_pointer_gestures_v1: init destroy signal
2024-05-06 10:46:42 +03:00
Alexander Orzechowski
53be443f39
wlr_scene: Add WLR_SCENE_HIGHLIGHT_TRANSPARENT_REGION env
2024-05-05 02:22:50 +03:00
Kirill Primak
8fdf9dc4f0
scene: fix double scaling of opaque region for blend mode optimization
2024-05-05 01:54:59 +03:00
Kirill Primak
341154a5f6
alpha-modifier-v1: add a missing NULL check in wlr_alpha_modifier_v1_get_surface_state()
2024-05-01 03:07:16 +03:00
Simon Ser
027d453f6a
scene/surface: add support for alpha-modifier-v1
2024-04-30 17:49:34 +02:00
Simon Ser
563f100627
alpha-modifier-v1: new protocol implementation
...
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/287
2024-04-30 17:49:34 +02:00
Manuel Stoeckl
391410deb5
wlr_scene: add color transform argument for rendering
2024-04-26 17:17:36 +00:00
Alexander Orzechowski
41fd552f53
wlr_scene: Set wlr_damage_ring_set_bounds earlier
...
Fixes the _HIGHLIGHT option not highlighting the buffer correctly after
a resize
2024-04-24 12:58:17 -04:00
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
2024-04-24 12:58:17 -04:00
Alexander Orzechowski
14692a7c55
wlr_scene: Fix WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT output damage
2024-04-24 12:58:17 -04:00
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.
2024-04-23 19:37:28 +02:00
Simon Ser
ebef710746
renderer: replace get_render_buffer_caps() with struct field
2024-04-22 11:38:30 +02:00
Simon Ser
0686666cf5
render: drop wlr_renderer_get_dmabuf_texture_formats()
...
wlr_renderer_get_texture_formats() with WLR_BUFFER_CAP_DMABUF is
the replacement.
2024-04-21 11:27:29 +00:00
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.
2024-04-21 11:27:29 +00:00
Ilia Bozhinov
75ecba444a
seat: add serials to touch up events
2024-04-18 14:34:51 +00:00
Kirill Primak
2f82c92307
Avoid using wayland-{client,server}.h
...
Their use is discouraged. Instead, include -core or -protocol headers.
2024-04-17 13:37:12 +00:00
Isaac Freund
cb01c63a8d
scene: ensure layer surface usable area >0
...
Clients may, for example, commit an exclusive zone larger than the
output dimensions. Compositors must handle this gracefully, which likely
requires more work on the compositor side but returning a usable area
with negative width or height in wlr_scene_layer_surface_v1_configure()
is nonsensical.
2024-04-16 11:49:08 +02:00