Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Direct2D_1.0

此目录为Direct2D_1.0版本的示例代码。
上一级

一、基础示例

1.1 绘制多种风格的线条

使用ID2D1StrokeStyle类型的对象可以创建不同风格的线条,绘制出多种多样的几何图形。 示例

1.2 加载位图

(1)从文件加载位图(D2DCreateBitmapFromFile)
(2)从资源加载位图(D2DCreateBitmapFromResource)
详见博客:Direct2d开发之从资源加载位图

1.3 将Direct2D位图保存为图片文件(D2DSaveBitmapToFile)

此示例演示了将窗口内容保存为图片文件。
整个过程为:
(1)将要绘制的内容绘制到CompatibleRenderTarget上;
(2)从CompatibleRenderTarget上GetBitmap;
(3)将获取的bitmap绘制到HwndRenderTarget上;
(4)将获取的bitmap通过WIC组件保存为图片文件。
注意:在此过程中,注意不同设备创建出来的资源之间的兼容,容易出错。

1.4 剪裁(D2DClip)

(1)轴对称矩形剪裁
(2)几何图形蒙版剪裁
示例

1.5 纹理混合

(1)对位图进行颜色混合(D2DBitmapBlend)
对位图进行颜色混合,详见博客:Direct2D开发之纹理混合
示例

(2)将两个位图进行混合(D2DBitmapBlendWithBitmap)
将两个位图进行混合,详见博客:Direct2D开发之纹理混合
示例

1.6 自定义字体(DWriteCustomFont)

使用DirectWrite绘制自定义字体(即非系统字体)。
将自定义字体文件加载为资源文件也可以,但是在这里我是用的是另外一种方法。
方法是用字体文件和需要绘制的字符串创建路径几何图形(path geometry),然后直接绘制路径几何图形即可。

1.7 字符串文本去尾(DWriteStringTrimming)

使用DirectWrite绘制文本时,对字符串进行去尾操作,详见博客:Direct2D开发之字符串去尾
示例

1.8 特殊字符符号(DWriteCharacterSymbol)

DirectWrite使用"Segoe UI Symbol"字体来绘制一些字符符号。

1.9 测量文字大小

详见博客:使用DirectWrite测量Direct2D文字大小

1.10 使用平滑的曲线连接指定的几个点

绘制图片时,过滤掉指定颜色。(此方法直接操作像素,效率较低)
示例

1.12 几何图形对象的组合

示例

二、扩展示例

项目名称 项目介绍
D2DTMPL Direct2D的一个模板框架程序
D2DBezierToWave 使用贝塞尔曲线绘制波形图。
D2DCollisionDetectionBetweenGeometrys 两个几何图形对象之间的位置关系判断,即碰撞检测,详见博客:Direct2D处理几何图形之间的碰撞检测(下)
D2DGeometryCollisionDetectionWithPt 几何图形对象和点的位置关系判断,即碰撞检测,详见博客:Direct2D处理几何图形之间的碰撞检测(上)
D2DGeometricTranslationOrder 在Direct2D绘图中,几何变换的顺序是有固定顺序的,正确的顺序应该是:缩放 -> 旋转 -> 平移。如果你随意改变几何变换的顺序,将会导致不可预见的错误结果。
D2DMesh 绘制网格,详见博客:Direct2d开发之绘制网格
D2DLayeredWnd Direct2D绘制分层窗口。

三、进阶示例

ExtendSamples目录中的示例为进阶示例。

项目名称 项目介绍
D2DMatrixPro 此工程演示了Direct2D矩阵的高级使用方法,并说明了子节点和父节点的矩阵复合使用方法。
MFCD2DApplication MFC工程中使用Direct2D。