20 releases (12 breaking)

0.12.1 Feb 22, 2024
0.11.1 Aug 2, 2023
0.11.0 Jul 28, 2023
0.9.0 Feb 18, 2023
0.1.0 Nov 25, 2019

#852 in GUI

Download history 3175/week @ 2023-12-23 2714/week @ 2023-12-30 4118/week @ 2024-01-06 5325/week @ 2024-01-13 5971/week @ 2024-01-20 4387/week @ 2024-01-27 3668/week @ 2024-02-03 4823/week @ 2024-02-10 5207/week @ 2024-02-17 4850/week @ 2024-02-24 5155/week @ 2024-03-02 5259/week @ 2024-03-09 5206/week @ 2024-03-16 5748/week @ 2024-03-23 4840/week @ 2024-03-30 3558/week @ 2024-04-06

19,884 downloads per month
Used in 45 crates (9 directly)

MIT license

445KB
8K SLoC

iced_wgpu

Documentation Crates.io License Discord Server

iced_wgpu is a wgpu renderer for iced_runtime. For now, it is the default renderer of Iced on native platforms.

wgpu supports most modern graphics backends: Vulkan, Metal, and DX12 (OpenGL and WebGL are still WIP). Additionally, it will support the incoming WebGPU API.

Currently, iced_wgpu supports the following primitives:

  • Text, which is rendered using wgpu_glyph. No shaping at all.
  • Quads or rectangles, with rounded borders and a solid background color.
  • Clip areas, useful to implement scrollables or hide overflowing content.
  • Images and SVG, loaded from memory or the file system.
  • Meshes of triangles, useful to draw geometry freely.

The native target

Installation

Add iced_wgpu as a dependency in your Cargo.toml:

iced_wgpu = "0.10"

Iced moves fast and the master branch can contain breaking changes! If you want to learn about a specific release, check out the release list.

Current limitations

The current implementation is quite naive; it uses:

  • A different pipeline/shader for each primitive
  • A very simplistic layer model: every Clip primitive will generate new layers
  • Many render passes instead of preparing everything upfront
  • A glyph cache that is trimmed incorrectly when there are multiple layers (a glyph_brush limitation)

Some of these issues are already being worked on! If you want to help, get in touch!

Dependencies

~19–54MB
~840K SLoC