我有一个为DirectX8编写的游戏,我正在尝试更新它,以便在DirectX9下构建。我听说MS不支持DirectX8,而DirectX9应该允许我做在DirectX8中做的事情。所以我从把所有的8改成9开始,但是LPDIRECT3DDEVICE9似乎不存在。那么在DirectX9中有没有(以及什么是)等价物LPDIRECT3DDEVICE8呢?
我还看到D3DCAPS8没有D3DCAPS9等效项。(编辑:哦,等等,它只是在一个新的头文件D3D9Caps.h中。)
我也没有定义LPD3DXSPRITE,尽管我在DirectX9的讨论中看到了它。嗯。
也许我真正需要的是头文件d3dx9.h和D3DX8Math.h的等价物。
需要说明的是,除了希望存在的DirectX8反向兼容性之外,我不想尝试使用任何DirectX9特性。
发布于 2012-07-15 05:33:01
好的,似乎我的问题的主要答案是这样的:
安装了DirectX9 SDK后,Visual Studio2010中的默认或移植项目文件可以找到一些DirectX头文件,但不能找到其他文件。此外,尽管DirectX9中的大多数或所有DirectX8结构都有相同的结构,但它们所在的头文件以及这些头文件的名称可能已经发生了变化。主要是,正如Preet Kukreti所写的,一些人已经转移到D3dx9core.h,这是如果不编辑项目配置就可能无法找到的头文件之一。在VS2010中,从项目选项卡中的属性下转到项目的属性页,然后选择VC++目录,并在包含目录下,添加到现有的字符串;路径,其中路径是您在SDK中的包含文件夹的路径。
(顺便说一句,不要使用Windows 7搜索来查找路径,因为它几乎没有用。如果您想实际搜索您的计算机上的文件,请下载并使用代理Ransack,这将在大约1秒内找到它,而不是使用Windows search可能需要几个小时。)
我的位置是: C:\Program Files (x86)\Microsoft (2010年6月)\ DirectX \d3dx9math.h
发布于 2012-07-14 11:14:47
LPDIRECT3DDEVICE8只是一个struct IDirect3DDevice8*。这些LP*宏定义在9中似乎已弃用,因此请使用I*等效项。
D3dx9core.h包含您正在寻找的sprite类。
这些也可能是有用的:
https://stackoverflow.com/questions/11480561
复制相似问题