Tengo una aplicación WPF que está destinada a superponer un HUD en una transmisión en vivo. La idea original era crear un complemento para xsplit (una aplicación popular para presentar transmisiones en vivo) para mostrar el contenido de la aplicación WPF. El problema con este enfoque es que renderizar un mapa de bits a la interfaz COM de xsplit es perjudicial para el rendimiento de la CPU para liberar la aplicación (ya que creo que hay problemas en la interfaz COM de xsplit y en RenderTargetBitmap que grava la CPU).Renderizado desde el interior de WPF a una aplicación de Directx
He estado viendo directamente la superposición en el juego (la aplicación de destino de DirectX) porque proporciona una serie de beneficios. Principalmente evita los problemas de rendimiento en xsplit, pero también abre la aplicación a una variedad de aplicaciones de transmisión y captura.
No soy un muy experimentado con DirectX pero creo que este es el esquema de la solución
inicializar la aplicación WPF y capturar dispositivo Direct3d de WPF (via this method)
Buscar y enganchar la aplicación EndScene de la aplicación de destino DirectX (using EasyHook+Slimdx)
representar los contenidos de la superficie del dispositivo de aplicación de WPF sábana DirectX enganchado
La cuestión principal que tengo es cómo llevar a cabo el paso 3 usando SlimDX. Espero que una solución pueda reutilizar de alguna manera la superficie y no confiar en la copia ya que el objetivo es no afectar el rendimiento de la aplicación enganchada. También me gustaría poder limitar la región y apoyar la transparencia. También me pregunto si usar el dispositivo Direct3d de WPF en el dispositivo de la aplicación DirectX enganchado puede causar inestabilidades.
Cualquier idea sería apreciada, gracias.
¿cómo hiciste para hacerlo? Estoy atrapado en una situación similar. – alDiablo