Commit Graph

393 Commits

Author SHA1 Message Date
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