转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=1943

自从DX9 SDK提供了D3DX的库之后,相信D3DX一度成了所有相关开发人员必不可少的库。但随着时间的发展,D3DX慢慢被拆散、重组,出现了XNAMath、DirectXTex、D3DCompile之类独立的组件,逐渐取代了D3DX的功能。

现在,DX SDK早已不再更新,被合并到了Windows SDK中。D3DX也彻底退休。虽然你仍可以通过使用DX SDK June 2010来支持D3DX,但Metro风格的新程序就没法那么做了。所以,从现在开始应该逐步减少对D3DX的依赖。

在KlayGE中,出于可移植的原因,从多年前就开始减少使用D3DX了。最先是用自己实现的模板数学库MathLib代替了D3DX Math,接着D3DXEffect这种重量型的框架也被自己实现的更高效的特效管理系统所取代。关于字体渲染,我就不用多说了,KlayGE的解决方案远胜D3DXFont。现在仅剩下D3DX11LoadTextureFromTexture和D3DX11FilterTexture两个D3DX函数。在KlayGE 4.1发布之前这两个函数也会被灭掉。

如果你想让你的程序还有未来,就请去掉D3DX,从现在开始。