【发布时间】:2010-04-09 22:38:46
【问题描述】:
我想通过 Windows 代码包将 Direct2D 用于我的 .Net 应用程序。由于我的一些用户正在使用 XP,我需要提供 GDI+ 后备。我想知道人们通常如何做这种回退。
他们是否将所有必要的图形功能抽象/接口到某个自定义通用库中?如果有,是否有针对 direct2d/GDI 的开源库?
谢谢, 吉尔。
【问题讨论】:
标签: windows-xp gdi+ direct2d
我想通过 Windows 代码包将 Direct2D 用于我的 .Net 应用程序。由于我的一些用户正在使用 XP,我需要提供 GDI+ 后备。我想知道人们通常如何做这种回退。
他们是否将所有必要的图形功能抽象/接口到某个自定义通用库中?如果有,是否有针对 direct2d/GDI 的开源库?
谢谢, 吉尔。
【问题讨论】:
标签: windows-xp gdi+ direct2d
我这样做的方法是拥有两个完全独立的类(都派生自IRenderer 接口)。在加载时,我使用 Window 的 GetVersionEx 函数确定操作系统版本。如果dwMajorVersion >= 6,那么我加载Direct2D类;否则它会回退到 GDI。
希望这会有所帮助。
【讨论】:
如果您希望它以同样快的速度运行,则必须在 Direct3D 中对其重新编程。
【讨论】: