emersion
f152fdb4c5
Merge pull request #594 from Ongy/drm-surface-buffers
...
relases gbm buffers on init
2018-01-30 11:04:01 +01:00
emersion
d498855b9d
backend/drm: fix hw cursor position on rotated and scaled outputs
...
output: add wlr_output_transformed_resolution
2018-01-30 10:23:35 +01:00
emersion
51c22d39a4
Merge remote-tracking branch 'upstream/master' into output-damage
2018-01-29 23:24:09 +01:00
Tony Crisci
ed5b1fdedd
Merge pull request #580 from emersion/screenshooter-renderer-backport
...
Backport screenshooter fixes from the renderer redesign v1
2018-01-29 17:13:23 -05:00
Markus Ongyerth
cde0f454b3
Clean up the gbm/egl as well
2018-01-29 11:49:31 +01:00
Markus Ongyerth
2cdb646531
relases gbm buffers on init
...
The wlr_drm_surface_init function is called (upon others) when the drm
mode is changed.
When the surface was used previously this replaced the gbm_surface, but
did not replace the gbm buffers (front/back).
With this, wlr_drm_surface_get_from never set up the new buffers with
the new glViewport because surf->front existed.
This frees the buffers to get new buffers on the new surface with the
new viewport.
2018-01-29 11:29:54 +01:00
emersion
b47e8c4a1d
backend/drm: do not retry pageflip when swapping buffers
2018-01-28 23:33:38 +01:00
emersion
20e6861021
Do not flush damage if swapping buffers failed
...
This should solve issues with multiple outputs on DRM backend.
2018-01-28 22:39:24 +01:00
emersion
1ee61dbd0f
Merge remote-tracking branch 'upstream/master' into output-damage
2018-01-28 21:22:50 +01:00
Patrick Steinhardt
41ec686693
meson: add systemd/elogind backends only if enabled
...
Right now, we are adding systemd and elogind backends to the build
system as soon as their libraries are found on the build system.
Instead, we should only add them if the libraries have been found _and_
the user has actually requested them to be included.
2018-01-28 16:14:38 +00:00
Guido Günther
d7dfbd23fa
drm: Use ptrdiff_t instead of intmax_t in format string
...
since we're looking at pointer differences.
Otherwise the build fails on arm like
In file included from ../backend/drm/drm.c:19:0:
../include/wlr/util/log.h:34:17: error: format '%jd' expects argument of type 'intmax_t', but argument 7 has type 'int' [-Werror=format=]
_wlr_log(verb, "[%s:%d] " fmt, _strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
^
../backend/drm/drm.c:462:2: note: in expansion of macro 'wlr_log'
wlr_log(L_DEBUG, "%s: crtc=%ju ovr=%jd pri=%jd cur=%jd", conn->output.name,
^~~~~~~
../backend/drm/drm.c:462:39: note: format string is defined here
wlr_log(L_DEBUG, "%s: crtc=%ju ovr=%jd pri=%jd cur=%jd", conn->output.name,
~~^
%d
2018-01-27 12:29:56 +01:00
emersion
7adf13e284
Fix flickering when switching VT
2018-01-27 11:16:42 +01:00
emersion
8d58ed502b
output: add wlr_output_schedule_frame
2018-01-26 22:39:23 +01:00
emersion
ece2c1e4e2
Damage tracking for transformed outputs
2018-01-26 22:11:09 +01:00
Vincent Vanlaer
72507f9820
Clean up session signal handler on drm init fail
2018-01-24 18:27:53 +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
emersion
59c53e8333
Merge remote-tracking branch 'upstream/master' into output-damage
2018-01-21 22:18:06 +01:00
Timidger
f8b9f44ff5
Add con/crtc null check to move_cursor in drm
2018-01-21 15:47:02 -05:00
Timidger
9d4ea146b6
Added crtc null check for other drm funcs
2018-01-21 15:37:23 -05:00
Timidger
4478cf1ddc
Fixes #575
2018-01-21 14:57:24 -05:00
Johannes Schramm
e37ebf6869
style: add comment to empty while loop in logind.c
2018-01-21 17:00:15 +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
emersion
0365b587f0
output: add damage tracking via buffer age
2018-01-21 00:06:35 +01:00
emersion
78c13ead16
backend/x11: force rendering the whole output
2018-01-20 18:10:11 +01:00
emersion
4ca38b84ed
backend/drm: fix hardware cursors not moving
...
This adds back `wlr_output::needs_swap`. This allows a backend to
request buffer swaps even if the output isn't damaged. This is
needed by the DRM backend to trigger pageflips when the cursor
moves.
2018-01-20 16:43:14 +01:00
emersion
584f06ad2f
backend/drm: do not try a pageflip is another one is in pending
2018-01-19 23:46:40 +01:00
emersion
f0f97280a0
backend/drm: fix retry pageflip
2018-01-19 23:35:23 +01:00
emersion
bde255933e
output: add wlr_output::damage, fixes #572
2018-01-18 19:47:21 +01:00
emersion
6fa0a91ee2
backend/wayland: fix segfault in wlr_wl_output_destroy
2018-01-18 13:06:57 +01:00
Drew DeVault
b331c5c2c5
Merge pull request #549 from emersion/output-enabled
...
Add wlr_output::enabled
2018-01-15 20:53:13 -05:00
emersion
0eebaf98d0
drm: do not pageflip when enabling output
2018-01-15 21:49:37 +01:00
Guido Günther
3101c300b1
Don't crash if crtc->cursor is NULL
...
Same as what atomic_crtc_set_cursor does
Core was generated by `_build/rootston/rootston'.
Program terminated with signal SIGSEGV, Segmentation fault.
0 0xb6f28a1c in atomic_crtc_move_cursor (drm=0x1ebc8e8, crtc=0x1ead498, x=0, y=0) at ../backend/drm/atomic.c:170
170 if (!crtc || !crtc->cursor) {
(gdb) bt
0 0xb6f28a1c in atomic_crtc_move_cursor (drm=0x1ebc8e8, crtc=0x1ead498, x=0, y=0) at ../backend/drm/atomic.c:170
1 0xb6f2a856 in wlr_drm_connector_move_cursor (output=0x2242b28, x=0, y=0) at ../backend/drm/drm.c:634
2 0xb6f3cea0 in wlr_output_cursor_set_image (cursor=0x21a0338, pixels=0x22e1290 "", stride=24, width=24, height=24, hotspot_x=4, hotspot_y=4) at ../types/wlr_output.c:516
3 0xb6f39da2 in wlr_cursor_set_image (cur=0x22cfc90, pixels=0x22e1290 "", stride=24, width=24, height=24, hotspot_x=4, hotspot_y=4, scale=1) at ../types/wlr_cursor.c:310
4 0xb6f44d2a in wlr_xcursor_manager_set_cursor_image (manager=0x22cfd10, name=0x434420 "left_ptr", cursor=0x22cfc90) at ../types/wlr_xcursor_manager.c:80
5 0x00431c0a in roots_seat_configure_xcursor (seat=0x22cef08) at ../rootston/seat.c:515
6 0x0043137c in roots_seat_init_cursor (seat=0x22cef08) at ../rootston/seat.c:210
7 0x004315ec in roots_seat_create (input=0x218d220, name=0x434594 "seat0") at ../rootston/seat.c:289
8 0x0042ecba in input_get_seat (input=0x218d220, name=0x434594 "seat0") at ../rootston/input.c:39
9 0x0042ed04 in input_add_notify (listener=0x218d228, data=0x218d3b0) at ../rootston/input.c:54
10 0xb6f2f2e6 in wl_signal_emit (signal=0x1ea548c, data=0x218d3b0) at /usr/include/wayland-server-core.h:387
11 0xb6f2f572 in input_add_reemit (listener=0x1ea9990, data=0x218d3b0) at ../backend/multi/backend.c:101
12 0xb6f2db7e in wl_signal_emit (signal=0x1ea992c, data=0x218d3b0) at /usr/include/wayland-server-core.h:387
13 0xb6f2ddaa in handle_device_added (backend=0x1ea9920, libinput_dev=0x2292598) at ../backend/libinput/events.c:87
14 0xb6f2e164 in wlr_libinput_event (backend=0x1ea9920, event=0x2292b78) at ../backend/libinput/events.c:198
15 0xb6f2d678 in wlr_libinput_readable (fd=23, mask=1, _backend=0x1ea9920) at ../backend/libinput/backend.c:28
16 0xb6f2d7c0 in wlr_libinput_backend_start (_backend=0x1ea9920) at ../backend/libinput/backend.c:74
17 0xb6f27170 in wlr_backend_start (backend=0x1ea9920) at ../backend/backend.c:30
18 0xb6f2f320 in multi_backend_start (wlr_backend=0x1ea5480) at ../backend/multi/backend.c:22
19 0xb6f27170 in wlr_backend_start (backend=0x1ea5480) at ../backend/backend.c:30
20 0x0042fbc6 in main (argc=1, argv=0xbe89dd04) at ../rootston/main.c:60
2018-01-15 13:37:53 +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
53ba9b4eec
Fix output enable in DRM backend
2018-01-07 00:28:21 +01:00
emersion
771263380c
Add wlr_output::enabled
2018-01-04 12:46:15 +01:00
PoroCYon
7574e27c6a
fix build without systemd
2018-01-02 16:39:58 +01:00
Timidger
1478ef3202
Remove display_destroy on multi-backend destroy
2017-12-28 10:54:30 -06:00
Drew DeVault
bb24895a2b
Merge pull request #533 from martinetd/wl_array_add
...
ENOMEM checks: consistently check wl_array_add return
2017-12-28 07:44:21 -08:00
Dominique Martinet
8e24aaa3c6
style: fix sizeof() calls without parentheses
2017-12-28 16:28:19 +01:00
emersion
1e6566e6cd
Fixes for multiple outputs
...
* Fixes output positions in screenshots
* Fixes Wayland backend pointer events when output layout doesn't start at (0, 0)
2017-12-28 15:09:57 +01:00
Björn Esser
ff13849624
config: Avoid clash with other config-headers
2017-12-27 17:13:58 +01:00
Tony Crisci
6c2242e66b
Merge pull request #522 from emersion/fix-drm-output-transform-cursor
...
Fix cursor on transformed output with DRM backend
2017-12-27 05:48:45 -05:00
Björn Esser
57a09c8ca4
config: Put all defines into config.h
2017-12-26 18:51:27 +01:00
emersion
e737f65e38
Fix cursor on transformed output with DRM backend
2017-12-26 18:16:37 +01:00
Michael Weiss
e457967e3f
Add libdrm as a dependency of wlr_backend
...
Without this patch I'm getting the following build error when building
with Nix:
FAILED: backend/wlr_backend@sta/session_direct-ipc.c.o
In file included from ../backend/session/direct-ipc.c:20:0:
/nix/store/9ac27wk5vh47p28gladbdfafpidrx9rh-libdrm-2.4.88-dev/include/xf86drm.h:40:17: fatal error: drm.h: No such file or directory
#include <drm.h>
^
compilation terminated.
2017-12-23 22:49:41 +01:00
Tony Crisci
4cec7f54e2
only add first backend to multi autocreate
2017-12-21 18:38:58 -05:00
Tony Crisci
b4159c52d5
autocreate backend returns null instead of empty
2017-12-21 08:33:34 -05:00
Tony Crisci
d1dce19253
handle display destroy
2017-12-21 08:17:35 -05:00
Tony Crisci
6c8fd6017e
backend add and remove events
2017-12-20 05:54:41 -05:00
Tony Crisci
ee39dff1e7
rootston: handle backend creation failed
2017-12-20 05:51:23 -05:00
Tony Crisci
ca6a0ef1bb
always return multibakend from autocreate
2017-12-19 19:07:33 -05:00
Tony Crisci
58e69c9ce1
multibackend remove subbackend
2017-12-19 18:49:00 -05:00
Tony Crisci
6c75a184e7
subbackend state destroy
2017-12-19 18:40:27 -05:00
Tony Crisci
a937016e38
remove session from multibackend
2017-12-19 18:25:46 -05:00
Tony Crisci
4e804ef40f
add backend destroy event
2017-12-19 18:14:47 -05:00
Dominique Martinet
fcd7062542
x11 backend: add wlr_input_device_is_x11
2017-12-19 20:40:36 +01:00
Dominique Martinet
169bc9fa10
wl backend: add wlr_input_device_is_wl
2017-12-19 20:20:32 +01:00
Dominique Martinet
d9eaca6c9f
headless backend: add wlr_output_is_headless
2017-12-19 20:17:47 +01:00
Dominique Martinet
995383b049
headless backend: add wlr_input_device_is_headless
2017-12-19 20:16:12 +01:00
Dominique Martinet
be95147385
drm backend: add wlr_output_is_drm
2017-12-19 20:13:49 +01:00
Dominique Martinet
dabfe159de
wl backend: add wlr_output_is_wl
2017-12-19 20:13:49 +01:00
Dominique Martinet
f83b16bc17
x11 backend: add wlr_output_is_x11
2017-12-19 20:13:49 +01:00
Dominique Martinet
3e228b0b2a
libinput backend: add wlr_input_device_is_libinput
2017-12-19 20:13:49 +01:00
emersion
4a36ba4bdd
Destroy multi backend on display destroy
2017-12-19 18:28:47 +01:00
Tony Crisci
b5686355f3
add some input device cleanup to x11 backend
2017-12-18 15:54:49 -05:00
emersion
b99d1f4fcc
Refactor wlr_egl_init to accept config_attribs
2017-12-17 23:51:04 +01:00
emersion
bc5bdb7793
Add headless input devices
2017-12-17 18:49:20 +01:00
emersion
0256de0002
Add full refresh rate support to custom modes
2017-12-17 18:02:55 +01:00
emersion
b852fb9a2b
Minimal working headless output
2017-12-17 13:35:07 +01:00
emersion
3970264ccf
Initialize headless backend
2017-12-17 12:56:42 +01:00
emersion
51bbcc0fbf
Fix rootston input on HiDPI outputs in wayland backend
2017-12-15 16:28:04 +01:00
emersion
51db087210
Introduce fractional scaling
2017-12-15 01:00:03 +01:00
Drew DeVault
23fb663ea4
Merge pull request #453 from emersion/surface-transform
...
Add surface transforms support
2017-12-14 14:43:04 -05:00
emersion
466e86b7b2
Merge branch 'master' into surface-transform
2017-12-14 20:31:18 +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
257559d890
Remove output instead of terminating display when a wayland backend view closed
2017-12-13 21:48:59 +01:00
emersion
3b4b8953d9
Update output layout when scale or transform changes
2017-12-12 21:58:00 +01:00
emersion
c67a5824b8
Merge branch 'master' into display-destroy
2017-12-11 16:14:03 +01:00
emersion
529675b7b0
Add wlr_output_set_custom_mode
2017-12-11 12:14:23 +01:00
emersion
6001235b04
Listen to display destroy in session
...
It's not the backend's responsibility to destroy the session anymore.
2017-12-08 11:17:56 +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
91d72040e5
Configure outputs with make, model, serial in rootston
...
Added fallbacks in DRM backend in case EDID extension data for model and serial is missing.
Updates #403
2017-12-07 13:59:19 +01:00
emersion
8af779fae6
Fix segfault when moving hardware cursor
2017-12-05 22:23:01 +01:00
n3rdopolis
8a2d54c24a
Fix style and string comparison
2017-12-02 12:37:28 -05:00
n3rdopolis
a8d8a63fe0
Attempt to fix #454
...
With logind, only seat0 can use TTYs
2017-12-02 10:50:00 -05:00
emersion
6a69b4419f
Make wlr_output_transform_* functions public, refactoring
2017-12-01 09:15:33 +01:00
Moritz
cef6d75491
Moved os-compatibility and added header
...
* Moved os-compatibility.c to util
* Added header under util
* Removed static since it isn't needed (i think so)
* Adjusted meson.build to include lib_wlr
Improved some codestyle
* Added guard to os-compatibility.h
* Fixed typo in include statment
Adjusted Guard
* Changed guard to _WLR_UTIL_OS_COMPATIBILITY
2017-11-30 18:01:13 +01:00
Scott Anderson
bc113c16aa
Use correct include path for glapi.h
2017-11-30 10:32:55 +13:00
Drew DeVault
57a304c750
Merge pull request #447 from ascent12/os-compat
...
Remove unneeded linux include
2017-11-26 18:18:12 -05:00
Scott Anderson
87ea76e037
Remove unneeded linux include
2017-11-27 12:15:38 +13:00
Greg V
1ae944c071
Use SIGUSR2 for vt switching instead of SIGUSR1
...
Xwayland uses SIGUSR1 to signal readiness.
With direct(-freebsd) session and Xwayland, wlroots was confusing the
Xwayland readiness signal with a vt switch signal, freezing the desktop.
Same problem was found in Weston in 2014:
https://phabricator.freedesktop.org/T7080
2017-11-22 16:29:31 +03:00
emersion
016744ef4d
Refactor wlr_list inside wlroots
2017-11-19 00:17:40 +01:00
Tony Crisci
f61986e8db
rename touch slot to touch id
2017-11-16 17:53:52 -05:00
Tony Crisci
900d9dc05e
Merge pull request #422 from emersion/scan-build-fixes
...
Fix a bunch of mistakes detected with scan-build
2017-11-16 06:54:49 -05:00
emersion
bb79ada49f
Fix a bunch of mistakes detected with scan-build
2017-11-16 10:30:54 +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
emersion
09279b90a6
Add wlr_output.serial
2017-11-11 19:09:34 +01:00
Stefano Ragni
f092a37955
Fix typos
2017-11-11 00:45:52 +01:00
Drew DeVault
5f3b27347c
Merge pull request #404 from emolitor/CPP-Compatibility
...
Remove VLA from session.h
2017-11-10 10:18:43 -05:00
Eric Molitor
5be11a5c95
Remove VLA from session.h
...
VLAs are optional C11 features and not supported by C++.
2017-11-10 15:12:00 +00:00
Drew DeVault
66587eb430
Merge remote-tracking branch 'origin/master' into hidpi
2017-11-09 08:36:27 -05:00
emersion
1cee782fec
Fix pointer axis delta in Wayland backend
2017-11-05 13:00:27 +01:00
Drew DeVault
2f6cfe4057
Fix software cursors on scaled outputs
...
There was an issue where it would only work within the boundaries of the
unscaled resolution.
2017-11-04 11:47:34 -04:00
Drew DeVault
6d8e1abfc0
Improve input sensitivity
...
We now use doubles until the last minute, which makes it so we can move
the pointer more precisely. This also includes a fix for tablet tools,
which move absolutely and sometimes do not update the X or Y axis.
2017-11-04 01:35:12 -04:00
Dominique Martinet
b53db8c39e
libinput backend destroy: fix small leak
2017-11-01 21:14:23 +01:00
Dominique Martinet
844b166c1b
multi_backend_destroy: fix trivial use-after-free
2017-11-01 21:14:23 +01:00
Dominique Martinet
43cd3c7aea
Indentation fix
...
Some space sneaked in. tabtabtab.
2017-11-01 20:14:52 +01:00
Dominique Martinet
e3ee2cd9c7
rootston exit: fix libinput destroy
...
The wlr_list -> wl_list rework changed 'wlr_devices' to
wl_list, but missed its use on destroy.
2017-11-01 19:37:35 +01:00
Dominique Martinet
f451ea3639
rootston exit: fix drm destroy
...
wlr_drm_connector were being freed without removing them
from the drm->outputs list, segfaulting on destroy
2017-11-01 19:37:35 +01:00
emersion
a15b35aa10
Remove mysterious hotspot switch in DRM backend
2017-11-01 14:36:58 +01:00
emersion
60c018c017
Fix hidden software cursors, fix cursor transformations on DRM backend
2017-11-01 14:25:41 +01:00
emersion
0beae99188
Apply output transformation to pointer events in Wayland backend
2017-11-01 11:00:27 +01:00
emersion
ec22fe7134
Make wlr_output_interface.enable optional
2017-10-31 15:19:55 +01:00
emersion
2c63aa2056
Destroy x11 output with backend
2017-10-31 14:21:12 +01:00
emersion
c3b09f73da
Fix cursor hotspot with rotated outputs on DRM backend
2017-10-31 12:30:57 +01:00
emersion
95566c6bdf
Transform cursor hotspot, fix wayland cursor hotspot
2017-10-31 12:30:56 +01:00
emersion
6656e25fd4
Transform cursor hotspot
2017-10-31 12:30:56 +01:00
emersion
1b6c729360
Add wlr_output_cursor
2017-10-31 12:30:03 +01:00
Tony Crisci
9cc5166905
bug: free x11 backend output in destroy
2017-10-30 19:23:24 -04:00
Tony Crisci
875a5b446f
remove time usec
2017-10-30 15:43:06 -04:00
Tony Crisci
a224e74fad
refactor input time_sec to time_msec
2017-10-30 06:40:06 -04:00
Drew DeVault
fa9c6ecc53
Fix segfault in DRM cursor
2017-10-28 15:09:38 -04:00
emersion
9d587d759f
Do not set hw cursor if disabled when switching VT
2017-10-26 18:58:44 +02:00
emersion
eea532911a
Send output current mode when changed
2017-10-23 21:03:00 +02:00
Scott Anderson
75f0a6c998
Merge pull request #286 from versusvoid/update-connector-crtc-bindings
...
Update Connector-CRTC bindings after resume in DRM backend
2017-10-23 20:25:40 +13:00
Versus Void
3ed3271b98
Rescan connectors on DRM resume
2017-10-22 21:44:24 +00:00
Versus Void
549777ca19
Set crtc field when scanning for DRM connectors
...
and always use it when matching CRTCs with connectors.
Fix deactivated monitors check.
2017-10-22 21:38:30 +00:00
Versus Void
3c31209a97
Reinitialize only changed DRM outputs after setting mode on one
2017-10-22 21:34:56 +00:00
Versus Void
ecb2a2b0d3
Emit output resolution event only when resolution changes
2017-10-22 21:34:56 +00:00
emersion
1cc8f21d8e
Cleanup wlr_gamma_control
2017-10-22 23:11:26 +02:00
emersion
e1d213fccd
Create globals only for enabled outputs in DRM backend
2017-10-22 22:21:23 +02:00
Drew DeVault
c5fff08f8a
Forgot to rename these
2017-10-22 10:56:40 -04:00
Versus Void
2ab080e79a
Fix index computation in DRM output scan and CRTC match
2017-10-22 10:54:09 +00:00
Drew DeVault
16f35ecbea
Merge branch 'master' into heghe/wl_list
2017-10-21 22:03:48 -04:00
Drew DeVault
169b68b17c
Rename remaining refs to wlr_list
2017-10-21 22:02:36 -04:00
Drew DeVault
24ae081001
Merge pull request #308 from ascent12/render-fixups
...
Render fixups
2017-10-21 18:08:58 -04:00
Scott Anderson
bdeffad7e5
Remove drm field from wlr_drm_connector
2017-10-22 10:36:07 +13:00
Scott Anderson
822a9f65a4
Add pointer to backend inside wlr_output
2017-10-22 10:36:07 +13:00
Scott Anderson
4ea84c5765
Remove unnecesary wlr_renderers
2017-10-22 10:36:07 +13:00
Scott Anderson
9b984253e2
Move egl.h to render/egl.h
2017-10-22 10:36:07 +13:00
emersion
c8570d0e42
Remove wl_list_init when using wl_signal_add
2017-10-21 12:35:51 +02: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
Heghedus Razvan
e1f196a3e9
Replace list_t with wl_list for wlr_input_device
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:50:43 +03:00
Heghedus Razvan
1d716241af
Replace list_t with wl_list in wlr_output
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:46:09 +03:00
Heghedus Razvan
c03e774636
Replace list_t with wl_list in wlr_drm_backend
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:46:03 +03:00
Heghedus Razvan
bde25fe020
Replace list_t with wl_list in wlr_multi_backend
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:45:31 +03:00
emersion
8c5a110d4c
Fix hidden cursor on wayland backend
2017-10-18 19:14:16 +02:00
Drew DeVault
62371a9974
Merge pull request #257 from emersion/fix-client-cursors
...
[WIP] Fix client cursors
2017-10-17 09:22:43 -04:00
D.B
7cdc19d57f
Fix duplicated pointer axis events
...
In pointer.c, some axis event was emitted even if the event pointer did not have
current axis.
In X11 backend pointer scroll events seem to be composed of both BUTTON_PRESS
and BUTTON_RELEASE. Therefore we should skip one of them (RELEASE) to avoid
event duplication.
2017-10-14 07:29:23 +02:00
emersion
19860c03f7
Better handling of hidden cursors in wayland backend, add TODOs
2017-10-12 13:25:29 +02:00
emersion
92daa790bb
Allow to update the cursor hotspot without its pixels
2017-10-12 09:40:51 +02:00
Greg V
a5fe9aa736
Add FreeBSD compatibility
2017-10-11 00:07:21 +03:00
emersion
9b83caa658
Add wlr_output_set_cursor_surface
2017-10-08 21:21:06 +02:00
Drew DeVault
1908d88fab
Merge pull request #236 from ascent12/gl-loader
...
Add GL/EGL extension loader generator
2017-10-08 10:04:33 -04:00
Drew DeVault
2f36e78de1
Merge pull request #240 from acrisci/feature/x11-backend-axis
...
x11-backend: axis events
2017-10-08 10:01:22 -04:00
Tony Crisci
2f2392c39e
x11-backend: create wlr output global
2017-10-08 09:53:53 -04:00
Tony Crisci
6d9b4f330e
x11-backend: axis events
2017-10-08 09:28:23 -04:00
Scott Anderson
c0e5feea37
Add GL/EGL extension loader generator
2017-10-08 13:23:41 +13:00
Tony Crisci
4f848000af
Merge branch 'master' into feature/xdg-popup
2017-10-07 13:04:04 -04:00
Drew DeVault
08ccc7f653
Merge pull request #221 from versusvoid/wayland-xkb_state_update_mask
...
Use xkb_state_update_mask() with Wayland backend
2017-10-06 15:16:10 -04:00
Versus Void
568b270cdf
Use xkb_state_update_mask() with Wayland backend
...
Fix #158
2017-10-06 22:02:29 +00:00
Tony Crisci
4657f10dd2
Merge branch 'master' into feature/xdg-popup
2017-10-06 07:04:27 -04:00
Versus Void
641d08ce7e
Transform hotspot with cursor
...
Fix #188
2017-10-06 09:07:08 +03:00
Tony Crisci
7b697fe841
bug: fix x11 event time
2017-10-05 14:38:12 -04:00
Versus Void
c5df6ca900
Fix memory leaks
2017-10-05 20:01:56 +00:00
Scott Anderson
9ec9edc40d
Check for fd failure properly
2017-10-02 22:01:09 +13:00
Scott Anderson
6cfe47d1d8
Add explicitly picking GPUs with environment var
2017-10-02 21:57:14 +13:00
Scott Anderson
f193623ca1
Change iface prefix to suffix
2017-10-02 21:44:33 +13:00
Scott Anderson
f6f9c40965
Minor fixes
2017-10-01 22:44:24 +13:00
Scott Anderson
009c3747a8
Multi-GPU DRM
2017-10-01 22:29:25 +13:00
Scott Anderson
fa3d0ed929
Change wlr_session to open every GPU
2017-10-01 16:47:05 +13:00
Scott Anderson
eaef028976
Add renderer pointer inside drm_surface
2017-10-01 15:55:25 +13:00
Scott Anderson
4101b89700
Rename wlr_drm_output to wlr_drm_connector
2017-09-30 23:31:08 +13:00
Scott Anderson
22e77d9195
Rename backend to drm
2017-09-30 22:22:26 +13:00
Scott Anderson
ec5b95e08f
Add pointer to backend from DRM outputs
2017-09-30 22:01:59 +13:00
Scott Anderson
096249a2a1
Split DRM rendering to its own file
2017-09-30 20:52:58 +13:00
Scott Anderson
d0708b1a3a
Split DRM internal interface to its own header
2017-09-30 19:11:41 +13:00
Scott Anderson
610b0493ac
Rename files to remove pointless drm prefix
2017-09-30 19:03:34 +13:00
Scott Anderson
c8a8ff66f2
Removed unused fields
2017-09-30 18:53:05 +13:00
Scott Anderson
1b18b0a27d
Fix time and transform
2017-09-29 16:31:04 +13:00
Scott Anderson
68c3806377
Remove unused device interfaces
2017-09-29 16:24:01 +13:00
Scott Anderson
5ca9a5c083
Remove dead code
2017-09-29 16:20:35 +13:00
Scott Anderson
abe549e01d
Cleanup x11 event handler
2017-09-29 16:15:09 +13:00
Scott Anderson
22d5652599
Don't ask for frame immediately after starting
2017-09-29 16:15:09 +13:00
Scott Anderson
6bf508df81
Add closing with WM button
2017-09-29 16:15:09 +13:00
Scott Anderson
ce76cfba0f
Add window resizing
2017-09-29 16:15:09 +13:00
Scott Anderson
e00b4455fe
Add pointer motion
2017-09-29 16:15:09 +13:00
Scott Anderson
fc0e45f2ee
Add mouse button presses
2017-09-29 16:15:09 +13:00
Scott Anderson
8027232ae5
Add timer for rendering loop
2017-09-29 16:15:09 +13:00
Scott Anderson
38bc0ab1cc
Fix keycodes
2017-09-29 16:15:09 +13:00
Scott Anderson
9ca5b0cae8
Add basic input
2017-09-29 16:15:09 +13:00
Scott Anderson
3a5b150df2
Basic rendering
2017-09-29 16:15:09 +13:00
Scott Anderson
bbe90d41bb
Add EGL for X11
2017-09-29 16:15:09 +13:00
Scott Anderson
517ba0bc16
Change egl_get_config to always use visual id
2017-09-29 16:15:09 +13:00
Scott Anderson
7ad2a57feb
Open X11 Window
2017-09-29 16:12:13 +13:00
Scott Anderson
a598e6d026
Add X11 backend skeleton
2017-09-29 16:12:13 +13:00
Tony Crisci
0f56326cb8
fix libinput wlr-keyboard use after free
2017-09-28 20:29:26 -04:00
Drew DeVault
7cf4ee128e
Merge remote-tracking branch 'origin/master' into rootston
2017-09-27 20:25:34 -04:00
Drew DeVault
d7d73cd298
Merge pull request #144 from ascent12/drm-dp-mst
...
DisplayPort MST
2017-09-27 07:58:01 -04:00
Drew DeVault
61e451ea1b
Move keyboard logic to wlr_{keyboard,seat}
2017-09-24 14:12:56 -04:00
Scott Anderson
c8c5aedaa2
Add error checking to DRM legacy
2017-09-24 12:19:49 +13:00
Scott Anderson
419400ae00
Send failure code on partial atomic commit
2017-09-24 12:09:17 +13:00
Scott Anderson
a466c86fba
Set state properly
2017-09-24 12:06:00 +13:00
Drew DeVault
0699aa62d8
Initial pass on roots_input
2017-09-23 10:13:05 -04:00
Scott Anderson
db5e9385d4
Simplify retry_pageflip
2017-09-23 18:44:39 +12:00
Scott Anderson
025b3ee515
Add error recovery for failed page flips
2017-09-23 18:27:14 +12:00
Scott Anderson
459d138fa2
Add timeout to DRM cleanup
...
This prevents a potential infinite loop preventing us from closing
properly.
2017-09-23 16:32:25 +12:00
Drew DeVault
b6d7c3ed8e
Initialize display, backend; add frame handling
2017-09-23 00:30:39 -04:00
Scott Anderson
8cbade355f
Print connector name on atomic commit failure
2017-09-23 13:38:43 +12:00
Scott Anderson
4a53aab466
Allow forcing legacy DRM interface
2017-09-23 13:20:17 +12:00
dudemanguy
175f89f4ff
Add elogind support
...
Resolves SirCmpwn/wlroots#146
2017-09-22 12:02:55 -05:00
Drew DeVault
9fa822c666
Fix minor typos
2017-09-17 18:29:52 -04:00
Scott Anderson
1682c0d983
Remove non-blocking flag on modesetting commits
...
This seems to make hotplugging DisplayPort MST connectors more reliable.
2017-09-10 00:13:39 +12:00
Scott Anderson
6717b78bd6
Retry atomic commit on failure
...
So we don't lose any previously "good" properties that were set.
2017-09-09 23:10:18 +12:00
Scott Anderson
0aa00da1f3
Check for disappearing DRM connectors
...
DisplayPort MST connectors will disappear when they're disconnected, so
we need to check for that.
2017-09-09 23:09:51 +12:00
emersion
6f98b5a337
Add set_gamma and get_gamma_size to wlr_output_impl
2017-09-06 18:53:08 +02:00
Tony Crisci
368f74e4df
Refactor meson build files
...
Use tabs for indentation and break up function calls over 80 col.
2017-08-30 14:30:47 -04:00
Drew DeVault
6daf9e9ab2
Merge pull request #120 from acrisci/feature/wlr-cursor
...
wlr_cursor
2017-08-29 12:12:18 -05:00
Tony Crisci
df0ee7f25f
implement tablet tool devices
2017-08-28 10:23:14 -04:00
Tony Crisci
c914697676
add device to touch events
2017-08-27 11:44:55 -04:00
Tony Crisci
98f4cdfccb
implement wlr_cursor_map_input_to_output
2017-08-26 08:32:11 -04:00
Tony Crisci
e3d47376dc
add wlr_cursor basic implementation
2017-08-26 08:32:11 -04:00
Scott Anderson
d16b2977f6
Remove single GPU assumptions from wlr_session
2017-08-26 14:50:16 +12:00
Scott Anderson
fb93628bda
Merge wlr_udev into wlr_session
2017-08-26 14:02:04 +12:00
Scott Anderson
46823152ea
Rename functions to be consistent with #93
2017-08-26 11:56:43 +12:00
Dominique Martinet
062d923b0a
wayland backend: wl_event_source_remove on destroy
2017-08-19 09:31:06 +02:00
Dominique Martinet
f24b3df980
wlr renderer/texture: rename init to create when it does alloc
2017-08-19 08:33:31 +02:00
Dominique Martinet
12782eabfe
libinput: wl_event_source_remove on destroy
2017-08-19 08:33:31 +02:00
Dominique Martinet
58efb8f90a
wayland backend: remove explicit scale = 1
...
This is now set correctly in the wlr_output init
2017-08-19 07:38:45 +02:00
Dominique Martinet
0252c8e072
drm realloc_crtcs: check we found an output
...
This follows-up on #105 that just initialized to 0.
Instead, make sure we actually found an output that matches
2017-08-18 18:27:59 +02:00
Tony Crisci
784cf65635
fix uninitialized warning
...
`index` might be uninitialized. Warning can be produced with gcc and `-01` flag.
2017-08-18 12:08:28 -04:00
Dominique Martinet
e2e149784b
wayland backend: fix xdg-shell for weston
...
- xdg toplevel configure can be called with 0 width/height,
in that case we are free to do as we like (so do nothing)
- need a display roundtrip after everything is setup but before
we start attaching buffers to the surface
2017-08-17 10:36:43 +02:00
Dominique Martinet
3377e5e4f2
wayland backend: fix xdg-shell for gnome
...
Calling wl_surface_commit after setting up the xdg_toplevel is
apparently good enough for them.
Still missing something for weston.
2017-08-17 10:24:27 +02:00
Dominique Martinet
fb05923eaa
wayland backend: Fix shell title/app_id to wlroots
2017-08-17 10:24:27 +02:00
Dominique Martinet
4f3d21c3ff
wayland output: add error handling for xdg shell
...
Note that this does not go on to the next backend, because
attempt_wl_backend does not check if we have any output created.
We cannot test simply because (right now) a run of our examples will go
in this function twice, the first of which will (rightly?) return no
display but needs to return backend creation success.
2017-08-17 10:24:27 +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
e7fa4f12e1
Fix DRM problem introduced in 901c14c
2017-08-16 17:36:57 -04:00
Drew DeVault
beb84940cf
Improve no device detection support
2017-08-16 07:24:46 -04:00
Drew DeVault
3ac10a81bd
Merge pull request #94 from martinetd/libinput_no_device
...
libinput: fail if no input found on init
2017-08-16 07:22:36 -04:00
Calvin Lee
901c14c409
Prevent alloc errors from crashing in `list_t`
...
This commit changes the `list_t` api so that alloc errors can be
detected and worked around. Also fixes errors not found in 5cc7342
2017-08-16 09:23:21 +02:00
Dominique Martinet
880c239657
libinput: fail if no input found on init
...
This runs through events pending at init on initialization so we can
tell if some devices are available.
Note that with the way wlr_device_lists is managed, this checks that
there is at least one device we handle - it doesn't have to be a
keyboard, but there is at least a mouse or tablet_pad or something
that we care about.
Instead of failing inconditionally it might be better to leave the
decision to the user, e.g. add a "backend_has_devices" function to
call later.
(Tested by moving /dev/input off)
Fixes #24 .
2017-08-16 09:18:12 +02:00
Drew DeVault
27c13d621d
Merge pull request #88 from 4e554c4c/alloc_crashing
...
Prevent alloc errors from crashing
2017-08-15 12:21:58 -04:00
Drew DeVault
d2e796edb7
Merge pull request #86 from nyorain/master
...
Fix style issues
2017-08-15 07:18:22 -04:00
Calvin Lee
5cc7342606
Prevent alloc errors from crashing
...
Resolves #76
2017-08-15 08:04:57 +02:00
nyorain
d7dcbbc175
Add wayland backend cursor support
2017-08-14 18:02:05 -04:00
nyorain
f998bb8299
Fix style issues
2017-08-14 17:09:56 +02:00
Dominique Martinet
e922e62924
wayland input_device_destroy: add missing braces
2017-08-14 16:30:10 +02:00
Dominique Martinet
4bbf718e7d
impl->destroy cleanup:
...
- remove trivial destroy() function
- make sure we check impl and impl->destroy before calling
- always call free if not implemented
2017-08-14 16:22:31 +02:00
Dominique Martinet
ba20d5b3ca
Refactor out wlr_touch_state
2017-08-14 16:22:31 +02:00
Dominique Martinet
bd67849c03
Refactor out wlr_tablet_tool_state
2017-08-14 16:22:31 +02:00
Dominique Martinet
a289940bff
Refactor out wlr_tablet_pad_state
2017-08-14 16:22:31 +02:00
Dominique Martinet
53e7bebd23
Refactor out wlr_pointer_state
2017-08-14 16:22:31 +02:00
Dominique Martinet
0a3246ad97
Refactor out wlr_keyboard_state
2017-08-14 16:22:31 +02:00
Dominique Martinet
e6ad67911b
Refactor out wlr_input_device_state
2017-08-14 16:22:31 +02:00
Dominique Martinet
9a9dd15d5f
Fix wlr_multi_backend_add incorrect assert
2017-08-14 15:01:59 +02:00
Drew DeVault
c8c6619146
Refactor out wlr_output_mode_state
2017-08-14 08:03:51 -04:00
Calvin Lee
de66bdb867
Add backend detection functions
...
Resolves #80
2017-08-13 23:08:33 +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
Drew DeVault
43fb40e949
Merge pull request #79 from martinetd/libinput_renaming
...
Libinput renaming
2017-08-13 08:29:42 -04:00
Drew DeVault
e6a7817e45
Fix build on systems without systemd
2017-08-13 08:21:57 -04:00
Dominique Martinet
5c82d2f5c3
libinput backend: massive renaming
...
- 'libinput' (backend's) to libinput_context
- 'device' (libinput_device) to libinput_dev
- 'dev' (wlr_device) to wlr_dev
- 'devices' lists tangling of libinput devices to wlr_devices
- 'devices' list of wlr_devices in backend state to wlr_device_lists
2017-08-13 08:18:05 +02:00
Dominique Martinet
08a2afdf6f
libinput backend: match logging for removal and add
...
Only log removal of devices once, but also log it for devices
that we do not care about.
2017-08-13 08:09:11 +02:00
Dominique Martinet
701e147b9b
libinput: remove useless get_context call
...
That function is literally just "return event->device->seat->libinput"
We do not use context, so do not fetch it.
2017-08-13 08:07:44 +02: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
60d1131df2
Re-enable backend autoselection
2017-08-12 19:56:55 -04:00
Drew DeVault
234b2104e4
Refactor wlr_backend_state out of DRM backend
2017-08-12 19:52:22 -04:00
Drew DeVault
c95a108d2f
Update libinput backend with new state design
2017-08-12 13:51:47 -04:00
Drew DeVault
81cd90297d
Refactor out wlr_backend_state from wl/multi
2017-08-12 11:43:36 -04:00
Dominique Martinet
3e2cb5b5cf
libinput: fix segfault when handling non-wlr device removal
2017-08-12 15:13:29 +02:00
Dominique Martinet
3ea878b76e
wayland backend: free seatName
2017-08-12 01:19:45 +02:00
Dominique Martinet
8427749dd0
wayland backend: emit signal for input/output removal
2017-08-12 01:16:12 +02:00
Dominique Martinet
de86965174
Use libinput_event_destroy/xkb_*_unref
...
Also sneak in a missing drmModeFreePlaneResources
2017-08-12 00:11:18 +02:00
Dominique Martinet
e1293a7853
libinput: signal input remove on libinput backend destroy
...
This lets the upper crust cleanup and free their own states
2017-08-12 00:11:18 +02:00
Dominique Martinet
be3a0ad065
libinput backend: fill in handle_device_removed
...
And fix input_remove_notify accordingly
2017-08-12 00:11:18 +02:00
Dominique Martinet
c42674bc25
Fix libinput destroy for devices with multiple capabilities
2017-08-11 21:02:40 +02:00
Dominique Martinet
0354aaeff2
Complete a few destroy functions
...
This adds missing free calls for:
- drm outputs
- libinput backend in general
- final udev free
- output mode state
2017-08-11 19:17:03 +02:00
Dominique Martinet
0663b6d1e1
Build libinput events on the stack instead of allocating
2017-08-11 18:38:27 +02:00
Drew DeVault
62d8b252c0
Refactor meson and move xdg-shell into wlroots
2017-08-11 09:37:09 -04:00
Drew DeVault
6569c2b626
Merge pull request #53 from nyorain/drm_buffer
...
Implement drm (egl) buffer attaching
2017-08-10 22:20:21 -04:00
Drew DeVault
c24351681f
Refactor EGL handling
2017-08-10 22:15:37 -04:00
Scott Anderson
fe2fbd0fad
Fix possible use of CRTC after monitor is unplugged
2017-08-11 11:12:41 +12:00
Drew DeVault
4aaf76cb66
wlr_output_update_matrix during wl backend init
2017-08-10 13:27:14 -04:00
nyorain
073dff63da
Fix style issues
2017-08-10 11:05:18 +02:00
nyorain
67369173aa
Implement drm (egl) buffer attaching
2017-08-10 10:59:58 +02:00
Scott Anderson
a77fac0760
Added null check on crtc
2017-08-10 01:43:42 +12:00
Scott Anderson
af67966d92
Atomic modesetting
2017-08-09 08:07:00 -04:00
nyorain
e167f41fde
Rename wlr_surface -> wlr_texture; attach -> upload
2017-08-08 18:25:16 +02:00
Scott Anderson
d09ca20a4d
Use gbm_bo_map for cursor
2017-08-07 21:07:42 +12:00
Scott Anderson
dbe66d1963
Style changes
2017-08-07 10:15:05 +12:00
Scott Anderson
5f7042a1f2
Moved headers
2017-08-06 21:49:04 +12:00
Scott Anderson
d307c2f2c2
Renamed some variables to be less generic
2017-08-06 21:42:36 +12:00
Scott Anderson
1db97a9af9
Updated DRM cursor rendering
2017-08-06 21:38:40 +12:00
Scott Anderson
aedfa27d3a
Clean up resources when plane is reassigned
2017-08-06 15:54:38 +12:00
Scott Anderson
2f8b5c4448
More cleanups
2017-08-06 15:53:41 +12:00
Scott Anderson
dd7a349295
Various cleanups
2017-08-06 15:51:49 +12:00
Scott Anderson
d1ca1ec16e
Split off some functions into drm-util
2017-08-06 15:51:49 +12:00