在开发游戏中的叠加层(类似于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你的问题,我对你未来的发现感兴趣…随时重新发布,当你有更多的信息:)
编辑: