This release has an MSRV of 1.89.
This release has an MSRV of 1.89.
As part of this release, “Vello Hybrid” has been renamed into “Vello GPU”.
unminified feature in vello_gpu_shaders for readable shader output. (#1851 by @grebmeg)WebGlRenderer::begin and begin_with. (#1823 by @grebmeg)Scene::push_clip_rect for non-isolated rectangular clipping. (#1916 by @LaurenzV)ImageSampler::alpha. (#1880 by @LaurenzV)vello_hybrid crate to vello_gpu. HybridGlyphRunBackend is now GpuGlyphRunBackend. (#1883 by @grebmeg, #1918 by @LaurenzV)wgpu to v30 and fearless_simd to v0.7.0. (#1909, #1853 by @LaurenzV)Scene::set_paint, replacing draw_texture_rects and adding support for arbitrary shapes, extend modes, and transparency hints. (#1812, #1813, #1824 by @LaurenzV)use_depth_buffer argument in WebGL. (#1808, #1810 by @grebmeg)TargetInit in wgpu and a clear color in WebGL. (#1869 by @LaurenzV)WebGlError results. (#1892 by @LaurenzV, #1921 by @grebmeg)RenderSize, RenderTargetConfig, atlas configuration, and related dimensions now use u16. (#1826, #1891 by @LaurenzV)atlas_texture takes an AtlasId. (#1859 by @LaurenzV)Scene::pop_clip_path to pop_clip. (#1942 by @LaurenzV)GlyphRunBuilder::fill_glyphs and stroke_glyphs now return Result<(), glifo::GlyphRenderError>. (#1944 by @LaurenzV)failIfMajorPerformanceCaveat. (#1806 by @LaurenzV)ImageQuality::Medium) instead of switching to bicubic sampling when downscaled. (#1970 by @LaurenzV)std feature no longer implicitly enables wgpu. (#1822 by @taj-p)sbix glyphs caused by the Apple Color Emoji workaround. (#1936 by @LaurenzV)sbix glyph placement caused by sign errors in bearing offsets. (#1939 by @LaurenzV)WEBGL_provoking_vertex support. (#1805, #1827 by @LaurenzV)This release has an MSRV of 1.88.
Scene::draw_texture_rects in the webgl backend, bringing it to parity with the wgpu backend. Textures are bound at render time through the new WebGlTextureBindings. (#1792 by @grebmeg)ProbeResult::statistics, ProbeStatistics, and ProbeFeature for diagnosing which renderer-probe features and pixels differ from the reference output. (#1779 by @LaurenzV)PROBE_ELEMENTS for inspecting the active features used by the WebGL compatibility probe. (#1801 by @LaurenzV)Renderer::new, Renderer::new_with, WebGlRenderer::new, and WebGlRenderer::new_with now return the renderer and its associated Resources as a tuple. Resources can no longer be constructed directly and must only be used with the renderer instance that generated it. (#1794 by @LaurenzV)Scene::new_with now takes a Level instead of RenderSettings. (#1794 by @LaurenzV)WebGlRenderer::render and WebGlRenderer::render_to_atlas now take WebGlTextureBindings, providing the external textures referenced by the scene. Pass &WebGlTextureBindings::new() if the scene does not use any. (#1792 by @grebmeg)IntermediateTextureError variants for oversized allocations and texture-count limits. (#1778 by @grebmeg)This release has an MSRV of 1.88.
invert parameter on Scene::fill_blurred_rounded_rect, enabling inset box shadows. (#1715 by @nicoburns)Resources::new_with_config for configuring the image and glyph atlas used by resources. (#1750 by @grebmeg)FilterPrimitive::DropShadowOnly for rendering a drop shadow without compositing the original input over it. (#1763 by @LaurenzV)Scene::reset_and_resize, allowing a scene to be reused after its target size changes. (#1769 by @LaurenzV)WebGlRenderer::probe is now asynchronous. It returns a WebGlPendingProbe, which can be polled with try_finish, avoiding a synchronous GPU-to-CPU readback stall and providing specific WebGL error codes on failure. (#1671, #1735 by @LaurenzV)RenderSettings now contains MemorySettings, with separate image-atlas and intermediate-layer configuration. SceneConstraints and RenderError::SlotsExhausted have been removed, and LayersConfig allows applications to limit and tune intermediate textures. (#1759 by @LaurenzV)webgl feature is enabled, including on non-Wasm targets. (#1682 by @jesses-canva)wasm-bindgen-related dependencies. (#1683 by @LaurenzV)u16 coordinates. (#1666 by @dipeshbabu)peniko::ImageData by computing and retaining its transparency hint during conversion. (#1760 by @tronical)This release has an MSRV of 1.88.
This release has an MSRV of 1.88.
Support for sampling from external textures through Scene::draw_texture_rects. (#1552 by @tomcur)
This method can sample many regions from a texture at once, allowing the texture to be used as an atlas. You bind the textures at render-time (as opposed to scene-construction time), allowing drawing of quickly-changing textures without interning them into the renderer.
External textures are not yet supported by the webgl backend.
Bicubic image sampling in the sparse shader path, improving high-quality image rendering. (#1557 by @waywardmonkeys)
WebGlRenderer::probe behind the probe feature to sanity-check WebGL device compatibility by rendering a small reference scene and comparing the output. (#1596 by @LaurenzV)
render_decoration on glyph run builders for rendering text decorations with skip-ink behavior. (#1592 by @taj-p)
Support for rendering VARC glyphs in text paths. (#1594 by @nicoburns, @oscargus)
Support for synthetic font emboldening in text glyph runs via GlyphRunBuilder::font_embolden and glifo::FontEmbolden. (#1628 by @jrmoulton)
wgpu to v29. (#1534 by @nicoburns)glifo; renderer resources are now managed through Resources, which must be passed to text, image upload, and render operations such as Scene::glyph_run, Renderer::render, and Renderer::upload_image. (#1562 by @LaurenzV)may_have_opacities and *_opacity_hint to may_have_transparency and *_transparency_hint. (#1613 by @upsuper)Renderer::destroy_image and WebGlRenderer::destroy_image now take &mut Resources instead of &mut ImageCache, allowing clients to destroy images through the public resource container. (#1580 by @LaurenzV)TextureBindings now owns wgpu::TextureViews, allowing bindings to be held across frames more easily. insert now takes a TextureView by value and remove returns the removed view if present. (#1639 by @tomcur)vello_api integration and api module. (#1602 by @waywardmonkeys)SceneConstraints::default_blending_only() now allows non-default blend modes inside nested layers, while still rejecting them on the root layer. (#1554 by @LaurenzV)RenderSettings::default() and oversized atlas settings to work on more devices. (#1568 by @LaurenzV)wgpu render targets are cleared before drawing, fixing stale pixels in transparent or untouched regions when rendering into reused offscreen targets. (#1572 by @waywardmonkeys)WebGlRenderer construction no longer leaks framebuffer state, fixing a panic when creating a second WebGL renderer. (#1603 by @LaurenzV)probe no longer enables std, and std no longer implies wgpu, preserving WebGL-only configurations. (#1614 by @LaurenzV)fill_rect calls, and blurred rounded rectangles. (#1565, #1586 by @LaurenzV, #1610 by @waywardmonkeys)This release has an MSRV of 1.92.
render_to_atlas and write_to_atlas APIs for glyph caching. (#1458 by @grebmeg)push_blend_layer, push_opacity_layer and push_mask_layer methods to Scene. (#1420 by @grebmeg)wgpu to v28. (#1492 by @xStrom)This release has an MSRV of 1.88.
See also the vello_cpu 0.0.6 and vello_common 0.0.6 releases.
This release has an MSRV of 1.88.
Scene now contains a push_clip_path and pop_clip_path method for performing non-isolated clipping. (#1203 by @LaurenzV)See also the vello_cpu 0.0.5 and vello_common 0.0.5 releases.
This release has an MSRV of 1.86.
This is the initial release. No changelog was kept for this release.
See also the vello_cpu 0.0.4 and vello_common 0.0.4 releases.