Simon Ser
c15ca3793e
render: expand wlr_renderer_get{,_dmabuf}_formats docs
...
Make it clear formats returned are only suitable for import/sampling.
These formats can't be used to be rendered to.
2020-11-30 11:08:44 +01:00
Simon Ser
52805feae9
backend/x11: log errors
...
Register an X11 error handler, and optionally use xcb-errors to print a
detailed message.
2020-11-24 14:57:25 +01:00
Kenny Levinsen
ebecc5404b
surface: Make send_enter store entered outputs
...
wlr_surface_send_enter now stores outputs that have been entered.
Combined with a new 'bind' event on wlr_output, this allows us to delay
enter events as necessary until the respective wl_output global has been
bound.
Closes: https://github.com/swaywm/wlroots/issues/2466
2020-11-23 10:58:50 +01:00
Simon Ser
0e76f92de7
backend/session: replace session_signal with events.active
...
This is more idiomatic wlroots API. The new name makes it clear that the
signal is emitted when wlr_session.active changes.
2020-11-19 22:47:49 +01:00
Simon Ser
fbf11a41e1
backend/session: wait for DRM device if none found
...
Wait for a DRM device if none is found in wlr_session_find_gpus. This
can happen if the compositor is loaded before the display kernel driver.
This supersedes the logind CanGraphical property.
To test, e.g. with i915 and sway:
rmmod -f i915
sway &
modprobe i915
Closes: https://github.com/swaywm/wlroots/issues/2093
2020-11-19 22:47:49 +01:00
Simon Ser
76bcddf071
backend/session: introduce wlr_session.events.add_drm_card
...
This is triggered when a new DRM card is added.
An easy way to test this patch is `modprobe vkms`.
2020-11-19 22:47:49 +01:00
Simon Ser
44a4792fd8
backend/session: operate on wlr_device
...
Instead of operating on FDs in {open,close}_device, operate on
wlr_devices. This avoids the device lookup in wlr_session and allows
callers to have access to wlr_device fields.
For now, we use it to remove wlr_session_signal_add and replace it with
a more idiomatic wlr_session.events.change field. In the future, other
events will be added.
2020-11-19 22:47:49 +01:00
Ilia Bozhinov
6284af121f
texture: document that functions should not be called while rendering
2020-11-19 11:35:04 +01:00
Simon Ser
e18599b05e
render/egl: stop including eglmesaext.h
...
This is a Mesa-specific header that was needed because some Wayland EGL
extensions were missing from the Khronos registry. Now that this has
been fixed [1] and Mesa [2] & glvnd [3] have sync'ed their headers, we
can drop this workaround.
[1]: https://github.com/KhronosGroup/EGL-Registry/pull/95
[2]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4953
[3]: https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/225
2020-11-19 00:42:09 +01:00
Simon Ser
61f8cdfb9e
backend/headless: switch to wlr_swapchain
2020-11-15 22:54:07 +01:00
Simon Ser
eb8360bda3
render: introduce wlr_renderer_get_drm_fd
2020-11-15 22:54:07 +01:00
Simon Ser
c8d95acc37
render/egl: introduce wlr_egl_dup_drm_fd
2020-11-15 22:54:07 +01:00
Simon Ser
c881008e1c
backend/drm: add support for wlr_swapchain multi-GPU
2020-11-15 22:48:42 +01:00
Simon Ser
8058e338ea
backend/drm: get rid of wlr_drm_fb_type
...
Since all DRM FBs are backed by a wlr_buffer, there's no need for this
anymore.
2020-11-15 22:48:42 +01:00
Simon Ser
c11c6c4568
render/swapchain: add support for buffer age
2020-11-15 22:48:42 +01:00
Simon Ser
ef846a8839
backend/drm: use wlr_swapchain
2020-11-15 22:48:42 +01:00
Simon Ser
6136fe87d1
render/gles2: implement wlr_renderer_bind_buffer
2020-11-15 22:48:42 +01:00
Simon Ser
c88c54fb38
render: introduce wlr_renderer_bind_buffer
2020-11-15 22:48:42 +01:00
Simon Ser
0b40d09a21
buffer: add wlr_client_buffer_get
2020-11-15 22:48:42 +01:00
Simon Ser
b0a663d39d
render: introduce wlr_swapchain
...
The swapchain maximum capacity is set to 4, so that we have enough room
for:
- A buffer currently displayed on screen
- A buffer queued for display (e.g. to KMS)
- A pending buffer that'll be queued next commit
- An additional pending buffer in case we want to invalidate the
currently pending one
2020-11-15 22:48:42 +01:00
Simon Ser
7c6212a0f7
render/drm_format_set: introduce wlr_drm_format_dup
2020-11-15 22:48:42 +01:00
Simon Ser
5913040110
render: introduce wlr_gbm_allocator
2020-11-15 22:48:42 +01:00
Simon Ser
f47445f142
render: introduce wlr_allocator
2020-11-15 22:48:42 +01:00
Mykola Orliuk
2eae9ec7c8
backend/wayland: Set cursor indivdualy per output
2020-11-12 12:31:32 +01:00
Mykola Orliuk
44531e16e0
backend/wayland: Add active pointer per host seat
...
Every host seat with pointer capability propagates events to one of
sub-pointer depending which output window we entered.
active_pointer tracks reference to sub-pointer on enter/leave events to
avoid lookup for it on every move events.
Fixes swaywm/wlroots#1499
2020-11-12 12:31:32 +01:00
Mykola Orliuk
70ffda3ea3
backend/wayland: Add registering multiple seats
2020-11-12 12:31:32 +01:00
Mykola Orliuk
85b0872650
backend/wayland: Link input devices with seats
2020-11-12 12:31:32 +01:00
Mykola Orliuk
40bfd9f8f7
backend/wayland: Bind seat listener to wlr_wl_seat
2020-11-12 12:31:32 +01:00
Isaac Freund
e06c9e43af
Remove unneeded includes from wlr_input_device.h
...
This uncovered many places where we were using things without directly
including them.
2020-11-11 15:40:47 +01:00
Isaac Freund
0724b3c453
Use uint32_t in wlr_renderer_begin signature
...
This matches the signature of wlr_renderer_impl.begin
2020-11-11 11:01:46 +01:00
Isaac Freund
7693f61d81
Replace wlr_key_state with wl_keyboard_key_state
...
There's no reason to have duplicate enums
2020-11-11 10:58:38 +01:00
Isaac Freund
8348fc3ef8
xwayland: remove unused listener
2020-11-05 13:18:04 +01:00
Simon Ser
51fc7ddb29
screencopy: perform DMA-BUF copy on output commit
2020-11-05 09:43:42 +01:00
Simon Ser
f0945e112f
export-dmabuf: export DMA-BUF on output commit
...
We were previously exporting DMA-BUFs when receiving the capture_output
request, and sending a done event on wlr_output.events.precommit. Instead,
export and send done on wlr_output.events.commit.
2020-11-05 09:43:42 +01:00
Simon Ser
8c8164c4a6
output: add when field to wlr_output_event_commit
...
Similar to the one already present in wlr_output_event_precommit.
2020-11-05 09:43:42 +01:00
Simon Ser
ccd313e01a
output: update docs to reflect reality
...
The docs were outdated and weren't matching what the DRM backend does
(the only implementor of wlr_output_export_dmabuf).
2020-11-05 09:43:42 +01:00
Simon Ser
c2db691cad
gamma-control-v1: apply gamma LUT when output gets enabled
...
Closes: https://github.com/swaywm/wlroots/issues/2372
2020-11-03 17:47:04 +01:00
Simon Ser
f0ddcd361e
render: define EGL_NO_PLATFORM_SPECIFIC_TYPES ( #2452 )
...
This avoids Xlib.h inclusion via EGL headers. See [1] for discussion.
This change is based on a Weston commit [2].
[1]: https://github.com/KhronosGroup/EGL-Registry/pull/111
[2]: https://gitlab.freedesktop.org/wayland/weston/commit/526765ddfdfd
2020-11-02 10:51:52 +01:00
Tudor Brindus
0f9b2bfa64
render/dmabuf: use bitmask for wlr_dmabuf_attributes_flags
2020-10-31 23:15:21 +01:00
Tudor Brindus
368d0146fb
util/edges: use bitmask for wlr_edges
2020-10-31 23:15:21 +01:00
Tudor Brindus
0fdb41fe7c
types/wlr_output_layout: use bitmask for wlr_direction
2020-10-31 23:15:21 +01:00
Tudor Brindus
7c6e06fd13
types/wlr_keyboard: use bitmasks for wlr_keyboard_led and wlr_keyboard_modifier enums
2020-10-31 23:15:21 +01:00
Mykola Orliuk
41bf1c6871
backend/wayland: add error flow in create_wl_seat
2020-10-18 21:25:25 +02:00
Daniel Kondor
36395e5b1c
foreign-toplevel-management: report parent toplevel
...
Based on the wlr-protocols PR:
https://github.com/swaywm/wlr-protocols/pull/52
2020-10-18 17:14:35 +02:00
Mykola Orliuk
1ac5257357
backend/wayland: factor out wlr_wl_seat
2020-10-18 16:28:12 +02:00
Ilia Bozhinov
b98522b38f
backend/wayland: add touch support to the wayland backend
...
Goal currently is to get support working for a single output, thus there is only one touch device created.
Multi-output support is left for later.
2020-10-18 15:33:03 +02:00
Isaac Freund
e410ff8dd4
wlr_drag: remove unused point_destroy field
2020-10-18 15:17:28 +02:00
Isaac Freund
616f06c25c
xdg_positioner: remove unused field
...
The resource field of wlr_xdg_positioner is never initialized or
accessed within wlroots. The wl_resource for this interface is stored
in the wlr_xdg_positioner_resource struct.
2020-10-16 12:49:37 +02:00
Ilia Bozhinov
99f3c643bf
xwayland: add set_geometry event
...
This is necessary to react to changes in position of override-redirect
views.
2020-10-14 21:49:51 +02:00
Isaac Freund
8ad2cc39eb
layer-shell: add for_each_popup
...
This brings the layer-shell api in line with that of xdg-shell and
avoids reimplementing this function in every compositor in order to
render layer shell popups correctly.
2020-09-10 17:44:55 +02:00