Roadmap
Blend2D roadmap provides information about features planned in next releases. It should be seen only as a high-level overview as minor features and tasks are not listed to make the list manageable. Features are sorted by category, not by priority. All features listed below have a different complexity; they can take days to months to implement. The highest priority features are these related to the rendering engine, pipeline generator, and improved text support. All other features like image filtering or IO have low priority.
Performance Improvements
Feature |
Status |
Description |
Multi-threaded rendering |
Done |
Multi-threaded rendering context implementation. |
AVX2 / AVX-512 acceleration |
Done |
Advanced use of AVX2 and AVX-512 in JIT compiled pipelines. |
AArch64 JIT |
Done |
Fully working JIT on AArch64 (Apple Silicon, RPI, Orange PI, etc...). |
Rasterizer acceleration |
Pending |
Use the advantage of ASIMD/AVX2/AVX-512 in the analytic rasterizer itself (C++ part). |
Shape rasterization |
Pending |
Specialized analytic rasterizers for filling and stroking common shapes such as circle, ellipse, and rounded rectangles. |
Glyph caching |
Pending |
Ability to cache pre-rendered glyphs for faster text rendering. |
Text Features
Feature |
Status |
Description |
Font management |
Partial |
Basic font management, font queries, and font-face caching. |
OpenType API |
Partial |
Make more OpenType features accessible via Blend2D API (GPOS/GSUB and feature selection). |
Geometry Features
Feature |
Status |
Description |
New stroking engine |
In Progress |
Merge new stroking engine into Blend2D - it includes improved stroking algorithms and dashing. |
Rational bezier curves |
In Progress |
Support for rational bezier curves (conics) that can represent arcs exactly [Breaking Change]. |
Perspective transformations |
Pending |
Support for perspective transformations (3x3 matrix) [Breaking Change]. |
Path boolean operations |
Pending |
Ability to perform boolean operations with two or more paths. |
Path on path effect |
Pending |
Ability to deform a path to be on another path, for implementing text-on-path like effects. |
Rendering Context
Feature |
Status |
Description |
A8 pixel format |
Done |
Support for A8 pixel format and rendering to it. |
RGB48 and PRGB64 pixel formats |
Pending |
Support for RGB48 and PRGB64 pixel formats (16-bit per component) |
Gradient dithering |
Done |
High-performance dithered gradients that prevent banding artifacts. |
Aliased rendering |
Pending |
High performance implementation of a rasterizer that doesn't use anti-aliasing. |
Masking support |
Partial |
Support rendering with a mask (prerequisite for many other features). |
Clip to path |
Pending |
Support for non-rectangular clipping (mask based / path to mask). |
Compound rasterization |
Pending |
Ability to rasterize two or more paths and combine them on-the-fly before a final composition. |
Pixel filters |
Pending |
Filters implementing basic color adjustments and color matrix (SVG). |
Image filters |
Pending |
Filters implementing Gaussian blur, generic convolution, erode, dilate, and displacement (SVG). |
Turbulence & noise |
Pending |
Filters generating turbulence and fractal noise (SVG). |
HSL blend modes |
Pending |
Non-separable HSL blending (PDF specification, cairo/skia compatibility). |
Other Features
Feature |
Status |
Description |
PNG encoding |
Initial |
Ability to encode PNG images (complementary functionality to PNG decoder). |
JPEG encoding |
Pending |
Ability to encode JPEG images (complementary functionality to JPEG decoder). |
Contributing
Would you like to help with a feature listed above or do you have a new feature request? Please contact us or fill an issue!