ライブストリームにHUDをオーバーレイするためのWPFアプリケーションがあります。オリジナルのアイデアは、WPFアプリケーションのコンテンツを表示するためのxsplit(ライブストリームを表示するポピュラーなアプリケーション)用のプラグインを作成することでした。このアプローチの問題点は、xsplitのCOMインターフェイスにビットマップをレンダリングすると、アプリケーションを解放するためにCPUのパフォーマンスが大きく損なわれることです(xsplitのCOMインターフェイスに問題があると思うので、CPUに課金するRenderTargetBitmapを使用します)。WPFの内部からDirectXアプリケーションへのレンダリング
私は多くのメリットがあるため、オーバーレイをゲームに直接描画することを検討しています(ターゲットDirectXアプリケーション)。主にxsplitのパフォーマンス上の問題を回避しますが、さまざまなストリーミングアプリケーションやキャプチャアプリケーションまでアプリケーションを開くことができます。
、私は非常にはDirectXで経験していないが、私は、このソリューションの概要
は、WPFアプリケーションを初期化され、検索(via this method)
WPFのDirect3Dデバイスをキャプチャだと思うし、ターゲットDirectXアプリケーションのEndSceneコールをフックする(using EasyHook+Slimdx)
は、フックのDirectXアプリケーションの岩下WPFデバイスの表面の内容をレンダリング
私が持っている主な質問はSlimDXを用いて、ステップ3を実行する方法です。私は、ソリューションが何らかの形で表面を再利用し、コピーされたアプリケーションのパフォーマンスに影響を与えないことを目標にしているので、コピーに頼らないことを願っています。私はまた、地域を限定し透明性をサポートできるようにしたいと思います。私はまた、DirectXアプリケーションのデバイスにWPFのDirect3Dデバイスを使用すると不安定になるかどうか疑問に思っています。
洞察力があれば幸いです。ありがとうございます。
あなたはどうやってそれをしましたか?私は似たような状況に陥っています。 – alDiablo