Direct2D (6) : 绘制质量(设置抗锯齿模式)
2011-04-01 00:02
591 查看
{相关方法} TDirect2DCanvas.RenderTarget.SetAntialiasMode(); TDirect2DCanvas.RenderTarget.GetAntialiasMode; {相关常量} D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0; D2D1_ANTIALIAS_MODE_ALIASED = 1;
测试代码:
uses Direct2D, D2D1; procedure TForm1.FormCreate(Sender: TObject); begin CheckBox1.Caption := 'D2D1_ANTIALIAS_MODE_PER_PRIMITIVE'; CheckBox1.Checked := True; end; procedure TForm1.CheckBox1Click(Sender: TObject); const sArr: array[Boolean] of string = ('D2D1_ANTIALIAS_MODE_PER_PRIMITIVE', 'D2D1_ANTIALIAS_MODE_ALIASED'); begin CheckBox1.Caption := sArr[not CheckBox1.Checked]; Refresh; end; procedure TForm1.FormPaint(Sender: TObject); var cvs: TDirect2DCanvas; rect: TRect; begin cvs := TDirect2DCanvas.Create(Canvas, ClientRect); cvs.Pen.Color := clRed; cvs.Pen.Width := 25; if CheckBox1.Checked then cvs.RenderTarget.SetAntialiasMode(D2D1_ANTIALIAS_MODE_PER_PRIMITIVE) else cvs.RenderTarget.SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED); //cvs.RenderTarget.SetAntialiasMode(Integer(not CheckBox1.Checked)); 可用该行代替上面四行 rect := ClientRect; InflateRect(rect, -ClientWidth div 5, -ClientHeight div 5 ); OffsetRect(rect, 0, 10); cvs.BeginDraw; cvs.Ellipse(rect); cvs.EndDraw; cvs.Free; end; procedure TForm1.FormResize(Sender: TObject); begin Repaint; end;
效果图:
相关文章推荐
- Direct2D教程II——绘制基本图形和线型(StrokeStyle)的设置详解
- Direct2d绘制图片的问题
- Shapefile文件中的坐标绘制到屏幕时的映射模式设置
- Direct2D DirectWrite绘制文字
- 使用WIC将Direct2D绘制的图形保存为文件
- WPF 使用 Direct2D1 画图 绘制基本图形
- Direct2D (37) : 使用不同画刷绘制文本
- Direct2D 几何图形绘制基础
- Direct2d绘制图片的问题
- Direct 9.0c 中使用ID3DXSprite来绘制2D动画
- Direct2D (33) : 通过 ID2D1BitmapRenderTarget 绘制背景网格
- Canvas 2D绘制抗锯齿的1px线条
- Direct2D教程(十)绘制文本
- Direct2D绘制的MFC控件
- 使用WIC将Direct2D绘制的图形保存为文件
- Direct2D 第3篇 绘制文字
- Direct2D教程(十)绘制文本
- 【IOS 开发学习总结-OC-65】Quartz 2D绘图(4-2)——绘制文本+设置阴影+使用路径
- Quartz 2D(常用API函数、绘制图形、点线模式)
- Direct2D (39) : 使用 IDWriteTextLayout.Draw() 方法绘制文本