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

前两天刚宣布了一个新的开源项目,Universal DX SDK,现在以完成了第一阶段。

在现在的master分支里,头文件已经被更新到Win10 SDK 10.0.10240.0,并作出一些修改:

  1. 注掉了winapifamily.h相关的代码,以适用于VS2010及以前的vc,和MinGW/Clang。
  2. 在MinGW下编译不会出现warning。

这么一来,如果用LoadLibrary进行动态载入,只需要头文件的话,在各种编译器下都能使用Universal DX SDK,支持D3D 9-12、DXGI 1.1-1.4、DInput、DSound、D2D 1.1-1.3、DWrite 1.1-1.3、XAudio等,并支持古老的XNAMath、D3DX 9-11等。基本可以满足各种对DX的需求。

经过KlayGE的实验,用了Universal DX SDK之后,大部分根据SDK版本进行的#ifdef都可以删除,可以直接假设存在最新版本的SDK。VS2012/2013里也可以开发D3D12的程序。MinGW下也不再有warning,可以放心地打开warning as error。比原先的方法好得多。

下一阶段打算加入.lib/.a的生成,以方便非动态载入的需求。