C++ 检测D3D钩子中的帧开始/结束

C++ 检测D3D钩子中的帧开始/结束,c++,directx,hook,direct3d,C++,Directx,Hook,Direct3d,我的程序钩住D3D结束场景来绘制覆盖图;然而,一个特定的游戏似乎每帧调用两次BeginScene/EndScene(在同一台设备上)来呈现其UI。有没有办法告诉我这是怎么回事?我想Present也会被调用两次,可能是使用不同的渲染目标,但我不知道在EndScene钩子中会传递哪些参数给Present。因此,“我的覆盖”将显示两次。如何避免此问题,即告诉新帧何时开始?在EndScene中渲染时只需选中并设置一个标志,如果已设置,则不再渲染覆盖 在当前状态下重置此标志(如果设置了正确的参数)

我的程序钩住D3D结束场景来绘制覆盖图;然而,一个特定的游戏似乎每帧调用两次BeginScene/EndScene(在同一台设备上)来呈现其UI。有没有办法告诉我这是怎么回事?我想Present也会被调用两次,可能是使用不同的渲染目标,但我不知道在EndScene钩子中会传递哪些参数给Present。因此,“我的覆盖”将显示两次。如何避免此问题,即告诉新帧何时开始?

在EndScene中渲染时只需选中并设置一个标志,如果已设置,则不再渲染覆盖

在当前状态下重置此标志(如果设置了正确的参数)