BLEND2Dは、高性能2Dベクターグラフィックエンジンです。これは、2Dレンダリングの可能な限り最高のソフトウェアベースの加速を達成することを目標にゼロから書いたものです。 BLEND2Dは、高品質の分析ラスター化装置、平坦化の代わりにカーブオフセットを使用する新しいストロークエンジン、およびJITコンパイルを使用して実行時に最適な2Dパイプラインを生成する2Dパイプラインジェネレーターを提供します。
Delphiblend2dは、Delphi開発者向けにOP BLEND2Dを開きます。 Blend2D C APIのヘッダー翻訳と、使いやすくするオブジェクト指向のフレームワークを提供します。
Blend2d(したがってDelphiblend2d)はまだベータ版にあることに注意してください。 APIとフレームワークは変更される場合があります。
Delphiblend2Dは現在、Windows(32および64ビット)をサポートしています。 MacOS、iOS、Androidのサポートは、将来のバージョンで計画されています。
現在使用されているBlend2Dライブラリは、まだ完全には最適化されていません。パフォーマンスはすでに優れていますが、Blend2Dがベータから抜け出すと、パフォーマンスがさらに向上することを期待してください。
Delphiblend2D OOPフレームワークは、Blend2D C ++ APIにできるだけ密接に従います。自動リソース管理にインターフェイスを使用します。以下のスニペットは、 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 ;次の出力を作成します。

現在、ドキュメントはBlend2D.pasユニットのコードコメントとして見つけることができます。 Blend2Dがベータから抜け出すと、個別のドキュメントが提供されます。
フレームワークは、可能であれば元のC ++ APIと一致するため、元のBlend2Dドキュメントを使用することもできます。
delphiblend2dには、blend2dの元のサンプルアプリケーションに一致するさまざまなサンプルアプリケーションが付属しています。
SamplesGettingStartedディレクトリには、delphiblend2dを使用して画像を作成し、 .BMPファイルに保存するコンソールアプリケーションが含まれています。これらのサンプルは、VCLまたはFireMonkeyフレームワークを使用していません。SamplesFireMonkeyディレクトリには、Firemonkeyフレームワークを使用して単純なUIを提供するサンプルが含まれています。これらは、QTフレームワークを使用する元のBlend2Dの例と一致します。これらのアプリケーションのほとんどを使用すると、組み込みのFiremonkeyレンダリングとBlend2Dレンダリングを切り替えることができます。現在、これらのサンプルはWindowsとMacOでのみ機能しています。 将来のリリースのために計画されている機能は次のとおりです。
TPaintBox -LIKEコントロールを提供します。blend2dとdelphiblend2dの両方は、zlibライセンスの下でリリースされます。詳細については、license.txtを参照してください。