emersion
180151ed09
backend/wayland: handle WL_EVENT_WRITABLE for Wayland socket
...
We need to flush when the connection is writable again. This is important in
case the write buffer becomes full. This is also what Weston does [1].
[1]: https://gitlab.freedesktop.org/wayland/weston/blob/master/libweston/compositor-wayland.c#L2593
2018-11-11 21:14:15 +01:00
Scott Anderson
aaff4b8c00
backend/wayland: Make header order consistent
2018-11-11 22:29:35 +13:00
Scott Anderson
bbce92a923
backend/wayland: Move initilisation code earlier
...
The renderer redesign is going to need the render fd before the backend
is fully started, so we have to move the wl registry code to when the
backend is created instead of when it is started.
We also need to stash the wl_keyboard and emit it to library users
later, once they've added their listeners and started the backend.
2018-11-11 18:11:56 +13:00
Scott Anderson
47545cf550
backend/wayland: Use specific wl_global versions
...
Explicitly use the version we support instead of accepting the
compositor's version.
2018-11-11 18:11:56 +13:00
Scott Anderson
4e03802057
backend/wayland: Move registry into backend
...
Registry was a very small file, and is heavily related to the backend,
so there is not point in keeping them separate.
2018-11-11 18:11:56 +13:00
emersion
e98cb7c5ab
backend/wayland: add assertions
2018-09-18 11:06:01 +02:00
emersion
7cbef15206
util: add wlr_ prefix to log symbols
2018-07-09 22:49:54 +01:00
Ilia Bozhinov
24cf70ae96
backends: implement custom EGL and renderer initialization
...
Compositors now have more control over how the backend creates its
renderer. Currently all backends create an EGL/GLES2 renderer, so
the necessary attributes for creating the context are passed to a
user-provided callback function. It is responsible for initializing
provided wlr_egl and to return a renderer. On fail, return 0.
Fixes #987
2018-05-25 14:56:52 +03:00
emersion
9e3dd6b560
backend/wayland: fix segfault when destroying backend before starting it
2018-05-19 09:34:16 +01:00
emersion
225d182765
output: always use hardware cursors if available
...
This changes the `wlr_output_impl.set_cursor` function to take a
`wlr_texture` instead of a byte buffer. This simplifies the
DRM and Wayland backends since they were creating textures from
the byte buffer anyway.
With this commit, performance should be improved when moving the
cursor since outputs don't need to be re-rendered anymore.
2018-05-01 21:38:04 +01:00
emersion
9f8a7c8fc4
backend/wayland: create one virtual pointer per output
2018-04-29 14:30:13 +01:00
emersion
57c36ddcb3
backend/wayland: add proper error handling to wlr_wl_backend_create
2018-04-28 12:38:03 +01:00
Drew DeVault
fecb971518
Merge pull request #902 from emersion/various-memory-leaks
...
Various memory leaks
2018-04-26 11:34:49 +02:00
emersion
cd9f25711c
backend: destroy renderer when destroying backend
2018-04-25 23:53:43 +01:00
emersion
625a7a48dc
Don't use the wlr_ prefix for static functions
2018-04-25 23:51:00 +01:00
emersion
71ca45e2c0
Make sure we don't use others' prefixes
2018-04-25 23:24:58 +01:00
emersion
b0d99f5c67
Remove wlr_ prefix from local symbols
2018-04-25 23:00:46 +01:00
emersion
d2ebbd103c
backend: remove wlr_backend_get_egl
2018-04-08 11:00:56 -04:00
emersion
33a2eb4b77
Untie wlr_backend from wlr_renderer
2018-03-31 18:49:43 -04:00
Drew DeVault
1d9be89e2d
Revert "ELF Visibility"
2018-02-19 18:01:27 -05:00
Scott Anderson
86269052eb
Explicitly export EFL symbols
2018-02-19 14:26:40 +13:00
emersion
c2e1474010
Reformat all #include directives
2018-02-12 21:29:23 +01:00
emersion
36ead80cd1
Make wlr_signal_emit_safe private
2018-02-12 19:52:47 +01:00
emersion
5e58d46cc1
Add wlr_signal_emit_safe
2018-02-12 09:12:31 +01:00
emersion
babdd6ccf7
backend: fix use-after-free when destroying backends
...
The backend destroy signal is emitted before the output_remove
signal is. When the destroy signal is emitted listeners remove
their output_remove listener, so the output_remove signal is never
received and listeners have an invalid output pointer.
The correct way to solve this would be to remove the output_remove
signal completely and use the wlr_output.events.destroy signal
instead. This isn't yet possible because wl_signal_emit is unsafe
and listeners cannot be removed in listeners.
2018-01-30 19:45:57 +01:00
emersion
4fa90b0511
Backport screenshooter fixes from the renderer redesign v1
...
This backports some changes to #319 to fix the screenshooter data
format. This also adds wlr_backend_get_renderer which will be
useful to support multiple renderers.
2018-01-23 22:06:54 +01:00
Johannes Schramm
dcc743047b
style: include brackets for if/while/for, even if it's a single statement
2018-01-21 16:28:21 +01:00
Markus Ongyerth
c00e9d1416
adds remote argument to wayland backend create
...
Add a remote display name argument to wlr_wl_backend_create.
If NULL is passed to the wayland backend at all times, creating a
wayland backend *after* the compositor was started up, would require
changing the WAYLAND_DISPLAY environment variable.
2018-01-13 21:20:15 +01:00
emersion
b99d1f4fcc
Refactor wlr_egl_init to accept config_attribs
2017-12-17 23:51:04 +01:00
emersion
75ef7860bb
Merge branch 'master' into display-destroy
2017-12-14 20:29:30 +01:00
emersion
a1302cc4a5
Fix pointer events with multiple outputs in wayland backend
2017-12-13 22:32:22 +01:00
emersion
18eb1eee3f
Listen to display destroy in xwayland, rename wlr_egl_free
2017-12-08 00:59:37 +01:00
emersion
9d43adaafa
Listen to display destroy in backends
2017-12-07 23:44:59 +01:00
emersion
7d847efe40
Terminate local display on remote X11 server error
2017-11-16 09:38:24 +01:00
emersion
73c48f2f35
Terminate local display on remote Wayland display error
2017-11-16 09:33:47 +01:00
Drew DeVault
16f35ecbea
Merge branch 'master' into heghe/wl_list
2017-10-21 22:03:48 -04:00
Scott Anderson
9b984253e2
Move egl.h to render/egl.h
2017-10-22 10:36:07 +13:00
Heghedus Razvan
d3f0878d71
Replace list_t with wl_list in wlr_wl_backend
...
Now wlr_backend->outputs is a list of wlr_wl_backend_output instead of
wlr_output.
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 19:44:59 +03:00
Scott Anderson
517ba0bc16
Change egl_get_config to always use visual id
2017-09-29 16:15:09 +13:00
Drew DeVault
0699aa62d8
Initial pass on roots_input
2017-09-23 10:13:05 -04:00
Drew DeVault
b6d7c3ed8e
Initialize display, backend; add frame handling
2017-09-23 00:30:39 -04:00
Dominique Martinet
062d923b0a
wayland backend: wl_event_source_remove on destroy
2017-08-19 09:31:06 +02:00
Dominique Martinet
577d2f6fcd
wayland backend: switch to xdg shell
...
Closes #72 and #96 .
2017-08-17 10:24:27 +02:00
Drew DeVault
41e735242d
Remove wlr_output_state, update backends
2017-08-13 11:38:03 -04:00
Drew DeVault
4386816889
wlr_backend_init -> wlr_backend_start
...
Also renames create to init. We'll use create for anything that
allocates and init for anything that takes a pointer and initializes it.
2017-08-13 10:19:57 -04:00
Dominique Martinet
f2e2794365
wayland backend: do not watch wayland fd for writable
...
Wayland fd is always writable and will busy-loop.
The dispatch function gets called with 0-mask when we need to flush
display anyway, so this saves CPU at no visible impact.
2017-08-13 07:53:33 +02:00
Drew DeVault
81cd90297d
Refactor out wlr_backend_state from wl/multi
2017-08-12 11:43:36 -04:00
Dominique Martinet
3ea878b76e
wayland backend: free seatName
2017-08-12 01:19:45 +02:00
Drew DeVault
c24351681f
Refactor EGL handling
2017-08-10 22:15:37 -04:00
nyorain
67369173aa
Implement drm (egl) buffer attaching
2017-08-10 10:59:58 +02:00
nyorain
272030652a
Implement absolute motion events for wayland
2017-06-22 17:55:00 +02:00
nyorain
c1520077b6
Implement wayland backend input events
2017-06-22 16:53:48 +02:00
Drew DeVault
f4453d104d
Reorganize wlr-common
2017-06-21 12:10:07 -04:00
Drew DeVault
fd91244e83
Update everyone to use new headers
2017-06-21 10:27:45 -04:00
Drew DeVault
c2d0090ad7
Support multiple wl backend outputs
2017-06-20 18:22:21 -04:00
Drew DeVault
b9d36c8149
Add dynamic output resizing for Wayland backend
...
This allows outputs to:
- Not support modesetting
- Resize themselves
2017-06-20 17:51:45 -04:00
nyorain
51f35e7af0
Cleanup some leaks/incorrect destructions
2017-06-20 19:01:20 +02:00
nyorain
50ce35e9da
Implement wayland backend output
2017-06-20 18:27:05 +02:00
nyorain
e22626ef6a
Adapt codestyle
2017-06-19 22:39:20 +02:00
nyorain
792d535225
Rework wayland backend output implementation
2017-06-19 22:36:40 +02:00
nyorain
10526de444
Fix furhter wayland backend issues
2017-06-19 19:40:58 +02:00
nyorain
8fbf1ca3ff
Continue wayland backend update
...
Update wayland backend to new api.
Start to use the input interfaces.
Compiling now, not tested.
2017-06-19 19:05:10 +02:00
nyorain
904739c405
Start to fix wayland backend
...
Starts to update the wayland backend to the new backend api.
Not yet updated to libinput branch (not yet compiling).
2017-06-19 17:46:50 +02:00
Drew DeVault
1aed987301
Add free functions for allocated resources
2017-04-25 21:26:29 -04:00
Drew DeVault
5ca9d612f4
Flesh out wayland backend registry
2017-04-25 19:19:21 -04:00
Drew DeVault
de01e654ce
Flesh out wayland backend somewhat, add example
2017-04-25 15:06:58 -04:00
Drew DeVault
52e6ed54cb
Initial commit
2017-04-25 11:32:52 -04:00