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
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