如何在C++中使用DirectX绘制透明矩形

How do I draw transparent Rectangles using DirectX in C++?

本文关键字:绘制 DirectX 透明 C++      更新时间:2023-10-16

我想绘制部分透明的对象,但我不知道如何绘制。我正在使用MSDN并使用C++进行编码。

下面的代码是我如何绘制一个规则矩形,但我想绘制一个透明矩形。

VOID DrawingObject::Draw()
{
    ID2D1HwndRenderTarget *m_pRenderTarget;
    m_pRenderTarget->FillRectangle(RectF(10, 10, 20, 20),
        m_pD2DDriver->GetBrush(static_cast<DrawingColor>(m_uColorIndex))
        );
}

非常感谢任何帮助或指导。

看看Brush接口。可以创建笔刷,然后使用SetOpacity创建透明笔刷以发送到矩形。

您也可以直接使用D2D1::ColorF(red,green,blue,alpha)函数创建颜色。alpha参数是透明度。CCD_ 4是完全透明的,而CCD_。

如果您不知道如何使用它,此链接包含关于如何使用ID2D1 Brushes的精彩示例和代码。下面是该页面中的一些示例代码。

ID2D1SolidColorBrush *pGridBrush = NULL;
hr = pCompatibleRenderTarget->CreateSolidColorBrush(
    D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)),
    &pGridBrush
    );