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
        );

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

时间: 2024-10-13 01:25:01

Direct2D Brush的相关文章

Direct2D教程(三)简单几何图形

从本章开始,我们介绍D2D几何图形. D2D图形分类 Direct2D支持多种类型的几何图形,包括Simple Geometry(简单几何图形) 矩形 圆角矩形 椭圆 Path Geometry(路径图形)Composite Geometry(复合图形) Geometry Group(图形组) Transformed Geometry(变换的图形) 各种图形对应的D2D接口如下,所有接口都继承自ID2D1Geometry. 矩形-ID2D1RectangleGeometry 圆角矩形-ID2D1

UWP中的Direct2D

介绍 DirectX一直是Windows平台中高性能图形的代名词,自Win7开始,微软又推出了Direct2D技术,包装于Direct3D,但专注于2D图形,并且准备取代GDI这样的传统2D图形技术.对于Direct2D是怎么怎么好的具体描述,可以参考附录1. 不过Direct2D是基于COM技术的,看上去有些老旧的气息,而且是非托管的,似乎也和常见的.net语言有些隔阂. 不过微软也为我们提供了一个工具,一个跨越这一边界的工具,那就是SurfaceImageSource一族.该族中Surfac

Direct2D 第5篇 绘制图像

原文:Direct2D 第5篇 绘制图像 我加载的图像是一张透明底PNG图像,背景使用渐变的绿色画刷 #include <windows.h> #include <d2d1.h> #include <d2d1helper.h> #include <dwrite.h> #pragma comment(lib, "dwrite.lib") #pragma comment(lib, "d2d1.lib") #include

Direct2D 第6篇 绘制多种风格的线条

原文:Direct2D 第6篇 绘制多种风格的线条 上图是使用Direct2D绘制的线条,Direct2D在效率上比GDI/GDI+要快几倍,GDI/GDI+绘图是出了名的"慢",不过Direct2D的绘制线条代码,要比GDI/GDI+要繁锁一些. 1.首先,初始化Direct2D(可以参考?http://blog.csdn.net/ubuntu_ai/article/details/50365536 ) 2.创建线条的风格实例 ?ID2D1StrokeStyle,以下函数Create

Direct2D 第4篇 渐变画刷

原文:Direct2D 第4篇 渐变画刷 #include <windows.h> #include <d2d1.h> #include <d2d1helper.h> #include <dwrite.h> #pragma comment(lib, "dwrite.lib") #pragma comment(lib, "d2d1.lib") HINSTANCE g_hinst; HWND g_hwnd; ID2D1Fa

Direct2D Draw and Fill

---恢复内容开始--- 画线: ID2D1RenderTarget::DrawLine virtual void DrawLine( D2D1_POINT_2F point0,//起点 D2D1_POINT_2F point1,//终点 [in] ID2D1Brush *brush, FLOAT strokeWidth = 1.0f,//线条粗细 [in, optional] ID2D1StrokeStyle *strokeStyle = NULL//可省略 ) = 0; 椭圆: struct

C#的颜色解析及操作和相关Brush

一.颜色表示方式 // // Summary: // Creates a System.Drawing.Color structure from a 32-bit ARGB value. // // Parameters: // argb: // A value specifying the 32-bit ARGB value. // // Returns: // The System.Drawing.Color structure that this method creates. publi

纹理绘制和细节雕刻工具3D.Brush.v2.03.SP2 1CD

CopyCAD v3.11 (中文 培训教程) CopyCAD 培训教程(中文) PowerMill v9.0.03 SP2 Full-ISO 1DVD(多国语言正式版,包括简.繁体中文) PowerMill v9 SP5 1CD PowerMILL2VERICUT1300 1CD PowerMill v5.0最新中文教程 PowerMill v5.0.05英文教程和练习数模 1CD PowerMill training(中文电子文档) 1CD Delcam DentCAD v8.1.12 SP

在 WinForm 中使用 Direct2D

在 C# 的 WinForm 应用中,界面的绘制使用的是 GDI+.不过在一些特别的应用中,可能需要用硬件加速来提高绘制的效率.下面就来介绍两种在 WinForm 应用中嵌入 Direct2D 的方法. 这里所谓的“嵌入”,指的是只有窗口的某一部分应用 Direct2D 绘制(用一些控件承载),而不是整个窗口都使用 Direct2D 绘制.这是一种混合方案,需要用硬件加速的部分由自己来绘制,其它部分仍然可以使用现有的 WinForm 技术. 至于 Direct2D 的类库,我仍然使用 Sharp