在D3D挂钩中检测帧开始/结束

时间:2014-02-07 14:59:47

标签: c++ directx hook direct3d

我的程序挂钩D3D EndScene绘制叠加层;但是,一个特定的游戏似乎每帧(在同一设备上)调用两次BeginScene / EndScene来渲染其UI。有没有办法说出这种情况发生了?我想现在也被称为两次,可能有一个不同的渲染目标,但我不知道在EndScene钩子里面将传递给Present的参数。结果,我的叠加显示两次。如何避免此问题,即告知何时启动新帧?

1 个答案:

答案 0 :(得分:0)

在EndScene中渲染时,只需检查+设置标记,如果设置,则不再渲染叠加层。

在Present中重置此标志(如果设置了正确的参数)。