iced/wgpu
Héctor Ramón Jiménez 0d7e236039 Resize text measure cache to avoid panic
This should not be really necessary, as we are not really drawing
anything with the measure brush... But we are using `glyph_brush`
in an unconventional way, so that may be the cause. We need to redesign
`wgpu_glyph` or come up with an alternative.
2019-12-18 23:14:54 +01:00
..
fonts Fallback to embedded font when system font fails 2019-11-26 15:32:11 +01:00
src Resize text measure cache to avoid panic 2019-12-18 23:14:54 +01:00
Cargo.toml Put svg rendering behind a feature gate 2019-12-15 06:45:20 +01:00
CHANGELOG.md Add CHANGELOG to subcrates 2019-11-25 14:55:14 +01:00
README.md Add installation section to subcrate READMEs 2019-11-20 09:56:16 +01:00

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.
  • Images, lazily loaded from the filesystem.
  • Clip areas, useful to implement scrollables or hide overflowing content.

iced_wgpu

Installation

Add iced_wgpu as a dependency in your Cargo.toml:

iced_wgpu = "0.1.0"

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!