D3D11でDirectXアプリケーション(例えばゲーム)のスクリーンキャプチャを行うことはできますか?C++でのD3D11画面キャプチャ
私はD3D11をinitalizeとゲーム画面(のFindWindow())とSwapChainを作成するのDirectX 9またはAPIフッキング(IDXGISwapChain ::現在)で簡単にそれを行うが、DirectXの11
では不可能することができ、 はその後、私は ID3D11Device :: CreateTexture2D()、 その後、 ID3D11DeviceContext :: COPYRESOURCE() 私に新しいID3D11Texture2Dリソースを与えるには、それを使用してバックバッファ、
その後、 ID3D11Texture2D :: GetDesc() を取得します。D3DX11SaveTextureToFile()のような通常の方法で保存すると、常に黒い画像が表示されます。
私は何を忘れましたか?
ありがとうございました。
を使用する方法を知っているようにしてください。 OBSプロジェクトはおそらく "コードのどこか"にありますhttp://stackoverflow.com/questions/5069104/fastest-method-of-screen-capturing – rogerdpack
Windows 8クライアントをターゲットにする場合は、Desktop Duplication APIを使用してください:https://msdn.microsoft.com/library/windows/desktop/hh404487.aspx –
OBSは引用したフックを使用します(DXGICapture.cppファイル)。 DirectX9のように簡単ですが、なぜDirectX11と同様の方法で黒い画像が得られるのでしょうか –