【发布时间】:2017-11-17 19:20:43
【问题描述】:
我目前正准备将旧组件的绘图代码从 GDI + UniScribe 替换为 Direct2D 和 DirectWrite(后继者)。
到目前为止,过渡是直截了当的,因为大多数时候我需要做的就是将对 Canvas(TCanvas 类)的调用替换为自定义 FDirect2DCanvas 实例(TDirect2DCanvas 类,来自 Direct2D 单元)。
不幸的是,当尝试从 TImageList 实例将字形绘制到 FDirect2DCanvas 上时,它似乎并不简单,因为 draw 方法仅适用于 TCanvas,而不适用于相当通用的 TCustomCanvas(它是 TCanvas 和 TDirect2DCanvas 的祖先) )。
解决这种困境的方法是将 TImageList 字形绘制到一个临时位图,然后将其绘制到 TDirect2DCanvas。但是,我担心这可能会大大降低绘图性能。
到目前为止,有没有人这样做过?我有什么选择?
【问题讨论】:
标签: delphi vcl direct2d directwrite timagelist