【发布时间】:2015-07-13 22:48:29
【问题描述】:
我在 VCL windows 平台上使用 C++Builder XE4,并且我使用包装器 TDirect2DCanvas 来访问 Direct2D 函数。我正在将 GDI+ 代码移植到 Direct2D,但我一直坚持如何在 Direct2D 中绘制透明线。当我说透明时,我正在考虑使用某种类型的 alpha 混合或透明设置来设置线条,以便可以看到线条下方的图像。下面的代码创建一个 Direct2D 渐变画笔并在 Direct2D 渲染目标上绘制一条线,但没有透明度。您能否展示如何设置画笔和/或钢笔以使线条透明。谢谢
// begin drawing
Canvas2D_->BeginDraw();
try
{
TColor clrs[] = {clRed, clLime};
// create a gradient brush
DelphiInterface<ID2D1Brush> pBrush =
Canvas->CreateBrush(clrs, 1,
D2D1::Point2F(-w/2, -h/2),
D2D1::Point2F(w/2, h/2));
Canvas->Brush->Handle = pBrush;
Canvas->Pen->Width = 10;
int x=25;
Canvas->MoveTo(x, -half_h);
Canvas->LineTo(x, half_h);
}
__finally
{
// end drawing (actual screen update)
Canvas2D_->EndDraw();
}
【问题讨论】:
标签: delphi c++builder direct2d