8 releases (4 breaking)

0.4.0 Mar 31, 2021
0.3.0 Nov 26, 2020
0.2.3 May 30, 2020
0.2.2 Apr 26, 2020
0.0.0 Aug 26, 2019
Download history 858/week @ 2020-12-25 961/week @ 2021-01-01 1176/week @ 2021-01-08 914/week @ 2021-01-15 1349/week @ 2021-01-22 1097/week @ 2021-01-29 1304/week @ 2021-02-05 1082/week @ 2021-02-12 1438/week @ 2021-02-19 1130/week @ 2021-02-26 1220/week @ 2021-03-05 1515/week @ 2021-03-12 1146/week @ 2021-03-19 2215/week @ 2021-03-26 1490/week @ 2021-04-02 1074/week @ 2021-04-09

5,390 downloads per month
Used in 9 crates (4 directly)

MIT AND OFL-1.1

590KB
15K SLoC

iced_wgpu

Documentation Crates.io License project chat

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

wgpu supports most modern graphics backends: Vulkan, Metal, DX11, 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.4"

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

~6–14MB
~265K SLoC