Blend2D is a next generation 2D vector graphics engine written in C++. It features a built-in JIT compiler that generates high performance 2D pipelines at runtime, which are much faster than static pipelines used in today's 2D engines. Dynamic pipeline construction is the main difference between Blend2D and other 2D engines, and guarantees the highest possible throughtput by taking advantage of CPU extensions detected at runtime. Blend2D provides also a deferred and asynchronous rendering, which makes it seamless to integrate with event-based environments such as node.js and next generation UI toolkits.
Blend2D uses a highly improved version of a rasterizer used by FreeType and AntiGrain. The rasterizer calculates anti-aliased edges by using an analytic approach (i.e. it doesn't use super-sampling). The rasterizer has been primarily designed for text rendering and can render either high quality vector art or text. The original rasterizer has been rewritten completely to improve performance, to decrease memory footprint, and to be more robust. The latest phase of rasterization is SIMD optimized.
Blend2D is a feature rich library that aims to support rendering content defined by SVG, PDF, and other standards. It supports filling and stroking of simple shapes and graphics paths, and allows to change various rendering properties like transformation, fill rule, and stroke options. Blend2D supports various source styles applicable to all painting operations. Graphics paths can be defined by using line segments and both quadratic and cubic Bézier curves.
Blend2D supports all Porter&Duff operators designed for composition of digital images. In addition, it also supports wide range of blending operators defined by SVG, CSS, and PDF specifications. Compositing and blending operators can be applied to any rendering operation, including fills, strokes, and image blits.
Blend2D is developed privately at the moment, but once ready the source code will be released under a ZLIB license. There is no schedule, but the estimated alpha release for testing purposes is February 2017. However, the date is flexible and can be changed accordingly to the project status.
The first part of Blend2D project called B2dPipe is already available on github. It can be used independently of Blend2D and can bring JIT acceleration to any 2D rendering engine.
See Blend's roadmap for more details about all planned and finalized features.
Blend2D started as a personal spare-time project to experiment with JIT compilation of 2D pipelines. However, it's not an experiment anymore and the author is working on releasing a fully working library that can act as a replacement of libraries used today. The library will be released under ZLIB license making it a free technology for everyone.
Blend2D is not backed by any company at the moment and really needs your support. Be first!
Contact us if you have any question regarding the support of the project.