DirectX9与LPDIRECT3DDEVICE8等的等价物是什么?

DirectX9与LPDIRECT3DDEVICE8等的等价物是什么?,directx,porting,Directx,Porting,我有一个为DirectX8编写的游戏,我正在尝试更新它以在DirectX9下构建。我听说微软不支持DirectX8,DirectX9应该允许我做在DirectX8中所做的事情。因此,我开始将所有内容从8改为9,但LPDIRECT3DDEVICE9似乎不存在。那么,在DirectX9中是否存在与LPDIRECT3DDEVICE8等效的设备 我还看到D3DCAPS8没有D3DCAPS9的等价物。编辑:哦,等等,它只是在一个新的头文件D3D9Caps.h中 我也没有定义LPD3DXSPRITE,尽管我

我有一个为DirectX8编写的游戏,我正在尝试更新它以在DirectX9下构建。我听说微软不支持DirectX8,DirectX9应该允许我做在DirectX8中所做的事情。因此,我开始将所有内容从8改为9,但LPDIRECT3DDEVICE9似乎不存在。那么,在DirectX9中是否存在与LPDIRECT3DDEVICE8等效的设备

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

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

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

明确地说,我不想尝试使用DirectX9的任何功能,希望现有的DirectX8反向兼容性除外。

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

D3dx9core.h包含您正在寻找的sprite类

这些可能也很有用:


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

安装DirectX9 SDK会导致Visual Studio 2010中的默认或移植项目文件能够找到一些DirectX头文件,但不能找到其他头文件。此外,虽然DirectX9中的大多数或所有DirectX8结构都有等效的结构,但它们所在的头文件以及这些头文件的名称可能已经更改。主要是,正如Preet Kukreti所写,一些人已经迁移到D3dx9core.h,这是一个在不编辑项目配置的情况下可能无法找到的标题。在VS2010中,从“项目”选项卡转到“属性”下的项目属性页,然后选择“VC++目录”,并在“包含目录”下,添加到现有字符串;path,其中path是指向SDK中包含文件夹的路径

顺便说一句,不要使用Windows7搜索来查找路径,因为它几乎是无用的。如果你真的想在你的电脑上搜索文件,下载并使用代理Ransack代替,这将在大约1秒内找到它,而Windows搜索可能会让你沮丧数小时


我的是:C:\ProgramFilesx86\Microsoft DirectX SDK 2010年6月\Include\d3dx9math.h

谢谢!出于某种原因,我可以包含其他DX9库的头文件,但不能包含D3dx9core.h。所以我可能只是需要调整我的项目设置,以便在库文件夹结构中找到正确的位置。好在Windows中没有工作文件搜索实用程序,因为某些原因,它无法找到头文件…;-我会查看这些链接。哦,是的,我读过那些微软的文章,但如果他们解释了如何在项目中设置libs链接,我就错过了。包含工作,但不包含。其中一个重要的细节,在他们的项目建立之后,没有人会考虑,并且不在代码中,并且在不同的API版本之间随机变化。当我找到我需要的丢失的部分时,我会发布。