替换旧版 DirectDraw 代码
昨天,我发现了多年前用 C++、Win32 API 和 DirectDraw 7 开发的俄罗斯方块游戏的源代码。我尝试构建解决方案但没有成功,因为最近的 DirectX SDK(2010 年 6 月) 不再包含 DDraw.h 和 DDraw.lib。
是否有任何推荐的方法(希望有示例)将代码从 DirectDraw 升级到更新的 API?或者我应该简单地安装旧版 DirectX SDK?
Yesterday I found source codes for my Tetris game developed many years ago in C++, Win32 API and DirectDraw 7. I tryed to build solution without any success because most recent DirectX SDK (June 2010) does not include DDraw.h and DDraw.lib any more.
Is there any recommended approach (hopefully with examples) to upgrade code from DirectDraw to newer API? Or should I simply install older DirectX SDK?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 DirectDraw blit 功能,那么移植它将是一项艰巨的任务。我认为最好的选择是将其移植到 GDI。然而,这可能意味着编写您自己的 blit 函数。
如果您无法移植到 D3D,尽管这将是一项艰巨的任务,并且实际上取决于您如何进行渲染。如果所有渲染都是使用 blit 执行的(并且没有直接帧缓冲区访问),那么将其移植到 D3D 应该相对简单。它还将为您提供巨大的速度提升。
也就是说,您可以获取 DirectDraw 标头(我相信它们位于 Windows SDK 中)并继续使用 DirectDraw。
If you use DirectDraw blit functionality then it will be quite a task to port it. In my opinion your best option is to port it to GDI. It may mean writing your own blit functions however.
Failing that you could port to D3D though this will be quite a task and is really dependent on how you do your rendering. If all your rendering is performed using blits (and no direct frame buffer access) then it should be relatively straight forward to port it to D3D. It will also provide you with HUGE speed boosts.
That said you can just get hold of the DirectDraw headers (I believe they are in the Windows SDK) and continue using DirectDraw.
DirectX SDK 中没有 ddraw 引擎(2010 年 6 月)。
你应该在 windows sdk 中找到 ddraw。
你可以在windows sdk中找到ddraw.h,但是也没有ddraw.lib。
怎么用?使用 ddraw.dll。
There is no ddraw engine in DirectX SDK (June 2010).
You should find ddraw in windows sdk.
You can find ddraw.h in windows sdk but, there is no ddraw.lib neither.
how to use? use ddraw.dll.