Kirill Primak
4cbc8385ce
pointer: store the output instead of its name
...
In cases where the value is actually valid, the input device lives
just as long as the output, so it's easier to provide the output itself
instead for making a compositor find it by the name.
2023-06-03 20:10:22 +03:00
Kirill Primak
49e9be62ae
subcompositor: consider mapping on parent map
...
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3654
2023-06-03 14:36:41 +00:00
Simon Ser
52b93f7eb4
output/cursor: fix scale and transform
...
Many issues here:
- wlr_output_cursor_set_buffer() takes a buffer already scaled for
the output, not a buffer with scale=1.
- wlr_output_cursor.{width,height,hotspot_x,hotspot_y} are in output
buffer coordinates.
- render_cursor_buffer() had hardcoded no-ops for scale and
transform, instead of using the cursor surface's.
Fixes: b64e7e88bf ("output: add output_cursor_set_texture()")
2023-06-02 22:33:40 +00:00
Kirill Primak
e75407fd4d
session-lock: remove unused wlr_session_lock_surface_v1.events.map
2023-06-02 23:20:05 +03:00
Kirill Primak
d086ee1b9e
compositor: remove wlr_surface_role.precommit
...
It was previously used to handle unmapping properly but is obsolete now.
2023-06-02 21:04:16 +03:00
Kirill Primak
26676c8c07
xwm: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
af4181f388
drag: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
743da5c0ae
input-method: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
229abfae0c
session-lock: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
c63f3659c5
layer-shell: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
b0437fc416
xdg-shell: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
c590bb600f
subcompositor: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
6b40e08148
compositor: introduce unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
75d03f2b68
xwm: introduce associate/dissociate events
...
We'll soon introduce a unified wlr_surface map event. Up until now, compositors
have been using wlr_xwayland_surface's map event to setup various wlr_surface
related listeners (e.g. commit). This will no longer be possible when that
event is moved over to wlr_surface. Introduce new events where the compositor
can add/remove wlr_surface event listeners.
2023-06-02 15:54:25 +00:00
Simon Ser
0ba3ea3bcd
render/vulkan: improve error handling in render_pass_submit()
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644
2023-06-01 10:42:56 +02:00
Simon Ser
30aca4df0d
backend/drm: introduce wlr_drm_mode_get_info()
...
This allows compositors to get back the raw drmModeModeInfo and
look at DRM-specific fields and flags.
2023-05-31 22:37:12 +00:00
Simon Ser
3f0487d310
backend/drm: move forward decl up for drmModeModeInfo
...
This allows doc generators to properly associate the doc comment
with the function instead of the typedef.
2023-05-31 00:08:49 +00:00
Simon Ser
93a6acae9f
output: add wlr_output_begin_render_pass()
2023-05-30 16:18:19 +00:00
Alexander Orzechowski
95062904c7
wlr_scene: Introduce wlr_scene_buffer_set_opacity
2023-05-30 15:43:29 +00:00
Alexander Orzechowski
2346b90a9f
wlr_scene: Make scene_rect_from_node public
...
This is in an effort to be more consistent with both already public
getters: wlr_scene_buffer_from_node and wlr_scene_tree_from_node
2023-05-30 15:40:41 +00:00
Alexander Orzechowski
88f80c4a7c
wlr_scene: Make scene_tree_from_node public
...
This is to allow for compositors that want to be more implicit about
how their scene is organized. Such a compositor may want to walk up
at a certain scene node to find something such as a surface to focus on.
2023-05-30 15:40:41 +00:00
Alexander Orzechowski
61c157269e
wlr_scene: Add documentation to wlr_scene_buffer_from_node
2023-05-30 15:40:41 +00:00
Simon Ser
e07c77f846
render/vulkan: implement render pass API
2023-05-30 09:42:19 +00:00
Alexander Orzechowski
8af00d5534
renderer/gles2: Implement render pass interface
2023-05-28 14:53:34 -04:00
Alexander Orzechowski
b1d26ed47b
renderer/gles2: Compute texture coordinates based off of vertex positions
2023-05-28 14:53:34 -04:00
Simon Ser
f60b367db7
render/vulkan: drop unused vulkan_has_extension()
2023-05-26 12:25:53 +00:00
Simon Ser
42eec38ab6
render/vulkan: drop unused vulkan_change_layout_queue()
2023-05-26 12:25:53 +00:00
Simon Ser
c7ae9dfaf8
render/vulkan: generalize YCbCr format support
2023-05-24 08:58:59 +00:00
Simon Ser
5ea0eb3468
render/vulkan: add vulkan_get_pipeline_layout()
...
Will make it easier to add more pipeline layouts for other YCbCr
formats.
2023-05-24 08:58:59 +00:00
Simon Ser
fd38761676
render/vulkan: introduce struct wlr_vk_pipeline_layout
...
This will make it easier to create one pipeline layout (plus related
objects) per YCbCr format.
2023-05-24 08:58:59 +00:00
Kirill Primak
5f4a35290d
util/box: always treat NULL boxes as empty
2023-05-23 21:08:22 +03:00
Simon Ser
96f3f3c92e
render/pixel-format: add support for block-based formats
...
Some formats like sub-sampled YCbCr use a block of bytes to
store the color values for more than one pixel. Update our format
table to be able to handle such formats.
2023-05-21 20:28:45 +00:00
Simon Ser
78a1ac540e
render/pixel-format: add docs
2023-05-21 20:28:45 +00:00
Manuel Stoeckl
10dd416694
render/vulkan: allow rendering to non-8-bit buffers
...
This is implemented by a two-subpass rendering scheme; the first
subpass draws (and blends) onto a linear R16G16B16A16_SFLOAT buffer,
while the second subpass performs linear->srgb conversion, writing
onto the actual output buffer.
2023-05-12 15:09:02 +00:00
Alexander Orzechowski
300bd80772
wlr_drm_format_set: Store formats on array
2023-05-11 18:25:52 +02:00
Alexander Orzechowski
90d08f8f1c
wlr_drm_format: Rework wlr_drm_format_intersect
...
Now it takes a reference to a destination format
2023-05-11 18:24:43 +02:00
Alexander Orzechowski
340700cb70
wlr_drm_format: Change wlr_drm_format_dup to copy
2023-05-11 18:24:43 +02:00
Alexander Orzechowski
099a147439
wlr_drm_format: Change wlr_drm_format_create to init
2023-05-11 18:24:40 +02:00
Alexander Orzechowski
e427e019c4
wlr_drm_format: Don't take double pointer in wlr_drm_format_add
2023-05-11 03:51:01 -04:00
Alexander Orzechowski
e6879616e7
wlr_drm_format: Make structure constant length
...
Don't store modifiers as part of the struct.
2023-05-11 03:51:01 -04:00
Alexander Orzechowski
84d07e7119
wlr_drm_format_set: Remove redundant text in comment for finish function
...
This is implied by the fact that this function finishes the state instead
of destroying it.
2023-05-11 03:51:01 -04:00
Alexander Orzechowski
b45396c790
wlr_drm_format: Introduce drm_format_finish
2023-05-11 03:51:01 -04:00
Simon Ser
2a1234a820
wlr-export-dmabuf-v1: handle output destroy
...
We were storing a wlr_output without listening for the destroy
event.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3646
2023-05-10 20:45:48 +00:00
Simon Ser
d933f5204b
output: drop wlr_output_cursor_set_surface
2023-05-06 13:59:05 -04:00
Simon Ser
b64e7e88bf
output: add output_cursor_set_texture()
2023-05-06 17:48:56 +00:00
Simon Ser
b03f71fe5f
render/vulkan: add support for NV12
2023-05-04 20:07:20 +00:00
Alexander Orzechowski
5adb1be3a7
drm_format_set_intersect: Require initialized dst and remove assert
...
The usages in linux_dmabuf zero out the dst before passing it so this
change should be fine.
2023-05-04 18:19:33 +00:00
Alexander Orzechowski
1ee75786b4
drm_format_set_union: Require initialized dst and remove assert
2023-05-04 18:19:33 +00:00
novenary
d7917d2076
xwayland: allow compositor to set withdrawn state
2023-05-04 18:05:00 +00:00
Alexander Orzechowski
394accbe4a
wlr_compositer: Keep track if surface has committed a buffer before.
...
This would break if you are running with a NULL renderer.
2023-05-04 11:53:26 +02:00