游戏内覆盖的SDK

在开发游戏中的叠加层(类似于Steam所做的)中,我所挖掘的一些小信息提到,必须拦截调用graphicsAPI的帧交换函数,并将自己的绘图程序挂在其中。

这似乎是Mumble (游戏VoIP)正在做的事情。 由于我从来没有做过涉及钩子的任何事情,因为我对DirectX没有多less经验,所以我想知道是否有某种types的SDK,甚至只是一个比Mumble更易读的例子,它也实现了input,演示如何实现交互式游戏中的叠加层。 咕is是好事,但我似乎无法把头围住,特别是围绕着更有趣的事情,以便正确挂钩。

此外,如果你有更详细的信息,如何在Mac和Linux上做到这一点… 🙂

也许GLIntercept可以给你一些启发。 它提供了一个openGL.dll文件,放在你的应用程序的文件夹中。 由于优先级规则,Windows加载这个dll而不是system32的dll。 GLIntercept将所有调用转发到system32的dll,但同时记录它们。 所以,你可以实现你自己的glSwapBuffers()来渲染更多的东西,然后转发这个调用。

源代码也是可用的。

我upvote你的问题,我对你未来的发现感兴趣…随时重新发布,当你有更多的信息:)

  • 首先设计你的覆盖而不拦截图形API。 请记住,键输入必须使用全局钩子。
  • 使用Direct3D拦截器DLL将它集成到应用程序中。 谷歌它来检索一个基本代码。

编辑:

  • DirectX: 使用代理DLL拦截调用DirectX将为您提供可下载的源代码。
  • OpenGL: 铬可能是一个好的开始。