Commit Graph

417 Commits

Author SHA1 Message Date
Scott Anderson 51a283cbe4 backend/x11: Rename xcb_conn to xcb
When the Xlib connection is removed, this _conn suffix is going to be
pointless. I'm removing this preemtively for that.
2018-11-13 10:39:24 +13:00
Drew DeVault 77dfac4fa4
Merge pull request #1372 from emersion/config10
Use #if instead of #ifdef for wlroots config data
2018-11-12 16:14:18 -05:00
emersion 51bfdd620e
Use #if instead of #ifdef for wlroots config data
This prevents some annoying issues when e.g. not including wlr/config.h or
making a typo in the guard name.
2018-11-12 10:12:46 +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 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
Scott Anderson 93a496f3a8 Include wlr/config.h in x11.h
This fixes a warning from the linker when using LTO, due to mismatched
types.
2018-10-12 09:46:35 +13:00
Scott Anderson 885586a831
Merge pull request #1280 from emersion/drm-link-status
backend/drm: add support for the link-status property
2018-10-08 21:01:30 +02:00
emersion 54e1287f30 backend: add get_present_clock 2018-10-04 21:58:17 +02:00
emersion f5a147b739 backend/drm: add support for the link-status property 2018-10-04 21:54:27 +02:00
Drew DeVault 841d04db99
Merge pull request #1262 from nyorain/session_fix
Improve session handling
2018-10-04 17:36:39 +02:00
emersion e88db9a3fb backend/drm: reset gamma table on VT switch 2018-10-03 10:53:35 +02:00
emersion 2beb68007e output: make gamma size a size_t and gamma table const 2018-10-03 10:36:33 +02:00
emersion 79dd9ba151 backend/drm: don't free connector immediately
When a pageflip is pending, we'll get a DRM event for the connector
in the future. We don't want to free the connector immediately
otherwise we'll use-after-free in the pageflip handler.

This commit adds a new state, "DISAPPEARED". This asks the pageflip
handler to destroy the output after it's done pageflipping.
2018-09-28 10:00:40 +02:00
nyorain 7b52388424 Rework session handling
Sessions can now be retrieved from a backend in a more general manner.
Multi-backend gets back its `session` field that contains the session
if one was created, removing the interfacing from multi backend with the
drm backend directly. This adds the possibility to use sessions even
without the drm backend.

It additionally fixes the bug that 2 session objects got created when
WLR_BACKENDS were set to "libinput,drm".

To allow vt switching without drm backend (and drm fd) on logind, start
listening to PropertiesChanged signals from dbus and parse the session
"Active" property when no master fd was created (this does not change
current drm backend behaviour in any way).
2018-09-24 23:35:09 +02:00
emersion 139a905924 backend/drm: add assertions 2018-09-18 11:06:01 +02:00
emersion 02231554c8 backend/x11: add assertions 2018-09-18 11:06:01 +02:00
emersion e98cb7c5ab backend/wayland: add assertions 2018-09-18 11:06:01 +02:00
emersion 7bcf0d9599 backend/libinput: add assertions 2018-09-18 11:05:55 +02:00
emersion bc34486c04 backend/headless: add assertions 2018-09-18 11:01:53 +02:00
emersion f8a50e4fe7 backend/drm: steal CRTCs from disabled outputs
This commit allows outputs that need a CRTC to steal it from
user-disabled outputs. Note that in the case there are enough
CRTCs, disabled outputs don't loose it (so there's no modeset
and plane initialization needed after DPMS). CRTC allocation
still prefers to keep the old configuration, even if that means
allocating an extra CRTC to a disabled output.

