Commit graph

808 commits

Author SHA1 Message Date
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
Scott Anderson
c46605d605 Use plane for rendering 2017-08-06 15:50:23 +12:00
Scott Anderson
e16c5504cd Add planes. 2017-08-06 15:49:05 +12:00
Scott Anderson
67b51f0922 Upgraded CRTC and Encoder matching 2017-08-06 15:49:05 +12:00
Scott Anderson
31867a1b2e Various changes/cleanups 2017-08-06 15:49:05 +12:00
Scott Anderson
7b772e1a4b DRM resource initalisation 2017-08-06 15:49:02 +12:00
Scott Anderson
601bbad5d8 Added DRM property infrastructure 2017-08-06 15:47:00 +12:00
Drew DeVault
5bf61ca7ed Check for multi backend before using it 2017-08-05 23:08:35 -04:00
Drew DeVault
f1a069d50d Log that the X11 backend is unimplemented 2017-08-05 23:03:56 -04:00
Scott Anderson
4d4da18437 Fixed VT switching 2017-08-06 13:37:49 +12:00
Scott Anderson
3373ec5fc8 Update build files 2017-08-06 13:30:18 +12:00
Scott Anderson
cb4d50e22c Changed header paths. 2017-08-06 13:25:26 +12:00
Scott Anderson
2ae5cd6539 Moved session/ into backend/ 2017-08-06 13:25:26 +12:00
Scott Anderson
ae4478e17f Changed ownership of wlr_session to the multi backend.
Currently breaks VT switching for examples.
2017-08-06 13:25:26 +12:00
nyorain
fdab81e1c9 Use meson build system 2017-08-05 22:34:24 +02:00
Tony Crisci
d822e0768b Use ARGB8888 pixel format for cursor bo
The previous pixel format (RGBA8888) is not supported on all devices for cursors.

Weston uses ARGB8888 exclusively for its cursor buffer object which leads me to
believe this pixel format is better supported.
2017-07-27 17:55:35 -04:00
Tony Crisci
8b6dc48355 bugfix: add null check on output gbm on pageflip
The gbm for the output might be null for the pageflip in the case that
the output has been disconnected. The gbm might be set to null by
wlr_drm_output_cleanup() in this case.

