v0.1.5
Summary
Runtime-agnostic async present APIs and optional Embassy integration for overlapping CPU render with DMA transfer.
crates.io: https://crates.io/crates/embedded-gui/0.1.5
Highlights
Async present stack (no executor required)
CompletionSlot— ISR-safe DMA completion flag with waker supportWaitTransfer/WaitTransferFuture— wire display DMA tokens to async waitSwapChain—present_async,present_region_async,wait_for_vsync_async, and non-blockingtry_presentDisplayBackend/AsyncDmaTransfer— backend trait extensions for async DMA- GUI helpers —
try_present_dirty,present_dirty_async,try_present_framefor dirty-region present
Optional Embassy feature
- Enable with
embassyfeature (pulls inembassy-time+embassy-sync) EmbassyWaitTransferandFrameClockfor Embassy-based frame loops- Examples:
completion_swapchain_sim,embassy_gui_frame
Other changes since 0.1.4
- Gate full widget catalog behind
rich-widgetsfeature; keep essential widgets always on - Sweeping-arc perf: skip trig at cardinal angles; cross-product sector test
- Context module refactor and expanded test coverage
Features
| Feature | Default | Description |
|---|---|---|
embassy |
off | Embassy wakers + FrameClock |
embassy-time |
off | Time types for Embassy integration |
triple-buffering |
off | Triple-buffered swapchain APIs |
Upgrade
embedded-gui = "0.1.5"Rasterization stays synchronous; async is for present/wait/DMA overlap only — see README for RTIC/Embassy patterns.