2017-05-19 3 views
1

Je travaille sur une application d'enregistrement d'écran et je peux capturer l'écran mais sans le curseur de la souris. J'ai utilisé DXGI, SharpDX et Media Foundation.Capture du curseur de la souris et dessiner sur le tampon d'image C#

Ma question est. Est-il possible d'écrire le curseur de la souris sur le tampon de l'image afin que le tampon d'image que j'ai envoyé à mediafoundation ait déjà le curseur de la souris avant de l'encoder dans une vidéo? Vu beaucoup d'échantillon ici comment inclure le curseur de la souris dans la capture d'écran, mais ce qu'ils ont fait est de convertir à la fois l'image en bitmap, puis combiner les deux. J'ai déjà essayé cela mais la performance n'est pas bonne et l'utilisation du processeur est si élevée et aussi fps est faible. sans curseur je peux capturer 60fps en douceur. Merci à l'avance

Répondre

0

il est possible d'implémenter votre tâche, mais il faut copier du code à partir de C++ sur C#. Dans mon projet Desktop Screen Capture on Windows via Windows Desktop Duplication API with Drawing of Cursor's Image vous pouvez trouver la solution appropriée. Il est basé sur l'utilisation d'une texture spéciale Direct3D11 - il est créé avec MiscFlag - D3D11_RESOURCE_MISC_GDI_COMPATIBLE. Il permet le rendu GDI sur la surface via IDXGISurface1::GetDC et en utilisant la fonction Windows DrawIconEx pour dessiner l'image du curseur. Le dessin du curseur est exécuté par la fonction Windows et est effectué dans le contexte de la mémoire vidéo.

Cordialement.

+0

Je suis pile à IDXGISurface1 :: GetDC. Je ne peux pas trouver l'emballage de ce code dans SharpDX. – kripto

+0

Pourquoi vous ne pouvez pas trouver? Vérifiez le lien [SharpDX-DXGI API] (http://sharpdx.org/wiki/class-library-api/dxgi/#api-Interfaces) - il a 'IDXGISurface1

  • GetDC
  • ???
  • ???

L'interface étend le en ajoutant la prise en charge de l'utilisation de l'interface GDI (Windows Graphics Device Interface) pour le rendu vers une surface DXGI (Microsoft DirectX Graphics Infrastructure).

' –

+0

l'a trouvé grâce à son fonctionnement maintenant – kripto