码迷,mamicode.com
首页 > 其他好文 > 详细

Direct2D Brush

时间:2016-02-07 21:17:51      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:

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

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

某种东西就是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

标签:

原文地址:http://www.cnblogs.com/hxml/p/5184784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!