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

标签 c++ graphics draw msdn

我想将对象绘制为部分透明,但我不知道如何做。 我正在使用 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 Interface 。您可以创建画笔并使用 SetOpacity 创建透明画笔以发送到矩形。

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

如果您不知道如何使用它,this link包含有关如何使用ID2D1画笔的精彩示例和代码。下面是该页面的一些示例代码。

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

关于c++ - 如何在 C++ 中使用 DirectX 绘制透明矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279272/

相关文章:

javascript - 如何使用 Javascript 创建 jpg 图像?

图形/视觉有趣的话题

java - LWJGL 渲染无任何内容

Matlab绘制褪色方 block

java - 如何使用自定义绘制类在java slick中绘制对象

c++ - 同步、线程安全接口(interface)的正确锁定模型

c++ - 在 C++ 中不使用 STL 或 vector 连接两个字符串数组

c++ - 非模板类中的模板成员函数——如何定义和调用

c++ - 复制带有参数的构造函数作为对派生类的引用

c++ - 使用 DT_CALCRECT 的 LPD3DXFONT DrawText?