Welcome

首页 / 软件开发 / Delphi / Delphi与DirectX之DelphiX(3):初识TDXDraw

Delphi与DirectX之DelphiX(3):初识TDXDraw2009-10-11博客园 万一在 DelphiX 中, 所能看到的一般都是画在 TDXDraw.

TDXDraw 默认两个绘图表面: TDXDraw.Surface 和 TDXDraw.Primary;

一般先在后台(Surface)绘图, 然后再用 TDXDraw.Flip 命令切换前后台, 从而看到绘制效果.

TDXDraw.Flip 会置换 Surface 和 Primary 两个对象, 所以我们尽可以只在 Surface 上绘图;

由于 DirectX 的工作机制, 让这个切换速度异常地快(只是切换一个指针), 从而可以完成非常流畅的动画、游戏.

从 TDXDraw 的绘图表面也可以获取 Canvas 对象, 因而在 TDXDraw 中也可以使用 GDI/GDI+ 的绘图命令;

不过把 GDI/GDI+ 和 DirectX 一起使用应该会让 DirectX 的性能缩水, 但有这种可能总是好的, 起码比单独使用 GDI/GDI+ 要好.

下面例子中就使用了 DXDraw1.Surface.Canvas 对象;

使用完 DXDraw1.Surface.Canvas 后, 一定要释放(DXDraw1.Surface.Canvas.Release);

另外, 绘图前经常要先用指定的颜色填充表面, 譬如: DXDraw1.Surface.Fill(颜色值);

这里的颜色格式和 Delphi 的不一样, 和 HTML 使用的颜色值的顺序是一样的, 譬如: $FF0000 表示红色.

本例效果图: