| Crates.io | uefi-graphics2 |
| lib.rs | uefi-graphics2 |
| version | 0.5.0 |
| created_at | 2024-04-16 16:56:24.900094+00 |
| updated_at | 2025-06-21 18:04:29.289988+00 |
| description | An embedded-graphics display driver for UEFI environments |
| homepage | |
| repository | https://github.com/theaddonn/uefi-graphics2 |
| max_upload_size | |
| id | 1210446 |
| size | 33,103 |
A fast embedded-graphics display driver for UEFI environments,
using the embedded-graphics crate as its base.
Supports:
embedded-graphics crateuefi-graphics and uefi-graphics-driver
are two crates providing similar functionality,
sadly both seem to either lack some of the necessary functionality or are completely unmaintained
Here is a simple example with using the uefi crate on version 0.30.0:
#![no_main]
#![no_std]
extern crate alloc;
use embedded_graphics::geometry::Point;
use embedded_graphics::mono_font::ascii::FONT_6X10;
use embedded_graphics::mono_font::MonoTextStyle;
use embedded_graphics::pixelcolor::Rgb888;
use embedded_graphics::text::Text;
use embedded_graphics::Drawable;
use uefi::prelude::*;
use uefi::proto::console::gop::GraphicsOutput;
use uefi_graphics2::UefiDisplay;
#[entry]
fn main() -> Status {
uefi::helpers::init().unwrap();
// Disable the watchdog timer
boot::set_watchdog_timer(0, 0x10000, None).unwrap();
// Get gop
let gop_handle = boot::get_handle_for_protocol::<GraphicsOutput>().unwrap();
let mut gop = boot::open_protocol_exclusive::<GraphicsOutput>(gop_handle).unwrap();
// Create UefiDisplay
let mode = gop.current_mode_info();
let mut display = UefiDisplay::new(gop.frame_buffer(), mode).unwrap();
// Create a new character style
let style = MonoTextStyle::new(&FONT_6X10, Rgb888::WHITE);
// Create a new text
let text = Text::new("Hello World!", Point { x: 30, y: 100 }, style);
// Draw the text on the display
text.draw(&mut display).unwrap();
// Flush everything
display.flush();
// wait 10000000 microseconds (10 seconds)
boot::stall(10_000_000);
Status::SUCCESS
}
More example can be found in the example
directory uefi-graphics2/examples.
If any dependencies are outdated, bugs occur or features are requested, please notify me and create an issue.
Contributing is appreciated as well, feel free to create a pull request.
If you like this project dont forget to leave a star on github!