pub trait Device: Device {
Show 35 methods fn resource_handles(&self) -> Result<ResourceHandles, SystemError> { ... }
fn plane_handles(&self) -> Result<PlaneResourceHandles, SystemError> { ... }
fn get_connector(&self, handle: Handle) -> Result<Info, SystemError> { ... }
fn get_encoder(&self, handle: Handle) -> Result<Info, SystemError> { ... }
fn get_crtc(&self, handle: Handle) -> Result<Info, SystemError> { ... }
fn set_crtc(
        &self,
        handle: Handle,
        framebuffer: Option<Handle>,
        pos: (u32, u32),
        conns: &[Handle],
        mode: Option<Mode>
    ) -> Result<(), SystemError> { ... }
fn get_framebuffer(&self, handle: Handle) -> Result<Info, SystemError> { ... }
fn add_framebuffer<B>(
        &self,
        buffer: &B,
        depth: u32,
        bpp: u32
    ) -> Result<Handle, SystemError>
    where
        B: Buffer + ?Sized
, { ... }
fn add_planar_framebuffer<B>(
        &self,
        planar_buffer: &B,
        modifiers: &[Option<DrmModifier>; 4],
        flags: u32
    ) -> Result<Handle, SystemError>
    where
        B: PlanarBuffer + ?Sized
, { ... }
fn dirty_framebuffer(
        &self,
        handle: Handle,
        clips: &[drm_clip_rect]
    ) -> Result<(), SystemError> { ... }
fn destroy_framebuffer(&self, handle: Handle) -> Result<(), SystemError> { ... }
fn get_plane(&self, handle: Handle) -> Result<Info, SystemError> { ... }
fn set_plane(
        &self,
        handle: Handle,
        crtc: Handle,
        framebuffer: Option<Handle>,
        flags: u32,
        crtc_rect: (i32, i32, u32, u32),
        src_rect: (u32, u32, u32, u32)
    ) -> Result<(), SystemError> { ... }
fn get_property(&self, handle: Handle) -> Result<Info, SystemError> { ... }
fn set_property<T: ResourceHandle>(
        &self,
        handle: T,
        prop: Handle,
        value: RawValue
    ) -> Result<(), SystemError> { ... }
fn create_property_blob<T>(
        &self,
        data: &T
    ) -> Result<Value<'static>, SystemError> { ... }
fn get_property_blob(&self, blob: u64) -> Result<Vec<u8>, SystemError> { ... }
fn destroy_property_blob(&self, blob: u64) -> Result<(), SystemError> { ... }
fn get_modes(&self, handle: Handle) -> Result<Vec<Mode>, SystemError> { ... }
fn get_properties<T: ResourceHandle>(
        &self,
        handle: T
    ) -> Result<PropertyValueSet, SystemError> { ... }
fn get_gamma(
        &self,
        crtc: Handle,
        red: &mut [u16],
        green: &mut [u16],
        blue: &mut [u16]
    ) -> Result<(), SystemError> { ... }
fn set_gamma(
        &self,
        crtc: Handle,
        red: &[u16],
        green: &[u16],
        blue: &[u16]
    ) -> Result<(), SystemError> { ... }
fn open_buffer(&self, name: Name) -> Result<Handle, SystemError> { ... }
fn close_buffer(&self, handle: Handle) -> Result<(), SystemError> { ... }
fn create_dumb_buffer(
        &self,
        size: (u32, u32),
        format: DrmFourcc,
        bpp: u32
    ) -> Result<DumbBuffer, SystemError> { ... }
fn map_dumb_buffer<'a>(
        &self,
        buffer: &'a mut DumbBuffer
    ) -> Result<DumbMapping<'a>, SystemError> { ... }
fn destroy_dumb_buffer(&self, buffer: DumbBuffer) -> Result<(), SystemError> { ... }
fn set_cursor<B>(
        &self,
        crtc: Handle,
        buffer: Option<&B>
    ) -> Result<(), SystemError>
    where
        B: Buffer + ?Sized
, { ... }
fn set_cursor2<B>(
        &self,
        crtc: Handle,
        buffer: Option<&B>,
        hotspot: (i32, i32)
    ) -> Result<(), SystemError>
    where
        B: Buffer + ?Sized
, { ... }
fn move_cursor(
        &self,
        crtc: Handle,
        pos: (i32, i32)
    ) -> Result<(), SystemError> { ... }
fn atomic_commit(
        &self,
        flags: AtomicCommitFlags,
        req: AtomicModeReq
    ) -> Result<(), SystemError> { ... }
fn prime_fd_to_buffer(&self, fd: RawFd) -> Result<Handle, SystemError> { ... }
fn buffer_to_prime_fd(
        &self,
        handle: Handle,
        flags: u32
    ) -> Result<RawFd, SystemError> { ... }
fn page_flip(
        &self,
        handle: Handle,
        framebuffer: Handle,
        flags: PageFlipFlags,
        target_sequence: Option<(PageFlipTarget, u32)>
    ) -> Result<(), SystemError> { ... }
fn receive_events(&self) -> Result<Events, SystemError>
    where
        Self: Sized
, { ... }
}
Expand description

This trait should be implemented by any object that acts as a DRM device and provides modesetting functionality.

Like the parent super::Device trait, this crate does not provide a concrete object for this trait.

Example

use drm::control::Device as ControlDevice;

/// Assuming the [`Card`] wrapper already implements [`drm::Device`]
impl ControlDevice for Card {}

Provided methods

Gets the set of resource handles that this device currently controls

Gets the set of plane handles that this device currently has

Returns information about a specific connector

Returns information about a specific encoder

Returns information about a specific CRTC

Set CRTC state

Returns information about a specific framebuffer

Add a new framebuffer

Add framebuffer (with modifiers)

Mark parts of a framebuffer dirty

Destroy a framebuffer

Returns information about a specific plane

Set plane state.

Providing no framebuffer clears the plane.

Returns information about a specific property.

Sets a property for a specific resource.

Create a property blob value from a given data blob

Get a property blob’s data

Destroy a given property blob value

Returns the set of Modes that a particular connector supports.

Gets a list of property handles and values for this resource.

Receive the currently set gamma ramp of a crtc

Set a gamma ramp for the given crtc

Open a GEM buffer handle by name

Close a GEM buffer handle

Create a new dumb buffer with a given size and pixel format

Map the buffer for access

Free the memory resources of a dumb buffer

👎 Deprecated:

Usage of deprecated ioctl set_cursor: use a cursor plane instead

Sets a hardware-cursor on the given crtc with the image of a given buffer

A buffer argument of None will clear the cursor.

👎 Deprecated:

Usage of deprecated ioctl set_cursor2: use a cursor plane instead

Sets a hardware-cursor on the given crtc with the image of a given buffer and a hotspot marking the click point of the cursor.

A buffer argument of None will clear the cursor.

👎 Deprecated:

Usage of deprecated ioctl move_cursor: use a cursor plane instead

Moves a set cursor on a given crtc

Request an atomic commit with given flags and property-value pair for a list of objects.

Convert a prime file descriptor to a GEM buffer handle

Convert a prime file descriptor to a GEM buffer handle

Queue a page flip on the given crtc

Receive pending events

Implementors