Direct2D Brush

---恢复内容开始---

画画就是在某个区域中填入某种东西?

某种东西就是Brush;

可以是纯色,可以是渐变颜色,可以是位图。

 

所以Brush有4种。

ID2D1SolidColorBrush  [纯色画笔]

hr = m_pRenderTarget->CreateSolidColorBrush( D2D1::ColorF(D2D1::ColorF::Black, 1.0f),//重载D2D1::ColorF(float,float,float,float); &m_pBlackBrush );

 

ID2D1LinearGradientBrush [线性渐变画笔]

ID2D1RadialGradientBrush [椭圆渐变画笔]

 

D2D1_GRADIENT_STOP [色点]

 

渐变:从A->B->C->D->END

D2D1_GRADIENT_STOP数组来保存渐变路径。

struct D2D1_GRADIENT_STOP { FLOAT position; D2D1_COLOR_F color; };

数组控制,position从0~1.0;

渐变就是按照p从小到大渐变,而且比例按照p来。

ID2D1GradientStopCollection [渐变类]

hr = m_pRenderTarget->CreateGradientStopCollection(
    gradientStops,
    2,
    D2D1_GAMMA_2_2,
    D2D1_EXTEND_MODE_CLAMP,
    &pGradientStops
    );

ID2D1LinearGradientBrush [线性渐变画笔]

hr = m_pRenderTarget->CreateLinearGradientBrush(
        D2D1::LinearGradientBrushProperties(
            D2D1::Point2F(0, 0),
            D2D1::Point2F(150, 150)),
        pGradientStops,
        &m_pLinearGradientBrush
        );

ID2D1RadialGradientBrush [椭圆渐变画笔]

hr = m_pRenderTarget->CreateRadialGradientBrush(
        D2D1::RadialGradientBrushProperties(
            D2D1::Point2F(75, 75),
            D2D1::Point2F(0, 0),
            75,
            75),
        pGradientStops,
        &m_pRadialGradientBrush
        );

 

 ID2D1BitmapBrush [位图画笔]

 ID2D1Bitmap[位图]

hr = LoadResourceBitmap(
        m_pRenderTarget,
        m_pWICFactory,
        L"FERN",//文件名
        L"Image",//文件类型
        &m_pBitmap
        );

 ID2D1BitmapBrush [位图画笔]

hr = m_pRenderTarget->CreateBitmapBrush(
        m_pBitmap,
        &m_pBitmapBrush
        );

 

---恢复内容结束---

你可能感兴趣的:(Direct2D Brush)