Commit Graph

367 Commits

Author SHA1 Message Date
Victor Berger 1871b5ddae Make slog-stdlog into an optional dependency
slog-stdlog has a significant dependency tree and is basically unsued if
the downstream crate of Smithay always provides a logger (like anvil),
so it is not really needed.
2020-07-12 16:38:05 +02:00
Victor Brekenfeld 9c3c3d939e cargo fmt & lint 2020-06-28 00:25:15 +02:00
Victor Brekenfeld 107b18a4c1 logind: do not include dbus code without dbus dependency 2020-06-28 00:23:24 +02:00
Victor Brekenfeld 51b5b39b75 cursor: allow cursor clearing on CursorBackend 2020-06-28 00:23:24 +02:00
Victor Brekenfeld d603a9ccfb egl: Do not store and release WlBuffer for EGLImages 2020-06-28 00:23:24 +02:00
Victor Brekenfeld 7b4459f649 drm: Make surfaces `Send` 2020-06-11 18:57:05 +02:00
Victor Brekenfeld cc67764c23 make clippy happy 2020-06-11 12:16:43 +02:00
Victor Brekenfeld 3c048075f4 docs: Add more explanations to various graphics code 2020-06-07 22:42:33 +02:00
Victor Brekenfeld a3459cda31 docs: Add more explanations to the eglstream-drm-code 2020-06-07 22:42:33 +02:00
Victor Brekenfeld 978415987f docs: Add more explanations to the gbm-drm-code 2020-06-07 22:42:33 +02:00
Victor Brekenfeld dcb3bb79a7 docs: Add more explanations to the atomic-drm-code 2020-06-07 22:42:33 +02:00
Victor Brekenfeld 7e8f6b2955 docs: Add more explanations to the legacy-drm-code 2020-06-07 22:42:33 +02:00
Victor Brekenfeld fa42a0a223 docs: Add a more fleshed out backend::drm module documentation 2020-06-07 22:42:33 +02:00
Victor Berger a717fa36cd backend.session: Migrate to using Signaler
Change the session backend to rely on Signaler to propagate its
signals. Also introduce the Linkable trait to allow generic composition
of objects needing to listen for signals.
2020-05-23 21:37:22 +02:00
Victor Berger c3859d999b backend.session: use pkg-config to find logind lib
Introduce the `backend_session_elogind` cargo feature which pulls
`backend_session_logind` and makes the logind session backend seek
`libelogind.so` instead of `libsystemd.so`.

Fixes #127
2020-05-23 21:37:22 +02:00
Victor Berger b05c2ccbba backend.session: rework as calloop event sources
Rework the Session Notifiers so that they are calloop event sources
by themselves, allowing them to be inserted by the user without the
`bind_session` dance.

Also update the logind backend to use the current dbus-rs API, rather
than the deprecated one.
2020-05-23 21:37:22 +02:00
Victor Brekenfeld 9acd109a04 fallback: support FallbackDevice<GbmDevice, EglStreamDevice> for automatic nvidia support 2020-05-23 00:29:32 +02:00
Victor Brekenfeld 53f5753943 udev: Add function to query the loaded driver of a device 2020-05-23 00:29:32 +02:00
Victor Brekenfeld 69c1116d82 eglstream: initial backend implementation 2020-05-23 00:29:32 +02:00
Victor Brekenfeld eb1dc5de4f egl: do not fail if desired swap interval cannot be selected 2020-05-23 00:17:19 +02:00
Victor Brekenfeld e8926da56c graphics: Log underlying error of SwapBuffers 2020-05-23 00:17:19 +02:00
Victor Brekenfeld d3a60e03c9 egl: differenciate display creation failures 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 73447bd668 egl: Pass clonable display handle to native-impls 2020-05-23 00:17:19 +02:00
Victor Brekenfeld cc6e3569f0 gbm: Do not try to use eglGetDisplay 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 997895b3c7 drm: allow crate internal impls to access crtc and plane 2020-05-23 00:17:19 +02:00
Victor Brekenfeld f9aef43ac2 egl: move loading into separate function 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 19ef1ed3c0 egl: move eglSwapBuffers call into NativeSurface 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 0565e5fd79 egl: NativeSurface: replace recreate with create 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 0267703e91 egl: move surface creation into `NativeSurface` 2020-05-22 23:19:19 +02:00
Victor Brekenfeld 4647141770 egl: Allow displays to specify surface_type 2020-05-22 23:19:17 +02:00
Victor Brekenfeld 726624cbd8 egl: allow display creation to specify attributes 2020-05-22 23:18:49 +02:00
Victor Brekenfeld 64a57a4cc8 downgrade some recoverable errors to warnings 2020-05-12 20:03:03 +02:00
Victor Brekenfeld 9610f31e44 drm: log initial surface parameters 2020-05-12 20:03:03 +02:00
Victor Brekenfeld 2128f68847 egl: log hidden egl errors 2020-05-12 20:03:03 +02:00
Victor Brekenfeld bf3e8b4d10 egl: check for surface creation failure 2020-05-12 20:03:03 +02:00
Victor Brekenfeld 7c4ca4e524 atomic: do not revert on failing state 2020-05-12 20:03:03 +02:00
Victor Brekenfeld f1c40f7306 lint: fmt & clippy 2020-05-12 20:03:03 +02:00
Victor Brekenfeld 20b373470f drm: permission denied is also temporary 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 25f2610ea6 gbm: Do not unpack drm-rs errors on conversion 2020-05-12 19:47:16 +02:00
Victor Brekenfeld a0c65114fb drm: Do not unpack drm-rs errors on conversion 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 12a57f799a logind: ignore gone events 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 44ebed3446 gbm: only clear recreation state on successful commits 2020-05-12 19:47:16 +02:00
Victor Brekenfeld a6863af496 egl: force surface creation on resume 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 140185f6f5 atomic: clear invalid cursor buffers 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 163533a72a atomic: avoid too excessive trace logging 2020-05-12 19:47:16 +02:00
Victor Brekenfeld b4cbecd369 atomic: do not set current state if commit fails 2020-05-12 19:47:16 +02:00
Victor Brekenfeld f3dabe2cea atomic: clear broken resources on resume 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 9bbd9edb0c egl: track backends 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 7bca463934 atomic: do not cache cursor fb info 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 1a5cc59983 drm: do not ignore events for inactive devices 2020-05-12 19:46:18 +02:00