什么是DirectX9相当于LPDIRECT3DDEVICE8等?

时间:2012-07-14 02:33:41

标签: directx porting

我有一个为DirectX8编写的游戏,我正在尝试更新以在DirectX9下构建。我听说MS不支持DirectX8,而DirectX9应该允许我做DirectX8中的操作。所以我首先将所有内容改为8到9,但LPDIRECT3DDEVICE9似乎并不存在。那么,DirectX9中的LPDIRECT3DDEVICE8是否等同于什么?

我也看到D3DCAPS8没有D3DCAPS9等价物。 (编辑:哦等等,它只是在一个新的头文件D3D9Caps.h中。)

我也没有定义LPD3DXSPRITE,尽管我在DirectX9的讨论中看到了它。 HMM。

也许我真正需要的是头文件d3dx9.h和D3DX8Math.h的等价物。

要明确的是,除了希望存在的DirectX8反向兼容性之外,我不想尝试使用任何DirectX9功能。

2 个答案:

答案 0 :(得分:1)

LPDIRECT3DDEVICE8只是struct IDirect3DDevice8*。那些LP*宏定义似乎在9中被弃用,因此使用I*等价物。

D3dx9core.h包含您要查找的精灵类。

这些也可能有用:

答案 1 :(得分:0)

好吧,似乎我的问题的主要答案是:

安装DirectX9 SDK导致Visual Studio 2010中的默认或移植项目文件能够找到一些DirectX头文件,而不能找到其他文件。此外,虽然DirectX9中的大多数或所有DirectX8结构都有相同的结构,但它们所处的头文件以及调用这些头的内容可能已经发生了变化。主要是,正如Preet Kukreti所写,有些人已经转移到D3dx9core.h,这是在没有编辑项目配置的情况下可能无法找到的标题之一。在VS 2010中,从“项目”选项卡转到“属性”下的项目属性页面,然后选择“VC ++目录”,在“包含目录”下,添加到现有字符串; path,其中path是SDK中包含文件夹的路径。

(顺便说一句,不要使用Windows 7搜索来查找路径,因为它几乎没用。如果你想在计算机上搜索文件,请下载并使用Agent Ransack,这将在大约1秒内找到它与Windows搜索的潜在挫折时间相比。)

我在:C:\ Program Files(x86)\ Microsoft DirectX SDK(2010年6月)\包含\ d3dx9math.h