我们有运行于Win98游乐厅/赎回的游戏,但它可以运行它的硬件终于走向过时。游戏中使用了大量的缩放效果,有些是通过3D路径,并打出了一些名堂进出显存搬东西。如果我是承接将它移植到Windows 7上运行,多少麻烦将很可能是什么?难道大多是重新编译,或者有这些API发生这种转换,我还不如重新写的设备接口?

有帮助吗?

解决方案

不要把它想成移植到Win7的。只需简单地移植到DX9和DX让做的工作与Win7的部分。逸岸,你很可能只是离开,因为是它shuold运行 - 但你提到你做显存,我认为没有任何与DX疯狂的事情。 (通过GDI或其他一些黑客即?)。无论如何,DX7,8和9级的API都有着相当巨大的差异。但好处是,他们都是向后兼容。如果你的代码是纯DX7,尝试编译对最新的SDK,看看它是否适用于WIN7直客。

其他提示

这已经有一段时间,因为我写的任何DirectX7的代码(或全部的Direct X代码),但如果我还记得有一些显著API改变7和8之间的事件 - 沿着9或10让 - 那会做出这样的改变有点难度。具体来说,我认为主要的变化是,他们重构了系统7后的DirectDraw合并到Direct3D的,这样两个系统不再7和8。我还没有看它自那时以来之间完全独立,但我怀疑,鉴于新的编码方法和数字一样的API已经改变了不少,因此很可能将是一个有点项目,使这些变化,而不是重新编译大多喜欢你可能有希望的。

您EVER移动的东西和视频内存不足? 颤动

不过...它更快地做,现在比当DX7在周围。究竟你在干什么?从你的描述它不可能说这将多么容易。一个DX7应用还是应该在Windows 7上运行,我想不出什么奇怪的功能,你可能已经使用会导致它打破。

另外的应用程序从7转换为DX9实际上不是所有的硬(转换到DX10 +将是一个恶梦)。他们仍然是比较相似的,因为......那些日子里发生了变化,主要就是对事物像D3DTRANSFORMSTAGESTATE_ *或* D3DRENDERSTATE_到D3DTSS_ *或D3DRS _ *。

缩短

编辑:我能想到的最大的变化已经发生,因为DX7的是,显卡厂商已经下降了palettised纹理现代计算机上的这“可能”打破一些旧的应用程序的支持。这确实是一个非常简单的解决方法,但...

EDIT2:解压缩从磁盘的东西到纹理可以是有点疼痛。你的主要问题是,你最终会遭受性能损失,当您创建纹理的事实。但是,如果你有纹理的负载已经创建并打开,那么你可以当你请加载到相关的质地和。你只挨一个锁定/解锁命中。这可以通过预先加载资源的几帧来缓解。如果你这样做,但是,它无疑将需要从多个线程多线程和调用D3D。如果你这样做设置多线程标志的设备。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top