CRTC reallocation now happen when enabling/disabling an output as
well as when trying to modeset. When enabling an output without a
CRTC, we realloc to try to steal a CRTC from a disabled output
(that doesn't really need the CRTC). When disabling an output, we
try to give our CRTC to an output that needs one. Modesetting is
similar to enabling.

A new DRM connector field has been added: `desired_enabled`.
Outputs without CRTCs get automatically disabled. This field keeps
track of the state desired by the user, allowing to automatically
re-enable outputs when a CRTC becomes free.

This required some changes to the allocation algorithm. Previously,
the algorithm tried to keep the previous configuration even if a
new configuration with a better score was possible (it only changed
configuration when the old one didn't work anymore). This is now
changed and the old configuration (still preferred) is only
retained without considering new possibilities when it's perfect
(all outputs have CRTCs).

User-disabled outputs now have `possible_crtcs` set to 0, meaning
they can only retain a previous CRTC (not acquire a new one). The
allocation algorithm has been updated to do not bump the score
when assigning a CRTC to a disabled output.
2018-09-15 08:37:33 +02:00
emersion cb293f09e7 output: make wlr_output_enable return a bool 2018-09-14 18:18:07 +02:00
emersion b877daded1 backend/drm: better hotplug handling
This commit handles better situations in which the number of
connected outputs is greater than the number of available CRTCs.
It'll enable as many outputs as possible, and transfer CRTCs to
outputs that need one on unplug.

This changes CRTC and plane reallocation to happen after scanning
DRM connectors instead of on modeset.

This cleanups CRTCs and planes on unplug to allow them to be
re-used for other outputs.

On modeset, if an output doesn't have a CRTC, the desired mode is
saved and used later when the output gains a CRTC.

Future work includes giving priority to enabled outputs over
disabled ones for CRTC allocation. This requires the compositor to
know about all outputs (even outputs without CRTCs) to properly
modeset outputs enabled in the compositor config file and disable
outputs disabled in the config file.
2018-09-04 15:09:07 +02:00
Ilia Bozhinov 4486b52aa8 move wlr_drm_connector_add_mode to wlr/backend/drm.h 2018-08-13 10:55:42 +03:00
Markus Ongyerth d9e978e1b3 rename wlr_tablet_tool to wlr_tablet
The previous naming was based on the input-device capability names from
libinput.
With code that uses the libinput_tablet_tool and mapping into tablet-v2,
this is confusing, so the name is changed to follow the names used in
the protocol.
2018-07-14 09:49:58 +02:00
Markus Ongyerth adba68a3c1 Use tablet_tool impl in libinput backend 2018-07-14 09:43:16 +02:00
Markus Ongyerth 000b305ecc backend/libinput: Manage tablet tool livetimes
This adds the management code to manage tablet tools lifetimes from
libinput.
It follows the suggestion made in the tablet-unstable-v2.xml to destroy
tablet_tools once all tablets that it got into contact with were removed
from the system. This is implemented via a refcount.

If a tool is *not* unique, it will be destroyed on proximity out. This
is libinput specific and mentioned in libinput docs that tools will not
be found again, so we shouldn't keep a reference to them.
Also they can't be on other tablets as well, because they cannot be
tracked.

The naming in this commit is a bit off (to not break things).
The wlr names stay the same, tablet_tool is the libinput_device with
capaiblity LIBINPUT_DEVICE_CAP_TABLET_TOOL which is more akin to
"tablet" in the tablet-unstable-v2 protocol.
The struct that corresponds to the tablet_tool in tablet-unstable-v2 is
called tablet_tool_tool, a rename should be done at some point in the
future.
2018-07-14 09:40:39 +02:00
Guido Günther 8d72090afe drm: Allow to add additional modes
This allows to add additional modes to the list of available video modes
using VESA Coordinated Video Timing information.

Closes #1080
2018-07-07 14:51:39 +02:00
emersion 21928cbe61
Merge branch 'master' into screencontent 2018-05-31 12:33:27 +01:00
emersion bd430b8620
backend/drm: support multi-planar DMA-BUFs when exporting 2018-05-29 18:47:17 +01:00
emersion 9e26808c28
output, backend/drm: add wlr_output_export_dmabuf 2018-05-29 18:45:45 +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 0b58579564
Add support for discrete axis values 2018-05-12 13:34:58 +01:00
emersion 13098a18ea
Fix hardware cursors scale & transform 2018-05-09 19:58:18 +01:00
emersion caf9f9022c
Merge pull request #936 from emersion/full-hardware-cursors
output: always use hardware cursors if available
2018-05-04 19:00:45 +01:00
morganamilo 6305e6327f
Fix typos in comments and strings 2018-05-03 21:59:43 +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 62d7337d00
backend/x11: add one pointer per output 2018-04-29 14:46:29 +01:00
emersion ddac792b61
backend/wayland: only set one pointer listener 2018-04-29 14:30:13 +01:00
emersion 9f8a7c8fc4
backend/wayland: create one virtual pointer per output 2018-04-29 14:30:13 +01:00
emersion f8e0a03451
backend/x11: correctly destroy input devices 2018-04-28 12:55:36 +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
Uli Schlachter 98f8ec6a08 x11_handle_input_event: Remove return value
handle_x11_event() and x11_handle_input_event() react to different kinds
of events, so it does not make much of a difference if
x11_handle_input_event() signals if it handled an event or not.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2018-04-15 10:33:53 +02:00
emersion 2d6bbf12f8
backend/{x11,headless}: fix refresh rate 2018-04-03 22:54:01 -04:00
Drew DeVault 2ecce27dd5
Merge pull request #807 from swaywm/input-inhibit
Input inhibit
2018-04-03 15:58:47 -04:00
Drew DeVault 56deff41b6 Implement input inhibit in rootston 2018-04-03 15:09:53 -04:00
emersion 9609985f29
backend/x11: fix cursor position when receiving configure event 2018-04-03 13:32:24 -04:00
emersion 7b88ace557
backend/x11: hide cursor 2018-03-31 12:10:43 -04:00
emersion aa6ae710f7
backend/x11: fix input events 2018-03-30 23:51:19 -04:00
emersion 0a7a8cbd1c
backend/x11: add WLR_X11_OUTPUTS support 2018-03-30 23:51:19 -04:00
emersion d4f7ced6e2
backend/x11: refactor, prepare support for multiple outputs 2018-03-30 23:51:16 -04:00
Drew DeVault 52d621e097
Merge pull request #763 from emersion/x11-backend-kbd-modifiers
backend/x11: correctly update keyboard modifiers
2018-03-28 12:51:08 -04:00
emersion f033f717a2
backend/x11: make xcb-xkb optional, remove global state 2018-03-28 00:26:15 -04:00
emersion c63d94483b
Redesign wlr_texture
- Textures are now immutable (apart from those created from raw
  pixels), no more invalid textures
- Move all wl_drm stuff in wlr_renderer
- Most of wlr_texture fields are now private
- Remove some duplicated DMA-BUF code in the DRM backend
- Add more assertions
- Stride is now always given as bytes rather than pixels
- Drop wl_shm functions

Fun fact: this patch has been written 10,000 meters up in the air.
2018-03-24 23:48:32 -04:00
Dominique Martinet d5e14ab247 wayland backend: fix use-after free on output destroy
==12021==ERROR: AddressSanitizer: heap-use-after-free on address 0x617000015698 at pc 0x7f1a9abe1c09 bp 0x7ffe9068f6b0 sp 0x7ffe9068f6a0
WRITE of size 4 at 0x617000015698 thread T0
    #0 0x7f1a9abe1c08 in pointer_handle_leave ../backend/wayland/wl_seat.c:40
    #1 0x7f1a96ae7d1d in ffi_call_unix64 (/lib64/libffi.so.6+0x5d1d)
    #2 0x7f1a96ae768e in ffi_call (/lib64/libffi.so.6+0x568e)
    #3 0x7f1a988e0d8a  (/lib64/libwayland-client.so.0+0x8d8a)
    #4 0x7f1a988dd927  (/lib64/libwayland-client.so.0+0x5927)
    #5 0x7f1a988debe3 in wl_display_dispatch_queue_pending (/lib64/libwayland-client.so.0+0x6be3)
    #6 0x7f1a9abdd6d6 in dispatch_events ../backend/wayland/backend.c:28
    #7 0x7f1a9a968c11 in wl_event_loop_dispatch (/lib64/libwayland-server.so.0+0x9c11)
    #8 0x7f1a9a967449 in wl_display_run (/lib64/libwayland-server.so.0+0x8449)
    #9 0x418dff in main ../rootston/main.c:81
    #10 0x7f1a99b5ef29 in __libc_start_main (/lib64/libc.so.6+0x20f29)
    #11 0x4057c9 in _start (/home/shared/wayland/wlroots/build/rootston/rootston+0x4057c9)

0x617000015698 is located 664 bytes inside of 696-byte region [0x617000015400,0x6170000156b8)
freed by thread T0 here:
    #0 0x7f1a9af754b8 in __interceptor_free (/lib64/libasan.so.4+0xde4b8)
    #1 0x7f1a9abe01ee in wlr_wl_output_destroy ../backend/wayland/output.c:194
    #2 0x7f1a9ac12918 in wlr_output_destroy ../types/wlr_output.c:299
    #3 0x7f1a9abe061b in xdg_toplevel_handle_close ../backend/wayland/output.c:255
    #4 0x7f1a96ae7d1d in ffi_call_unix64 (/lib64/libffi.so.6+0x5d1d)
    #5 0x7f1a96ae768e in ffi_call (/lib64/libffi.so.6+0x568e)
    #6 0x7f1a988e0d8a  (/lib64/libwayland-client.so.0+0x8d8a)
    #7 0x7f1a988dd927  (/lib64/libwayland-client.so.0+0x5927)
    #8 0x7f1a988debe3 in wl_display_dispatch_queue_pending (/lib64/libwayland-client.so.0+0x6be3)
    #9 0x7f1a9abdd6d6 in dispatch_events ../backend/wayland/backend.c:28
    #10 0x7f1a9a968c11 in wl_event_loop_dispatch (/lib64/libwayland-server.so.0+0x9c11)
    #11 0x7f1a9a967449 in wl_display_run (/lib64/libwayland-server.so.0+0x8449)
    #12 0x418dff in main ../rootston/main.c:81
    #13 0x7f1a99b5ef29 in __libc_start_main (/lib64/libc.so.6+0x20f29)
    #14 0x4057c9 in _start (/home/shared/wayland/wlroots/build/rootston/rootston+0x4057c9)

previously allocated by thread T0 here:
    #0 0x7f1a9af75a38 in __interceptor_calloc (/lib64/libasan.so.4+0xdea38)
    #1 0x7f1a9abe0703 in wlr_wl_output_create ../backend/wayland/output.c:272
    #2 0x7f1a9abdd8eb in wlr_wl_backend_start ../backend/wayland/backend.c:55
    #3 0x7f1a9abbeb49 in wlr_backend_start ../backend/backend.c:28
    #4 0x7f1a9abd8ce1 in multi_backend_start ../backend/multi/backend.c:24
    #5 0x7f1a9abbeb49 in wlr_backend_start ../backend/backend.c:28
    #6 0x418c32 in main ../rootston/main.c:58
    #7 0x7f1a99b5ef29 in __libc_start_main (/lib64/libc.so.6+0x20f29)
    #8 0x4057c9 in _start (/home/shared/wayland/wlroots/build/rootston/rootston+0x4057c9)
2018-03-22 21:27:49 +01:00
emersion c41de2d1be
render: split render.h into wlr_renderer.h and wlr_texture.h 2018-03-19 23:16:29 +01:00
emersion 824a95ad19
matrix: use 2D matrices 2018-03-15 15:33:58 +01:00
Scott Anderson 902d6cc240 Use xcb atoms properly 2018-03-06 21:15:47 +13:00
Markus Ongyerth a65ef8ea86 restore dpms state on drm resume
If there is no current mode, set outputs to dpms off in drm resume.
Sets current mode to null on disable to ensure this can be checked.
2018-02-26 18:12:51 +01:00
Drew DeVault 1d9be89e2d
Revert "ELF Visibility" 2018-02-19 18:01:27 -05:00
Drew DeVault 868ad5af69
Merge pull request #647 from ascent12/elf_visibility
ELF Visibility
2018-02-18 21:49:23 -05:00
Guido Günther 15afef6cbc x11 backend: set window title
This makes windows identifiable in the window list
2018-02-18 23:42:04 +01:00
Scott Anderson f27c0b44b8 Remove usec_to_msec from public API 2018-02-19 10:43:25 +13:00
emersion c2e1474010
Reformat all #include directives 2018-02-12 21:29:23 +01:00
Drew DeVault 664d7bfe4e
Merge pull request #618 from VincentVanlaer/atomic-gamma
Add atomic gamma control
2018-02-10 09:51:09 -05:00
emersion bf6d245400
Swap buffers with damage 2018-02-09 22:54:14 +01:00
Vincent Vanlaer ab011406ad Add atomic gamma lut size fetching
Legacy gamma lut size now uses the new legacy_crtc member of
wlr_drm_crtc. This was Previously doen using old_crtc in
wlr_drm_connector, but since this refers to the crtc that was connected to
the ouput, this could give the wrong result.
2018-02-09 17:29:14 +01:00
Vincent Vanlaer cc1229e75e Add atomic gamma setting 2018-02-09 17:29:04 +01:00
emersion bb4aeb3b2f
backend/drm: support updating cursor when session is paused 2018-02-02 21:01:59 +01:00
emersion 51c22d39a4
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-29 23:24:09 +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 0365b587f0
output: add damage tracking via buffer age 2018-01-21 00:06:35 +01:00
emersion 53ba9b4eec
Fix output enable in DRM backend 2018-01-07 00:28:21 +01: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 a937016e38 remove session from multibackend 2017-12-19 18:25:46 -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 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
emersion 4a36ba4bdd
Destroy multi backend on display destroy 2017-12-19 18:28:47 +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 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 9d43adaafa
Listen to display destroy in backends 2017-12-07 23:44:59 +01:00
emersion 016744ef4d
Refactor wlr_list inside wlroots 2017-11-19 00:17:40 +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 9d587d759f
Do not set hw cursor if disabled when switching VT 2017-10-26 18:58:44 +02: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
Scott Anderson bdeffad7e5 Remove drm field from wlr_drm_connector 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
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 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
Versus Void 641d08ce7e Transform hotspot with cursor
Fix #188
2017-10-06 09:07:08 +03: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 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 6bf508df81 Add closing with WM button 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 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 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
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 f4387b437f Merge branch 'master' into rootston 2017-09-25 08:29:51 -04:00
emersion 427bdb5b55
Use more consistent include guard names 2017-09-23 10:26:01 +02: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 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 577d2f6fcd wayland backend: switch to xdg shell
Closes #72 and #96.
2017-08-17 10:24:27 +02:00
nyorain d7dcbbc175 Add wayland backend cursor support 2017-08-14 18:02:05 -04:00
Dominique Martinet 53e7bebd23 Refactor out wlr_pointer_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
Drew DeVault c8c6619146 Refactor out wlr_output_mode_state 2017-08-14 08:03:51 -04:00
Drew DeVault 41e735242d Remove wlr_output_state, update backends 2017-08-13 11:38:03 -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
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 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
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
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 5a636b21ba Remove old fields 2017-08-06 21:51:34 +12:00
Scott Anderson 5f7042a1f2 Moved headers 2017-08-06 21:49:04 +12:00
Scott Anderson 7b772e1a4b DRM resource initalisation 2017-08-06 15:49:02 +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
Drew DeVault e92a65fee8 Remove use of missing header 2017-07-12 09:49:26 -04:00
Drew DeVault 168f0955ab Add wl_output globals for wlr_outputs 2017-06-22 14:27:35 -04: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 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
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 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 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 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 ecb04afcad Implement tablet pads 2017-06-19 14:49:07 -04: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 4a9966b1a4 Implement wlr_tablet_tool 2017-06-15 14:32:53 -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 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 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 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 632a7acb03 Filled out more wlr_output fields. 2017-06-08 00:39:40 +12: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 fee409bd0a Generalize DPMS, remove DRM refs from example 2017-05-31 15:38:26 -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 058b8bdf27 Working commit 2017-05-14 12:42:49 +12:00
Scott Anderson 599d1bcbdc DPMS support 2017-05-13 20:37:15 +12: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 4285b0c218 Removed unused fields. 2017-05-03 22:50:18 +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 95a553dc51 Moved headers to the correct place. 2017-05-01 15:33:42 +12: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