【问题标题】:Delphi - DirectX - OSD/Screen OverlayDelphi - DirectX - OSD/屏幕覆盖
【发布时间】:2011-12-15 03:25:10
【问题描述】:

晚上好,伙计们, 我目前正在开发 Delphi 2010 中的 NVIDIA GPU 温度监视器。它还将提供来自 WMI 的系统信息。

目前,我正在针对不同情况开发几种不同的 OSD(屏幕显示)方法。我已经有两种方法,但我需要另一种专门用于游戏的方法。

我想要做的是使用 Direct2D 或 Direct3D 显示带有一些文本的叠加层或 OSD。 DLL 注入是有风险的,更不用说完善起来相当棘手。可以想象,我正在尝试将它叠加到游戏中,但在任何地方都可以叠加。

您可以想象,使用 Direct2D 或 Direct3D 来覆盖它会好得多。挂钩是一个想法,但同样,这可能会导致我也需要注入代码。

本质上,我想要在屏幕上显示文本的最简单方法,该方法不会造成严重的性能损失,并且在屏幕刷新时不会闪烁(即渲染新帧)。我也希望能够绘制图像(因为我在我的应用程序中包含了图表,输出这些将是一个奖励,但输出文本是这里的主要任务)。

老实说,我不介意我是否需要挂钩和/或注射,但我没有这样做的经验,并且绝对需要很多帮助。做类似于 MSI Afterburner 或 FRAPS 所做的事情正是我所追求的。

我也缺乏 DX 编程或设计方面的任何知识,因此再次需要大量帮助。我已经完成了大部分应用程序的设计和工作,现在需要完成这项大任务,并清理其他较小的部分。

有什么想法吗?

已编辑:减少了段落的数量以便于阅读。进一步减少它可能不足以解释这一点。对于看到编辑版本的人,我确实做了大量研究,但没有产生任何结果。

已编辑:没有人提供更多信息?是否可以使用用另一种语言编写的 DLL 来输出 OSD,然后简单地将我的参数传递给它?如果是这样,我将如何去做?是否有任何语言的示例代码可供我使用?

【问题讨论】:

  • 几年前玩过类似的东西(目的非常不同)。我不得不说这不是世界上最容易实现的事情(即使我有 OpenGL、DirectX(2D 和 3D)和视频游戏开发的经验。叠加是痛苦的。希望有人提供一个好的解决方案(我可以从中受益)它也是)。+1 的问题。如果可以的话,建议减少段落!
  • 感谢 LaKraven。我没想到这很容易做到。但是,我是一名强迫症开发人员,在我满意之前我不会发布应用程序。如果我不想自己使用它,因为它比现有的应用程序低,我觉得我不能把它推向世界,除非它只是为一个特定目的而设计的。我确实减少了原始问题中的上下文数量:)

标签: delphi delphi-2010


【解决方案1】:

您可能想看看Taksi。它是一种开源 FRAPS。是的,涉及代码注入和挂钩。好吧,用 C++ 编写。

【讨论】:

  • 谢谢“iamjoosy”,我猜是这样。在 RAD Studio 2010 中构建可以让我选择使用它,但我仍然更喜欢 Delphi 来完成这个项目。不过我仍然 +'d 它,因为它值得研究。
猜你喜欢
  • 2011-04-02
  • 1970-01-01
  • 2021-05-09
  • 2020-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多