D2Dで、開始/停止ポイントとしてカスタムパスジオメトリを使用するグラデーションブラシを作成する方法はありますか?パスのステップごとに異なるブラシを作成し、それをそのブラシを使用して個別のパスとしてレンダリングするという簡単な方法を実行できますが、パフォーマンスを低下させないものを探しています。
ありがとう!
必要なのは、Direct2Dには存在しないGDI+のPathGradientと同等です。
回避策として、GDI +を使用して必要なものをビットマップにレンダリングし、Direct2Dで描画してみてください。これはハードウェアアクセラレーションではなく、GDI +とDirect2D間のビットマップ共有は少し不器用ですが、少なくとも機能します。を使用してID2D1Bitmapを作成しID2D1RenderTarget::CreateBitmap()
、次にGDI +ビットマップをロックしてから、GDI+ビットマップデータID2D1Bitmap::CopyFromMemory()
の値を使用します。
ソフトウェアレンダーターゲットを使用している場合はID2D1RenderTarget::CreateSharedBitmap()
、メモのコピーをスキップできるようにすることもできます。最初にGDI+BitmapData(別名「ロックされたGDI +ビットマップ」)を独自のIWICBitmapLock実装でラップする必要があります(難しいことではありませんが、確かに不器用です)。