If the output is cleaned up before the pageflip, then a double free
will crash the compositor on the call to gbm_surface_release_buffer()
in the pageflip handler. The outputs buffer object bo[1] will point to
invalid memory.
2017-07-24 19:50:13 -04:00
Drew DeVault
b08aa9fd35 Revert "Merge pull request #27 from ascent12/meson"
This reverts commit 85805da021, reversing
changes made to 8189c64d7f.
2017-07-11 22:16:56 -04:00
Scott Anderson
a2ba226ba3 Use subdir 2017-07-11 09:56:54 +12:00
Scott Anderson
924bf0f669 Changed build system to meson 2017-07-11 00:28:56 +12:00
Drew DeVault
97f6e9b69a Remove excessive logging in wayland backend 2017-06-28 16:35:18 -04:00
Drew DeVault
97213cc00e Add new interfaces to wayland backend 2017-06-26 18:23:38 -04:00
Drew DeVault
038dfdbc85 Log max cursor size on error 2017-06-26 10:34:26 -04:00
Scott Anderson
82322d81a7 Hardware cursor improvements. 2017-06-26 19:32:36 +12:00
Scott Anderson
0cd94f0cf0 Added software cursor fallback 2017-06-26 17:34:15 +12:00
Drew DeVault
b18209c904 Switch to GLES2
Closes #13
2017-06-23 11:38:45 -04:00
Drew DeVault
168f0955ab Add wl_output globals for wlr_outputs 2017-06-22 14:27:35 -04:00
nyorain
4ca872c914 Improve wayland backend pointer error logging 2017-06-22 18:04:13 +02:00
nyorain
dbde1f7340 Store wayland backend axis source 2017-06-22 17:58:53 +02:00
nyorain
272030652a Implement absolute motion events for wayland 2017-06-22 17:55:00 +02:00
nyorain
d26a9ba968 Fix pointer motion coords 2017-06-22 17:12:09 +02:00
nyorain
c1520077b6 Implement wayland backend input events 2017-06-22 16:53:48 +02:00
nyorain
0b8e6cccc8 Add wayland input listener skeletons 2017-06-22 15:41:59 +02:00
Drew DeVault
3d71969b2a Make event names consistent 2017-06-21 14:07:09 -04: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
Scott Anderson
55854565dc Fixed VT switching 2017-06-21 13:31:29 +12:00
Scott Anderson
091de12bf4 Changed session signal to only emit on DRM changes 2017-06-21 12:47:53 +12:00
Drew DeVault
c2d0090ad7 Support multiple wl backend outputs 2017-06-20 18:22:21 -04:00
Drew DeVault
b2bf5b23b9 Implement output_transform for wl backend 2017-06-20 18:02:00 -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
Drew DeVault
c9d5a0b2fb Clean up Wayland backend GL context and such 2017-06-20 15:29:27 -04:00
nyorain
51f35e7af0 Cleanup some leaks/incorrect destructions 2017-06-20 19:01:20 +02:00
nyorain
500e9184f1 Fix egl workaround; Test with weston 2017-06-20 18:44:11 +02:00
nyorain
50ce35e9da Implement wayland backend output 2017-06-20 18:27:05 +02:00
nyorain
62b1421635 Make egl_error function part of the egl interface
The function may be useful for backends using egl.
2017-06-20 18:26:29 +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
e65ca967f9 Merge branch 'master' into wayland-backend 2017-06-19 21:22:42 +02:00
Drew DeVault
632a04f1b7 Implement keyboard LEDs 2017-06-19 15:15:37 -04:00
Drew DeVault
ecb04afcad Implement tablet pads 2017-06-19 14:49:07 -04:00
Drew DeVault
e9609e9adf Allocate framebuffers for hardware cursors
Still doesn't fix cursors though
2017-06-19 14:02:25 -04: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
41a477375c Merge branch 'libinput' into wayland-backend 2017-06-19 17:49:26 +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
7e038a6110 Add (broken) DRM hardware cursors 2017-06-16 15:38:34 -04:00
Drew DeVault
def3d7c64f Add tablet example 2017-06-15 16:15:12 -04:00
Drew DeVault
4a9966b1a4 Implement wlr_tablet_tool 2017-06-15 14:32:53 -04:00
Drew DeVault
e65f83d7f2 Add more DRM info to wlr_output
Yes I know this is the libinput branch, I thought this would be useful
for a libinput feature (but it wasn't)
2017-06-14 16:17:05 -04:00
Drew DeVault
3f24f8a1be Flesh out touch events and add demo 2017-06-14 14:50:09 -04:00
Drew DeVault
d6905f86cb Allocate wlr_touch devices 2017-06-14 11:40:03 -04:00
Drew DeVault
a63230e59c Implement libinput wlr_pointer 2017-06-13 11:05:45 -04:00
Drew DeVault
e257afeb7e Establish multi backend support 2017-06-13 08:10:36 -04:00
Drew DeVault
5dd96c0772 Incorporate XKBCommon into example 2017-06-13 08:10:36 -04:00
Drew DeVault
508d135de7 Only allocate device state when it will be used
This design also avoids double frees in the future when we're creating
several wlr_input_devices from one libinput_device.
2017-06-13 08:10:36 -04:00
Drew DeVault
7a5f35b5bb Reassign ownership of libinput handle 2017-06-13 08:10:36 -04:00
Drew DeVault
f479b7c8c7 Split keyboard code out into its own file 2017-06-13 08:10:36 -04:00
Drew DeVault
59ceaf507e Handle key presses 2017-06-13 08:10:36 -04:00
Drew DeVault
0e75d157f5 Initialize keyboards from libinput 2017-06-13 08:10:36 -04:00
Drew DeVault
019fff06be Fix issues, flesh out event handling somewhat 2017-06-13 08:10:36 -04:00
Drew DeVault
af69591e62 Add error handling and init in backend_autocreate 2017-06-13 08:10:36 -04:00
Drew DeVault
1262f1400c Initial pass on libinput backend 2017-06-13 08:10:22 -04:00
Drew DeVault
325a331425 Fix some build errors 2017-06-12 22:45:25 -04:00
Drew DeVault
2b06f88f0b Combine internal DRM headers into one
Everything always just included both anyway
2017-06-10 12:30:02 -04:00
Scott Anderson
63c3faa006 Fixed rendering bug: Delay calling gbm_surface_release_buffer until it
has been scanned out.
2017-06-09 17:15:55 +12:00
Scott Anderson
382f712792 Merge remote-tracking branch 'upstream/master' into rotation 2017-06-08 00:52:33 +12:00
Scott Anderson
632a7acb03 Filled out more wlr_output fields. 2017-06-08 00:39:40 +12:00
Drew DeVault
6f5c70ac69 Let backend track transform state
This will be necessary to provide it to clients via wl_output.
2017-06-06 11:48:30 -04:00
Scott Anderson
c97de93fe1 Added output rotation example 2017-06-05 22:48:51 +12:00
Drew DeVault
7d82476590 Refactor type implementations 2017-06-04 19:30:50 -04:00
Scott Anderson
5df56653ab Changed invalidate interface. 2017-06-04 17:43:34 +12:00
Scott Anderson
de44994dfc Udev event device matching 2017-06-03 15:47:33 +12:00
Drew DeVault
40b85d992a Refactor udev and drm initialization 2017-06-01 20:29:10 -04:00
ascent12
62d612a01e Merge branch 'master' into session 2017-06-01 23:10:19 +12:00
Drew DeVault
ae77004346 Add more logging around udev 2017-05-31 16:53:59 -04:00
Drew DeVault
e2ee67125e s/wayland.h/types.h/g 2017-05-31 16:24:32 -04:00
Drew DeVault
c7f6981d9c Clean up outputs on exit 2017-05-31 16:17:04 -04:00
Drew DeVault
579909a368 Promote types to a standalone subproject 2017-05-31 15:43:13 -04:00
Drew DeVault
fee409bd0a Generalize DPMS, remove DRM refs from example 2017-05-31 15:38:26 -04:00
Drew DeVault
03c9b46034 Have backend manage opengl context 2017-05-31 15:15:42 -04:00
Scott Anderson
f9d363fece Added device matching 2017-05-14 13:07:34 +12:00
Scott Anderson
7efdd3c9fc Refactored renderer startup to function. 2017-05-14 12:48:47 +12:00
Scott Anderson
ce8786721b Got it working. 2017-05-14 12:42:49 +12:00
Scott Anderson
058b8bdf27 Working commit 2017-05-14 12:42:49 +12:00
Scott Anderson
409065ba2e Changed to signed 2017-05-14 01:26:43 +12:00
Scott Anderson
eac603bfdf Merge branch 'master' into refresh 2017-05-14 01:24:09 +12:00
Scott Anderson
3000b8615f More accurate refresh rates (mHz) 2017-05-13 22:27:25 +12:00
Scott Anderson
599d1bcbdc DPMS support 2017-05-13 20:37:15 +12:00
Drew DeVault
42878b45a1 Remove unnecessary TODO 2017-05-10 10:36:37 -04:00
Drew DeVault
00931f2f8f Generalize output handling 2017-05-07 12:26:48 -04:00
Drew DeVault
15b1ce9e6c Refactor backend state management 2017-05-07 10:12:54 -04:00
Scott Anderson
7e9feb70a0 Fixed hotplugging + make EGL more chatty. 2017-05-04 21:58:11 +12:00
Scott Anderson
ef9768858e Changed modesetting interface. 2017-05-03 22:41:49 +12:00
Scott Anderson
d196a79b6c Changed backend to accept wl_display. 2017-05-03 21:28:44 +12:00
Scott Anderson
18387468bb Renamed 'wlr_drm_display' to 'wlr_drm_output' 2017-05-03 17:49:03 +12:00
Scott Anderson
15d247bf34 Changed drm to use new EGL interface. 2017-05-03 17:17:14 +12:00
Scott Anderson
dbceaee9fa Added EGL interface for backends. 2017-05-03 17:04:41 +12:00
Scott Anderson
81998fdc98 Removed old session code from DRM backend. 2017-05-03 16:23:07 +12:00
Scott Anderson
e446a5300b Added example. 2017-05-02 18:13:17 +12:00
Scott Anderson
e9d716fc0c Changed display to use list_t. 2017-05-02 14:34:33 +12:00
Scott Anderson
115d4ae637 Changed events to use wayland functions. 2017-05-02 14:08:34 +12:00
Scott Anderson
562d43a5ec Changed logging. 2017-05-02 13:00:25 +12:00
Scott Anderson
41a82fd2fc Renaming. 2017-05-01 17:49:18 +12:00
Scott Anderson
9ac46ec5ed Got it to build 2017-05-01 15:50:19 +12:00
Scott Anderson
95a553dc51 Moved headers to the correct place. 2017-05-01 15:33:42 +12:00
Scott Anderson
aca13320b3 Inital commit of libotd. 2017-05-01 15:20:48 +12:00
Drew DeVault
1aed987301 Add free functions for allocated resources 2017-04-25 21:26:29 -04:00
Drew DeVault
1e8970b4a9 Flesh out wl_seat and fix some bugs 2017-04-25 19:33:13 -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