C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 在DirectX11游戏上叠加大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开展一个项目,以显示任何DirectX11游戏的叠加层.现在,在一些DX11游戏中可以显示但是在其他一些游戏中却无法显示.

我使用MS Detour连接了DX11 API IDXGISwapChain :: Present().在函数Present()中,我设置每个管道,调用DrawIndex和ResourceCopy将我的覆盖纹理更新到GPU的内存,然后调用原始Present将后缓冲区带到前缓冲区.它在Unigene和DIRT2等游戏中运行良好,但它不适用于LostPlanet2和DragonAge2等其他游戏.

通过挂钩所有DX11功能进行一些日志记录,我发现了一些有趣的事情 – 那些不工作的游戏在调用Present之前调用ResourceCopy和ResourceCopyRegion.

就像我之前说的那样,我也在我的Present()中调用了ResourceCopy.这是它不起作用的原因吗?我该怎么办呢?

谢谢,
马歇尔

解决方法

我也在开发类似的D3D11代理钩子.但是,我从入口点D3D11CreateDevice和D3D11CreateDeviceAndSwapChain开始.然后使用替换类作为我自己的钩子.我发现有些案例Detours实际上无法正确地绕行:
绕过EntryPoint()的错误:6
我通过实际修改Detours 3.0源代码来正确地蹦蹦跳跳这个功能.

我正在使用64位Windows 7,但编译为x86 Detours 3.0.我可以尝试使用这些二进制文件.除了程序员使用的渲染样式之外,很难解释ResourceCopy可以影响调用路径的位置.如果您愿意,可以将项目代码发送给我,我也许可以提供帮助.

大佬总结

以上是大佬教程为你收集整理的c – 在DirectX11游戏上叠加全部内容,希望文章能够帮你解决c – 在DirectX11游戏上叠加所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: