在其他人的游戏中输出fps

时间:2017-11-02 09:42:15

标签: c++ directx hook directx-11

大家下午好。我想在别人的游戏中得出结论。我正在进入游戏过程,在这种情况下,DirectX 11应用程序是Unity的一个演示。 我开始演示,把窗口模式放到800x600。此外,我加载我的DLL。一切都很好,画框计数器。 如果切换到全屏模式(Alt + Enter),计数器将消失, 这不是在屏幕上绘制的。如果我们返回,那么在窗口模式下它会再次正常显示。 如果您以全屏模式立即以等于屏幕分辨率的分辨率运行演示(对我来说它是1440乘900),那么计数器 正常显示。

可能是什么原因?我的印象是有两种纹理, 其中进行渲染,并取决于分辨率 是其中一个展示? 这是Present()钩子之后的SwapChain数据:

DXGI_SWAP_CHAIN_DESC swapChainDesc = {};
hr = swap->GetDesc(&swapChainDesc);

swapChainDesc.BufferDesc.Width = 800
swapChainDesc.BufferDesc.Height = 600
swapChainDesc.BufferDesc.RefreshRate.Numerator = 0 
swapChainDesc.BufferDesc.RefreshRate.Denominator = 1 
swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM (28)
swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED (0)
swapChainDesc.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED (0)

swapChainDesc.SampleDesc.Count = 2
swapChainDesc.SampleDesc.Quality = 0 

swapChainDesc.BufferUsage = 48
swapChainDesc.BufferCount = 1
swapChainDesc.OutputWindow = 0x000000000006087c {unused=71304240 }
swapChainDesc.Windowed = 1
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD (0)
swapChainDesc.Flags = 2

我怀疑这受参数影响:swapChainDesc.SampleDesc.Count = 2 还有什么呢?如何显示文字? 这种多样本抗锯齿是否会影响它?

在窗口(800x600)中:

enter image description here

全屏模式(800x600):

enter image description here

在全屏模式下(1440x900,屏幕分辨率):

enter image description here

0 个答案:

没有答案