Victor Brekenfeld
d6fa2e96cf
drm: Require all surfaces to always have a mode set
2020-04-27 00:45:58 +02:00
Victor Brekenfeld
b6087bf2d2
legacy: move create_surface into Surface constructor
2020-04-27 00:45:58 +02:00
Victor Brekenfeld
77875f71c6
fallback: add disable_connectors to `FallbackDevice` initialization
2020-04-27 00:45:58 +02:00
Victor Brekenfeld
50f94d013a
legacy: disable connectors on device creation
2020-04-27 00:45:58 +02:00
Victor Brekenfeld
8c8f5e0d59
atomic: disable connectors on device creation
2020-04-27 00:45:58 +02:00
Victor Brekenfeld
260bfd9f86
clippy fixes
2020-04-21 20:18:35 +02:00
Victor Brekenfeld
dcd6934d08
legacy: remove outdated comment
2020-04-21 20:18:35 +02:00
Victor Brekenfeld
11bb910224
atomic: flesh out trace logs
2020-04-21 20:18:35 +02:00
Victor Brekenfeld
ef05dacc0d
atomic: Move out `add/map_props` to `Dev`
2020-04-21 20:18:35 +02:00
Victor Brekenfeld
df951b5de7
common: add fallback device/surface types
2020-04-21 20:18:35 +02:00
Victor Brekenfeld
35943fc56a
typo: ctrc -> crtc in drm/mod.rs
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
57e5494941
legacy: bugfix, add null-commit to free pipeline
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
ea44343315
drm: add set_connectors to Surface
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
d3b8563f65
gbm: Try to re-create resources and commit if restarting the rendering loop fails
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
d30bd4555e
anvil: use atomic modesetting
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
365b7e6496
drm: Add atomic modesetting support
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
e8cb940aab
drm legacy: small cleanups + additional logging
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
1b259e2deb
typo: priviledged -> privileged
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
41696f5364
drm: trigger vblank on commit
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
ed257e8991
drm: move legacy::Error into common module
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
df27224372
gbm: implement CursorBackend generically
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
cde06eb99a
cursor: simplify trait by removing barely utilized lifetimes
2020-04-21 20:18:34 +02:00
Chandler Newman
c4016af67b
Add default settings for surface creation
2020-04-16 12:33:28 +01:00
Chandler Newman
f7c05fa064
Rename WaylandEGLDisplay to EGLBufferReader
2020-04-15 21:19:20 +01:00
Chandler Newman
b8df85e744
Mark get_proc_address as safe
2020-04-15 12:16:02 +01:00
Chandler Newman
a684f5d8d6
Refactor EGL backend
2020-04-15 12:01:01 +01:00
Victor Berger
b54d95c15d
Fix most clippy warnings ( #185 )
...
* Add missing documentation
* Fix most clippy warnings
2020-04-15 09:28:22 +02:00
Victor Berger
6a7d933553
Replace `failure` and `error-chain` by `thiserror`
2020-04-13 13:20:59 +02:00
Victor Brekenfeld
f6b3d630ce
rustfmt
2020-04-10 19:18:58 +02:00
Victor Brekenfeld
e8e8667d89
Upgrade to the upcoming drm-rs 0.4
2020-04-10 16:58:49 +02:00
Jonas Platte
b8c20ebf30
Update wayland-rs to 0.25 ( #171 )
...
Update wayland-rs to 0.25 and calloop to 0.5
Co-authored-by: Victor Berger <victor.berger@m4x.org>
2020-04-05 19:01:08 +02:00
nycex
0140de89fb
fix some clippy warnings ( #147 )
...
This commit removes some clippy warnings (to advance #45 ) by doing the following:
- replace usage of `mem::uninitialized()` with `MaybeUninit`
- replace usage of `nix::libc::{uint64_t, int32_t}` with `{u64, i32}`
- replace functions inside of `Option::ok_or` with `Option::ok_or_else`
- replace functions inside of `Result::unwrap_or` with `Result::unwrap_or_else`
- replace occurrences of pass-by-reference with pass-by-value when
appropriate
- replace unused variables in pattern-matching with wildcards
- replace `match` expressions that have only one case with `if let`
expressions
- replace UpperCamelCase names of consts with SCREAMING_SNAKE_CASE
- remove `clone()` on types that implement Copy
- remove redundant imports
- remove `fn main()` from doctests
- remove let binding for variables that are returned afterwards
2020-01-01 11:43:16 +01:00
Pierre Chevalier
0b2e4b42db
Fix clippy warnings with cargo fix
...
Simply ran:
```
rustup run nightly cargo fix --clippy -Z unstable-options
```
followed by
```
cargo fmt
```
No manual change in this commit.
2019-10-23 14:13:10 +02:00
Victor Berger
89dce178c8
Make wayland support optional
2019-02-06 09:29:56 +01:00
Victor Brekenfeld
e5f8c351c7
Check for rust_2018_idioms
2018-12-16 19:31:38 +01:00
Victor Brekenfeld
71bd64a6bf
Fix source code for 2018 edition
2018-12-16 19:31:38 +01:00
Victor Brekenfeld
dc97e0ad03
Add reexports module
2018-12-14 14:26:50 +01:00
Victor Brekenfeld
04aee7cbc9
Replace documentation links with intra rustdoc links
2018-12-13 15:14:25 +01:00
Victor Brekenfeld
a3acd48cc3
fmt: rust 1.31
2018-12-08 18:31:08 +01:00
Victor Brekenfeld
c24619861e
egl: style: move constraints into where clause
2018-12-08 17:26:05 +01:00
Victor Berger
7dc3d64b6e
docs: typo fixes
...
Co-Authored-By: Drakulix <github@drakulix.de>
2018-12-08 13:47:22 +01:00
Victor Brekenfeld
a8343edbd7
legacy: add legacy drm example
2018-12-05 22:51:41 +01:00
Victor Brekenfeld
bbe767002d
comments: add more explainations to new code
2018-12-05 22:48:10 +01:00
Victor Brekenfeld
a3734da9da
gbm: update to gbm 0.5
2018-12-05 22:45:01 +01:00
Victor Brekenfeld
6609754d13
docs: add drm/egl
2018-12-05 22:45:01 +01:00
Victor Brekenfeld
1f8a7e7335
docs: add drm/gbm
2018-12-05 22:45:01 +01:00
Victor Brekenfeld
3b92e351b1
docs: added drm/legacy
2018-12-05 22:45:01 +01:00
Victor Brekenfeld
174c150887
docs: added drm
2018-12-03 23:29:30 +01:00
Victor Brekenfeld
b160a91f8a
drm: remove mode & connector arguments of create_surface
2018-12-03 23:29:30 +01:00
Victor Brekenfeld
f8a5e8bfde
anvil: allow for non-egl builds
2018-12-03 23:29:30 +01:00
Victor Brekenfeld
f2466c5c50
drm: Fix drop order
2018-12-03 23:29:30 +01:00
Victor Brekenfeld
51f0050d68
drm: fix dropping master when killed from another tty
2018-12-02 22:01:45 +01:00
Victor Brekenfeld
8abcc145d7
egl: EGLContext borrow native to circumvent RefCell runtime error
2018-12-02 22:01:45 +01:00
Victor Brekenfeld
0ed69bf2da
session: Add multiplexer
2018-12-02 22:01:45 +01:00
Victor Brekenfeld
5741ccdd46
gbm: fix EGLSurface recreation
2018-11-29 19:41:17 +01:00
Victor Brekenfeld
e7575d08b8
gbm: fix calling lock_front_buffer without eglSwapBuffers
2018-11-29 19:41:17 +01:00
Victor Brekenfeld
9a82de6fae
graphics: Move PixelFormat out of gl module
2018-11-29 19:41:17 +01:00
Victor Brekenfeld
d07c66985f
gbm: CursorBackend depends on backend_drm_legacy
2018-11-29 19:41:17 +01:00
Victor Brekenfeld
59e0ad87f9
gbm: do not expose egl support, if backend_egl is not enabled
2018-11-29 19:41:17 +01:00
Victor Brekenfeld
de526f4b23
drm: Add functions to query device state
2018-11-29 16:13:07 +01:00
Victor Brekenfeld
2675cf94dc
egl_surface: fix CursorBackend implementation
2018-11-29 16:13:07 +01:00
Victor Brekenfeld
f17e37465b
drm: Remove associated Return type from Device
2018-11-29 16:13:07 +01:00
Victor Brekenfeld
9ee44672a0
cargo fmt
2018-11-29 16:13:07 +01:00
Victor Brekenfeld
bd5690bd77
Refactor drm backend
...
- Split `DrmDevice` into `LegacyDrmDevice`, `GbmDevice` and `EglDevice`
- Provide common `Device` and `RawDevice` traits
- Change `DrmBackend` into `Surface` (and `RawSurface`) implementations of each `Device` (or `RawDevice`)
2018-11-29 16:13:07 +01:00
Pablo Stebler
630b659ae6
Upgrade calloop and winit ( #114 )
...
* Fix compilation with calloop 0.4
* Use `Into` instead of changing signatures
* Bump winit to 0.18
* Fix logind for calloop 0.4
* Cargo fmt
2018-11-17 18:01:04 +01:00
Colin Benner
734d2ce996
Fmt, spelling and capitalisation fixes ( #113 )
...
* Rename priviledged to privileged in backend/drm/mod.rs
* Fix a number of typos in comments
* Fix typos in string literals
* Wrap identifiers with backticks in doc comments
* Spelling and capitalisation in doc comments
* Use XWayland in comments
This seems to be the standard capitalisation, even though the executable
is called `Xwayland`.
* Use Glium instead of glium in comments
* Use DRM and API in comments
* Fix remaining occurrence of 'priviledged'
* Reformat code to appease Travis' rustfmt
2018-10-30 13:56:30 +01:00
Jonas Platte
a77e29d9b5
lib: Use nested imports
2018-10-07 22:39:18 +02:00
Victor Berger
454f874284
cargo fmt
2018-09-25 00:32:09 +02:00
Victor Berger
605895e30f
update to wayland-rs 0.21
2018-09-25 00:31:58 +02:00
Colin Benner
6d31e9e5ff
address more clippy warnings
...
Not sure how much of an improvement these are.
2018-06-29 12:30:42 +02:00
Colin Benner
4598ba0b48
address a bunch of clippy warnings
2018-06-28 11:33:49 +02:00
Victor Berger
53242bd974
backend.libinput: migrate to wayland-rs 0.20
2018-04-18 09:53:54 +02:00
Victor Berger
31a3d40589
backend.drm: update doc examples
2018-04-18 09:44:22 +02:00
Victor Berger
7f6af94733
backend: migrate drm & udev
2018-04-18 09:38:35 +02:00
Drakulix
5cfdf931fb
Update for wayland-server 0.14
2018-02-21 21:02:14 +01:00
Drakulix
f4d3061b2b
Fix tests & examples
2018-02-21 14:52:43 +01:00
Drakulix
85bac997e0
Fix merge with latest logind bug fixes
2018-02-21 14:52:31 +01:00
Drakulix
4a2658090b
Code formatting
2018-02-21 14:24:37 +01:00
Drakulix
5d66f8fdb3
Give EventLoopHandle to DrmHandler
2018-02-21 14:24:20 +01:00
Drakulix
b80674bdf5
Introduce SessionObserver
...
`DrmDevice` and `UdevBackend` now do not need to be wrapped into `StateToken`s anymore, but can return a separate `SessionObserver` object using the new `AsSessionObserver` trait.
This change was motivated by allowing the `UdevHandle` to obtain a mutable reference to an `EventLoopHandle` to create wayland object, e.g. a `wl_output` object.
Previously this was not possible.
Depends on https://github.com/Smithay/wayland-rs/pull/164
2018-02-21 14:24:20 +01:00
Drakulix
0ad723a71b
Allow `DrmBackend` to act as `drm::control::Device`
2018-02-21 13:31:05 +01:00
Drakulix
2294e79814
Reset drm device into text mode on tty switch
2018-02-20 19:19:22 +01:00
Drakulix
525c9b60c4
rustfmt
2018-02-20 19:19:22 +01:00
Drakulix
310bc94a20
Fix disappearing cursor after tty switch
2018-02-20 19:19:22 +01:00
Drakulix
495c492e50
Fix trying to become drm master on logind session
2018-02-20 19:19:22 +01:00
Drakulix
b16c62b19f
Add logind session
2018-02-20 19:19:22 +01:00
Drakulix
8a30689015
Add getter for current `DrmBackend` mode
2018-02-18 22:04:13 +01:00
Drakulix
b125ce8005
Fix backend_drm feature
2018-01-07 23:44:21 +01:00
Drakulix
66c011c942
Use new rustfmt-preview
2018-01-07 22:30:38 +01:00
Drakulix
25c1e30fb3
Fix drm doc-test for new egl buffer changes
2018-01-07 22:12:34 +01:00
Drakulix
aaa68b1cce
Add documentation for the egl buffer features
2018-01-07 22:12:14 +01:00
Drakulix
efaadb8882
Fix a bunch of warnings
2018-01-07 20:24:40 +01:00
Drakulix
c5f475ebb5
Make unbind_egl_display into Drop implementation for EGLDisplay
2018-01-07 13:02:26 +01:00
Drakulix
a527456ba6
Fixup drm backends for egl hardware-acceleration
...
- Decouple DrmBackend and DrmDevice through Weak references
- Move EGL-WlBuffer related functionality into it's own trait
- Impl new trait by every struct that can theoretically bind the display although it is no rendering target (no EGLGraphicsBackend), e.g. DrmDevice
- Move texture binding into own struct `EGLDisplay` created by `bind_wl_display` that can be passed around freely
- Add device num to DrmDevice for HashMap storage
- Fixup and enable acceleration on drm and udev examples made possible by the previous changes.
2018-01-05 20:04:46 +01:00
Drakulix
5d7e96103d
Rework EGL module
2017-12-24 14:29:45 +01:00
Drakulix
d0046e4c60
Fix rare hot-plugging bug
2017-12-21 16:25:21 +01:00
Drakulix
4207611e6d
rustfmt code
2017-12-15 19:22:44 +01:00
Drakulix
ae5df5039d
Fix drm example and tests
2017-12-03 22:33:21 +01:00
Drakulix
bd83bc5b2d
Restore drm state correctly
2017-12-02 17:07:52 +01:00
Drakulix
612436e42d
Correctly scan for any encoders
2017-12-02 13:51:08 +01:00
Drakulix
13be5b1634
Add documentation
2017-11-29 22:28:14 +01:00
Drakulix
96bb3570ba
Get input working
2017-11-29 22:28:14 +01:00
Drakulix
c7682e77de
Udev backend
2017-11-29 22:28:13 +01:00
Victor Berger
c31d966fd4
Upgrade wayland-server to 0.12
2017-11-03 17:31:51 +01:00
Demur Rumed
ce844ba9f8
Cargo.toml: include repo, update nix/image
2017-10-09 15:17:19 +02:00
Jonas Platte
4946017c0c
Apply a bunch of clippy suggestions
2017-10-07 18:40:59 +02:00
Drakulix
51886fbf00
Update to stable drm-rs version
2017-10-01 22:25:52 +02:00
Drakulix
7f45283759
cargo fmt
2017-09-21 20:50:10 +02:00
Drakulix
d2617becbf
Fix drm doc test and Deref impl
2017-09-21 19:05:59 +02:00
Drakulix
518f7dbdfc
Store DrmBackend in EventLoop state
2017-09-20 19:48:58 +02:00
Drakulix
0758ec98ba
Fix the drm backend for wayland-rs 0.10
2017-09-20 17:09:37 +02:00
Drakulix
457d6d1c35
Free framebuffers correctly
2017-09-20 15:56:57 +02:00
Drakulix
fa6742fb5f
The glory of error-chain
2017-09-20 15:56:11 +02:00
Drakulix
a04bfcdd11
Add encoder detection to runtime manipulation
2017-09-20 15:54:16 +02:00
Drakulix
174e4b9d0b
Fix encoder detection
2017-09-20 15:53:19 +02:00
Drakulix
d3fca34475
Do a better job at finding a crtc in the example
2017-09-20 15:52:47 +02:00
Drakulix
bdb91fc1f1
Better explaination of the drm module
...
- Explain the types involved and their role
- Link to the drm-rs documentation
2017-09-20 15:51:59 +02:00
Drakulix
67b3621be3
drm: reformat
2017-09-20 15:51:59 +02:00
Drakulix
ab77a87725
drm: Check for valid encoder
2017-09-20 15:51:59 +02:00
Drakulix
10fd94f963
drm: add more logging
2017-09-20 15:51:39 +02:00
Drakulix
73d262e292
drm: reformat
2017-09-20 15:51:39 +02:00
Drakulix
9c71793b0e
drm: Add more inline comments explaining the drm code
2017-09-20 15:51:39 +02:00
Drakulix
7bf4105050
drm: Add error for multi-use of a single crtc
2017-09-20 15:51:39 +02:00
Drakulix
f2bff6172b
drm: Documentation
2017-09-20 15:51:38 +02:00
Drakulix
0698775153
drm: Introduce the Drm Backend
...
- new backend rendering via egl via gbm directly on a drm device
- refine EGLContext and EGLSurface dependencies through lifetimes
- fixup the old winit backend to work with these changes
- add new example using the drm backend instead
- change GliumDrawer to be static for the drm example
2017-09-20 15:50:14 +02:00