Hybrid CPU/GPU renderer
A hybrid CPU/GPU renderer for 2D vector graphics.
This crate provides a rendering API that combines CPU and GPU operations for efficient vector graphics processing. The hybrid approach balances flexibility and performance by:
wgpu (enabled by default): Enables the GPU rendering backend via wgpu and includes the required sparse shaders.wgpu_default (enabled by default): Enables wgpu with its default hardware backends (such as Vulkan, Metal, and DX12).text (enabled by default): Enables glyph rendering ([Scene::glyph_run]).webgl: Enables the WebGL rendering backend for browser support, using GLSL shaders for compatibility.If you need to customize the set of enabled wgpu features, disable this crate‘s default features then enable its wgpu feature. You can then depend on wgpu directly, setting the specific features you require. Don’t forget to also disable wgpu's default features.
The renderer is split into several key components:
Scene: Manages the render context and path processing on the CPURenderer or WebGlRenderer: Handles GPU resource management and executes draw operationsScheduler: Manages and schedules draw operations on the renderer.See the individual module documentation for more details on usage and implementation.
This version of Vello Hybrid has been verified to compile with Rust 1.92 and later.
Future versions of Vello Hybrid might increase the Rust version requirement. It will not be treated as a breaking change and as such can even happen with small patch releases.
As time has passed, some of Vello Hybrid‘s dependencies could have released versions with a higher Rust requirement. If you encounter a compilation issue due to a dependency and don’t want to upgrade your Rust toolchain, then you could downgrade the dependency.
# Use the problematic dependency's name and version cargo update -p package_name --precise 0.1.1
Discussion of Vello Hybrid development happens in the Linebender Zulip, specifically the #vello channel. All public content can be read without logging in.
Contributions are welcome by pull request. The Rust code of conduct applies.
Licensed under either of
at your option.