pub struct VirtIOGpu<H: Hal, T: Transport> { /* private fields */ }Expand description
A virtio based graphics adapter.
It can operate in 2D mode and in 3D (virgl) mode. 3D mode will offload rendering ops to the host gpu and therefore requires a gpu with 3D support on the host machine. In 2D mode the virtio-gpu device provides support for ARGB Hardware cursors and multiple scanouts (aka heads).
Implementations§
Source§impl<H: Hal, T: Transport> VirtIOGpu<H, T>
impl<H: Hal, T: Transport> VirtIOGpu<H, T>
Sourcepub fn ack_interrupt(&mut self) -> InterruptStatus
pub fn ack_interrupt(&mut self) -> InterruptStatus
Acknowledge interrupt.
Sourcepub fn resolution(&mut self) -> Result<(u32, u32)>
pub fn resolution(&mut self) -> Result<(u32, u32)>
Get the resolution (width, height).
Sourcepub fn get_edid(&mut self, scanout: u32) -> Result<Edid>
pub fn get_edid(&mut self, scanout: u32) -> Result<Edid>
Get the EDID data for the specified scanout.
Returns an Edid struct wrapping the EDID blob.
Requires the EDID feature to have been negotiated.
Sourcepub fn edid_preferred_resolution(&mut self) -> Result<(u32, u32)>
pub fn edid_preferred_resolution(&mut self) -> Result<(u32, u32)>
Get the preferred resolution from the EDID data.
Parses the first Detailed Timing Descriptor in the EDID to extract the preferred display resolution. Returns (width, height).
Sourcepub fn edid_supported_resolutions(&mut self) -> Result<Vec<(u32, u32)>>
pub fn edid_supported_resolutions(&mut self) -> Result<Vec<(u32, u32)>>
Get the list of supported resolutions from EDID data.
Returns up to 8 resolutions from the Standard Timings block, sorted by total pixel count (largest first). Each entry is (width, height).
Sourcepub fn setup_framebuffer(&mut self) -> Result<&mut [u8]>
pub fn setup_framebuffer(&mut self) -> Result<&mut [u8]>
Setup framebuffer at the display’s default resolution.
Sourcepub fn change_resolution(
&mut self,
width: u32,
height: u32,
) -> Result<&mut [u8]>
pub fn change_resolution( &mut self, width: u32, height: u32, ) -> Result<&mut [u8]>
Set or change the framebuffer resolution. If a framebuffer already exists, tears down the
existing resource before creating the new one. Can be called before or after
setup_framebuffer to set an explicit resolution.
Returns a mutable slice to the new framebuffer memory.
Sourcepub fn setup_cursor(
&mut self,
cursor_image: &[u8],
pos_x: u32,
pos_y: u32,
hot_x: u32,
hot_y: u32,
) -> Result
pub fn setup_cursor( &mut self, cursor_image: &[u8], pos_x: u32, pos_y: u32, hot_x: u32, hot_y: u32, ) -> Result
Set the pointer shape and position.
Sourcepub fn move_cursor(&mut self, pos_x: u32, pos_y: u32) -> Result
pub fn move_cursor(&mut self, pos_x: u32, pos_y: u32) -> Result
Move the pointer without updating the shape.