Blend2D est un moteur graphique vectoriel 2D haute performance. Il a été écrit à partir de zéro dans le but d'atteindre la meilleure accélération logicielle possible de rendu 2D. Blend2D fournit un rasterizer analytique de haute qualité, un nouveau moteur de cadres qui utilise le décalage de la courbe au lieu d'aplatir, et un générateur de pipelines 2D qui utilise la compilation JIT pour générer des pipelines 2D optimaux à l'exécution.
Delphiblend2d ouvre OP Blend2d pour les développeurs Delphi. Il fournit des traductions d'en-tête pour l'API Blend2D C, ainsi qu'un cadre orienté objet pour faciliter l'utilisation.
Notez que Blend2D (et donc Delphiblend2d) est toujours en version bêta. L'API et le cadre sont susceptibles de changer.
Delphiblend2d prend actuellement en charge Windows (32 et 64 bits). La prise en charge de MacOS, iOS et Android est prévue pour les futures versions.
Les bibliothèques Blend2D actuellement utilisées ne sont pas encore entièrement optimisées. Bien que les performances soient déjà excellentes, attendez-vous à des performances encore meilleures une fois que Blend2D sort de la version bêta.
Le cadre Delphiblend2D OOP suit l'API Blend2D C ++ aussi étroitement que possible. Il utilise des interfaces pour la gestion automatique des ressources. L'extrait ci-dessous est tiré du projet d'échantillon blGettingStarted05 .
procedure Run ;
var
Image: IBLImage;
Context: IBLContext;
Radial, Linear: IBLGradient;
Codec: IBLImageCodec;
begin
Image := TBLImage.Create( 480 , 480 );
Context := TBLContext.Create(Image);
Context.CompOp := TBLCompOp.SrcCopy;
Context.FillAll;
{ First shape filled by a radial gradient. }
Radial := TBLGradient.Create(BLRadialGradientValues( 180 , 180 , 180 , 180 , 180 ));
Radial.AddStop( 0.0 , BLRgba32($FFFFFFFF));
Radial.AddStop( 1.0 , BLRgba32($FFFF6F3F));
Context.CompOp := TBLCompOp.SrcOver;
Context.SetFillStyle(Radial);
Context.FillCircle( 180 , 180 , 160 );
{ Second shape filled by a linear gradient. }
Linear := TBLGradient.Create(BLLinearGradientValues( 195 , 195 , 470 , 470 ));
Linear.AddStop( 0.0 , BLRgba32($FFFFFFFF));
Linear.AddStop( 1.0 , BLRgba32($FF3F9FFF));
Context.CompOp := TBLCompOp.Difference;
Context.SetFillStyle(Linear);
Context.FillRoundRect( 195 , 195 , 270 , 270 , 25 );
Context.Finish;
Codec := TBLImageCodec.Create;
if (Codec.FindByName( ' BMP ' )) then
Image.WriteToFile( ' blGettingStarted05.bmp ' , Codec);
end ;Il crée la sortie suivante:

La documentation peut actuellement être trouvée en tant que commentaires de code dans l'unité Blend2D.pas . Une documentation distincte sera fournie une fois que Blend2D sera sorti de la version bêta.
Étant donné que le framework correspond à l'API C ++ d'origine dans la mesure du possible, vous pouvez également utiliser la documentation Blend2D d'origine.
Delphiblend2D est livré avec une variété d'applications d'échantillons qui correspondent aux exemples d'applications d'origine de Blend2D:
SamplesGettingStarted contient des applications de console qui utilisent Delphiblend2d pour créer des images et les enregistrer dans des fichiers .BMP . Ces échantillons n'utilisent pas le cadre VCL ou FiremonKey.SamplesFireMonkey contient des échantillons qui utilisent le framework FiremonKey pour fournir une interface utilisateur simple. Ceux-ci correspondent aux exemples d'origine Blend2D qui utilisent le framework QT. La plupart de ces applications vous permettent de basculer entre le rendu FiremonKey intégré et le rendu mélangée. Actuellement, ces échantillons ne fonctionnent que sur Windows et MacOS. Les fonctionnalités prévues pour les versions futures comprennent:
TPaintBox pour VCL et FiremonKey qui rend à la place Blend42.Blend2D et Delphiblend2d sont libérés sous la licence ZLIB. Voir Licence.txt pour plus de détails.