Mam aplikację WPF, która jest przeznaczona do nakładania HUDa w strumieniu na żywo. Pierwotnym pomysłem było stworzenie wtyczki dla xsplit (popularnej aplikacji do prezentowania transmisji na żywo), aby wyświetlić zawartość aplikacji WPF. Problem z tym podejściem polega na tym, że renderowanie bitmapy do interfejsu COM xsplit ma daleko zaszkodzić wydajności procesora, aby zwolnić aplikację (Sądzę, że są problemy z interfejsem COM xsplit, a także używanie RenderTargetBitmap obciążających procesor).Rendering z wewnętrznych elementów WPF do aplikacji Directx
Szukałem bezpośredniego renderowania nakładki w grze (docelowa aplikacja DirectX), ponieważ zapewnia ona wiele korzyści. Głównie omija problemy z wydajnością w xsplit, ale także otwiera aplikację na różne aplikacje do przesyłania strumieniowego i przechwytywania.
nie jestem bardzo doświadczony z DirectX, ale myślę, że to jest zarys rozwiązania
inicjalizację aplikacji WPF i uchwycić urządzenia Direct3D WPF za (via this method)
Znajdź i podpowiedz docelową aplikację EndScene aplikacji DirectX (using EasyHook+Slimdx)
Render zawartość powierzchni urządzenia WPF za ontop haczykowatym aplikacji DirectX
Głównym Mam pytanie jest jak wykonać krok 3 przy użyciu SlimDX. Mam nadzieję, że rozwiązanie może w jakiś sposób ponownie wykorzystać powierzchnię i nie polegać na kopiowaniu, ponieważ celem jest nie wpływać na wydajność aplikacji hakowanej. Chciałbym również móc ograniczyć region i wspierać przejrzystość. Zastanawiam się również, czy użycie urządzenia Direct3d WPF w hakowanym urządzeniu aplikacji DirectX może spowodować niestabilność.
Każdy wgląd byłby doceniony, dziękuję.
Jak to zrobiłeś, żeby to zrobić? Utknąłem w podobnej sytuacji. – alDiablo