Calls ceil() on dimension bounds as this appears fix svg memory unbounded usage because no longer cache miss. The height and width return from resvg seem to always be ceiling of float dimensions, so we try to match. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| README.md | ||
iced_wgpu
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.
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
Clipprimitive 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_brushlimitation)
Some of these issues are already being worked on! If you want to help, get in touch!