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 );
---恢复内容结束---