【问题标题】:Replacing legacy DirectDraw code替换旧版 DirectDraw 代码
【发布时间】:2010-12-10 09:08:34
【问题描述】:

昨天我找到了我多年前用 C++、Win32 API 和 DirectDraw 7 开发的俄罗斯方块游戏的源代码。我尝试构建解决方案但没有成功,因为最近的 DirectX SDK (June 2010) 不包含任何 DDraw.h 和 DDraw.lib更多。

是否有任何推荐的方法(希望有示例)将代码从 DirectDraw 升级到更新的 API?还是我应该简单地安装旧版 DirectX SDK?

【问题讨论】:

  • 它们已移至 Windows SDK。

标签: c++ directx directdraw


【解决方案1】:

如果您使用 DirectDraw blit 功能,那么移植它将是一项艰巨的任务。在我看来,您最好的选择是将其移植到 GDI。然而,这可能意味着编写您自己的 blit 函数。

如果您无法移植到 D3D,这将是一项艰巨的任务,并且实际上取决于您如何进行渲染。如果您的所有渲染都是使用 blits 执行的(并且没有直接的帧缓冲区访问),那么将其移植到 D3D 应该相对简单。它还将为您提供巨大的速度提升。

也就是说,您可以获取 DirectDraw 标头(我相信它们在 Windows SDK 中)并继续使用 DirectDraw。

【讨论】:

  • 我刚刚下载并安装了最新的 Windows SDK ddraw.h 包含但 ddraw.lib 不存在。但是我正在标记您的答案,因为您为我指出了正确的方向。实际上我必须直接使用 ddraw.dll,它在我最初问题中发布的链接中有所描述。
  • 这对我来说是个坏消息。我有一个在 DirectX 6 时代开发的代码,它使用 Direct2D/DirectDraw BitBlt。我不想将它移植到 D3D,因为它根本不是 3D。如果 Windows SDK 有标头,那么功能也应该在某个地方。
【解决方案2】:

DirectX SDK(2010 年 6 月)中没有 ddraw 引擎。

你应该在 windows sdk 中找到 ddraw。

您可以在 windows sdk 中找到 ddraw.h,但是也没有 ddraw.lib。

如何使用?使用 ddraw.dll。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 2011-04-12
    • 1970-01-01
    • 2019-07-16
    • 2022-08-18
    相关资源
    最近更新 更多