Rust DRM
Rust DRM provides a Rust interface to the Direct Rendering Manager API in Linux. This uses ioctl's to talk to a DRM driver in order to get the current state of screens, perform mode setting, get vsync timing and allocate dumb buffers.
(Nothing to do with Digital Rights Management.)
To use
Add to Cargo.toml:
drm = { git = "https://github.com/HornetBlack/rust-drm.git" }
Add to your crate:
extern crate drm;
Things to see and do:
- Listing availble cards:
use Device;
for path in cards.unwrap
- Get the version information:
let version = dev.version;
println!;
let = version.number;
println!;
- Get resource information:
use *;
let res = dev.get_resources.unwrap;
for conn in res.connectors
- Get vblank events:
use ErrorKind;
dev.request_vblank.unwrap;
loop
- Create a "Dumb buffer".
use ;
let buf = create.unwrap;
- Put a frame buffer on a screen: Requires some setup. (TODO: Fix magenta.rs so that it works again)
let master = dev.set_master.unwrap;
master.set_crtc.unwrap;
TODO:
- Better documentation.
- [✓] Capability information.
- Page flip.
- Clean up DumbBuf.
- [✓] Implement Cursors.