Drakulix
d005cd4fc6
Replace time stub with proper timestamps
2018-03-17 18:15:34 +01:00
Drakulix
4ee34fe43a
Fix winit transformed input for negative positions
2018-03-13 18:41:37 +01:00
Drakulix
81375a085f
Allow relative mouse movement to be negative
2018-03-13 15:06:52 +01:00
Drakulix
a6d8b2a802
Fix winit transformed input
2018-03-09 17:37:27 +01:00
Drakulix
bdb653042c
Update glium integration to allow mutable borrowing
2018-03-09 11:50:01 +01:00
Drakulix
9cb409de9b
Add missing derives for AutoId
2018-02-26 18:56:28 +01: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
e3113caa72
Add new travis feature for logind
2018-02-20 19:19:22 +01:00
Drakulix
525c9b60c4
rustfmt
2018-02-20 19:19:22 +01:00
Drakulix
20e10612b9
Add documentation for logind/auto session
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
5411209bb5
Fix libinput panic on 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
a768e298f2
Add auto backend
2018-02-20 19:19:22 +01:00
Drakulix
b16c62b19f
Add logind session
2018-02-20 19:19:22 +01:00
Drakulix
4971278a25
Remove unused type parameter
2018-02-20 19:19:22 +01:00
Victor Berger
036633541a
Remove trailing code fence in documentation
2018-02-20 19:08:23 +01:00
Drakulix
ef0cfb9f2c
Add names to backend seats
2018-02-19 12:49:55 +01:00
Drakulix
d3a454ad72
Add winit events handler
2018-02-18 23:42:33 +01:00
Drakulix
b53ff34aab
Add option to access underlying window
2018-02-18 23:42:02 +01:00
Drakulix
8a30689015
Add getter for current `DrmBackend` mode
2018-02-18 22:04:13 +01:00
Drakulix
a9c75656a2
Add event_loop to `InputBackend` and `InputHandler` traits
2018-01-12 16:41:33 +01:00
Drakulix
32f48b3cd2
Fix some clippy lints
2018-01-09 14:12:31 +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
6c6d54064d
Get it to work...
2017-12-28 15:30:53 +01:00
Drakulix
726991367d
Rework egl image api
2017-12-27 12:20:16 +01:00
Drakulix
5d7e96103d
Rework EGL module
2017-12-24 14:29:45 +01:00
Drakulix
5c846d550c
Start EGL wl_buffer image retrieval
2017-12-24 14:12:51 +01:00
Drakulix
14fc36bf54
Add binding/unbinding wayland display on EGLContext
2017-12-24 14:12:51 +01:00
Drakulix
a9d30374dc
Add EGL_WL_bind_wayland_display bindings
2017-12-24 14:12:51 +01:00
Drakulix
e1b2c88c83
Use global gl_generator generator
2017-12-24 14:12:51 +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
c9e7624a33
Remove (incomplete) logind support for now
2017-12-07 15:25:21 +01:00
Drakulix
5f59ded3f0
Fix udev example
2017-12-07 15:20:33 +01:00
Drakulix
40ef1236ea
Update to released udev/libinput versions
2017-12-06 02:06:00 +01:00
Drakulix
71f107118f
Make libinput backend work without the session feature
2017-12-03 22:44:45 +01:00
Drakulix
ae5df5039d
Fix drm example and tests
2017-12-03 22:33:21 +01:00
Drakulix
c5e66176c6
Document DirectSessionNotifier Id type
2017-12-02 17:09:34 +01:00
Drakulix
bd83bc5b2d
Restore drm state correctly
2017-12-02 17:07:52 +01:00
Drakulix
33286df0d6
Make it impossible to pass invalid `SessionObserver` ids.
...
- Add an associated type to the `SessionNotifier` trait for the returned Id's instead of using usize.
- Create a new Id type for the `DirectSessionNotifier`'s implementation, wrapping the previously used usize.
- Derive necessary traits of the new wrapper, make internal value inaccessible and Id's not publically constructable.
2017-12-02 14:24:39 +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
0350dca972
Automatically add udev backend to the event loop store
2017-11-29 22:28:14 +01:00
Drakulix
ef2e0571e7
Swap session signal to usr2, because xwayland may use usr1
2017-11-29 22:28:14 +01:00
Drakulix
b4be5a5786
Comment out logind integration for now
2017-11-29 22:28:14 +01:00
Drakulix
24f2d499f3
Add more logging to session
2017-11-29 22:28:14 +01:00
Drakulix
606efebe1b
Remove unnecessary mutexes
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
Victor Berger
5a0713feb9
Fix winit backend on wayland
...
We were trying to swap_buffers while the xdg_surface had not been
configured yet, which is a protocol error.
2017-09-29 17:22:19 +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
f09bdd0a30
cargo fmt
2017-09-20 20:06:58 +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
Victor Berger
88773cf1b3
cargo fmt
2017-09-05 19:51:05 +02:00
Victor Berger
b19fafa1a0
Update winit dependency
2017-06-24 10:31:36 +02:00
Victor Berger
030261116d
winit's Event has more variants now
2017-06-23 16:14:33 +02:00
Victor Berger
bffc02c5f1
glium: impl Facade
2017-06-23 15:20:09 +02:00
Drakulix
206007f5a5
rustfmt 0.9 update
2017-06-20 11:31:18 +02:00
Drakulix
b131f8168e
Shorten surface type matching
2017-06-20 10:50:20 +02:00
Drakulix
f70cc6bf55
rustfmt
2017-06-18 19:20:23 +02:00
Drakulix
57833f2b2d
Bugfix surface_attribute termination
2017-06-15 13:34:01 +02:00
Drakulix
40e49ad7e9
Fix typos
2017-06-15 13:33:43 +02:00
Drakulix
5155b44946
Check if surface type is matching context type
2017-06-15 13:33:18 +02:00
Drakulix
eef617258e
rustfmt
2017-06-10 23:29:09 +02:00
Drakulix
2d255fd48d
Decouple EGLSurface from EGLContext
2017-06-10 23:28:09 +02:00
Drakulix
11e9999cb9
Better wording for winit make_current
2017-06-05 14:06:58 +02:00
Drakulix
7a0639fae6
Reorder egl library loading
2017-06-04 23:22:51 +02:00
Drakulix
83b98ba77b
Run cargo fmt
2017-06-04 23:13:19 +02:00
Drakulix
2453545329
Added logging to egl&winit + small bugfixes
...
- Added logging to winit & egl
- Fixed winit pointer scroll event only yielding horizontal events
- Fixed unsupported double_buffering for egl
2017-06-04 23:11:26 +02:00
Drakulix
4053d2bc30
Fixed copy&paste logging message errors
2017-06-04 23:10:50 +02:00
Drakulix
a7628610d4
Remove robustness for now
2017-06-02 15:32:31 +02:00
Drakulix
f890b4011d
Fix egl initialization segfaults
...
- Don't initialize a surface twice, if context creation fails for one
version
- Don't let the loaded egl library go out of scope and thus invalidating
the function pointers
2017-06-02 15:25:16 +02:00
Drakulix
e191c08186
Move glium.rs
2017-06-02 13:55:34 +02:00
Drakulix
2c9f6a7479
Flesh out glium compatibility
2017-06-02 13:55:28 +02:00
Drakulix
115eb4d200
Update winit
2017-06-02 13:54:34 +02:00
Drakulix
dbaf4f7746
Rename variable to avoid confusion
2017-05-23 11:03:03 +02:00
Drakulix
94d6a0f987
Fix broken robost implementation
2017-05-23 11:02:39 +02:00
Drakulix
786d719dad
rustfmt fixes
2017-05-21 22:50:50 +02:00
Drakulix
5bc641852f
Bugfixes
2017-05-21 22:40:15 +02:00
Drakulix
b950714c03
First EGL Rework draft
2017-05-18 22:28:02 +02:00
Drakulix
196b48041b
Use an enum instead of a struct for `UnusedEvent`
2017-04-29 16:23:45 +02:00
Drakulix
3bd25011b0
Replace `()` with `UnusedEvent`
2017-04-27 16:12:06 +02:00
Drakulix
a2f3b2a303
Fix some clippy warnings
2017-04-26 20:19:57 +02:00
Drakulix
f7d3b3dee3
Fix formatting
2017-04-26 20:10:28 +02:00
Drakulix
4c5e2be11e
Update libinput to v0.1.1
2017-04-26 20:09:57 +02:00
Drakulix
092fc198c3
Fixup glutin backend and more bugfixes
2017-04-24 00:30:02 +02:00
Drakulix
4fc595f68a
Fixup libinput backend to use new event api
2017-04-23 19:55:43 +02:00
Drakulix
d62f491801
Refactor `InputBackend` to use events.
2017-04-23 19:55:11 +02:00
Drakulix
056ce6312c
Add set_cursor_representation
2017-04-21 22:25:01 +02:00
Drakulix
9b6273f297
Add set_output_metadata
2017-04-18 21:57:53 +02:00
Drakulix
109f4035e8
Move set_cursor_position to the graphics backend
2017-04-18 21:20:08 +02:00
Drakulix
f95faba80f
Add libinput documentation
2017-04-15 22:53:09 +02:00
Drakulix
4afad6f939
Expand `Seat` documentation
2017-04-15 22:48:55 +02:00
Drakulix
cc6f0c9d73
Expand `on_seat_changed` documentation
2017-04-15 22:45:26 +02:00
Drakulix
66ea275d71
Fixup seat implementation
2017-04-15 22:42:42 +02:00
Drakulix
4c591a86bd
Add initializer
2017-04-15 22:38:33 +02:00
Drakulix
8cbe96d1ac
Add more logging
2017-04-15 22:28:51 +02:00
Drakulix
da93b4ac67
Add touch event passing
2017-04-15 22:20:11 +02:00
Drakulix
2cc401594d
Add pointer button event passing
2017-04-15 22:02:44 +02:00
Drakulix
01884a6aa8
Add pointer axis event passing
2017-04-15 21:46:27 +02:00
Drakulix
a5cfed8715
Impl key events
2017-04-15 20:26:44 +02:00
Drakulix
3edb489a92
Add logging to libinput backend
2017-04-15 20:17:26 +02:00
Drakulix
4f3a140543
Fix capability update
2017-04-15 19:29:15 +02:00
Drakulix
0980f8a66c
Remove done todos
2017-04-15 19:29:15 +02:00
Drakulix
ab35f140a0
Use entry api for `DeviceAddedEvent`s seat creation/update
2017-04-15 19:29:15 +02:00
Drakulix
7aca2edb13
Adjust InputBackend for libinput compatibility
...
- Make id be an `u64` to be able to populate it by a hash
- Add internal interface to get a mutable capabilities reference from a `Seat`.
- `InputConfig` type does not need to be `Sized` on `InputBackend`
2017-04-15 19:29:15 +02:00
Drakulix
5369cc2927
First draft of a libinput backend
...
- Only does DeviceEvent parsing for now
- No way to initialize it
2017-04-15 19:29:15 +02:00
Drakulix
cba111bf4f
Add input crate
2017-04-15 19:29:15 +02:00
Victor Berger
a7117369a2
cargo fmt
2017-04-09 16:43:10 +02:00
Drakulix
ae375624ac
Fix formatting
2017-03-20 14:33:27 +01:00
Drakulix
d53a7fcc1d
Added SeatCapabilities
2017-03-19 21:55:32 +01:00
Drakulix
3120683b24
Fix glium support
2017-03-18 17:27:49 +01:00
Drakulix
55e56ffc6d
Rename Renderer to GraphicsBackend
2017-03-18 17:27:38 +01:00
Drakulix
4c2e0f889f
Update features
2017-03-18 17:26:51 +01:00
Drakulix
8e92c9c922
Add InputConfig
2017-03-18 17:14:52 +01:00
Drakulix
460630d0c8
Fixup documentation
2017-03-14 19:35:12 +01:00
Drakulix
728bab5690
Code cleanup
2017-03-14 19:35:02 +01:00
Drakulix
ec8149b084
Initial glutin backend implementation
2017-03-14 19:34:48 +01:00