Interface ISurfaceImageSourceNativeWithD2D (windows.ui.xaml.media.dxinterop.h)
Fournit l’implémentation d’une surface Microsoft DirectX partagée qui est affichée dans une SurfaceImageSource ou VirtualSurfaceImageSource.
Héritage
L’interface ISurfaceImageSourceNativeWithD2D hérite de l’interface IUnknown. ISurfaceImageSourceNativeWithD2D a également les types de membres suivants :
Méthodes
L’interface ISurfaceImageSourceNativeWithD2D a ces méthodes.
ISurfaceImageSourceNativeWithD2D::BeginDraw Initie une mise à jour de surfaceImageSource ou VirtualSurfaceImageSource associée. |
ISurfaceImageSourceNativeWithD2D::EndDraw La méthode ISurfaceImageSourceNativeWithD2D::EndDraw (windows.ui.xaml.media.dxinterop.h) ferme l’opération de dessin de surface. |
ISurfaceImageSourceNativeWithD2D::ResumeDraw Reprenez l’opération de dessin. |
ISurfaceImageSourceNativeWithD2D::SetDevice Définit l’appareil Microsoft DirectX Graphics Infrastructure (DXGI) ou Direct2D, créé avec D3D11_CREATE_DEVICE_BGRA_SUPPORT, qui dessine la surface. |
ISurfaceImageSourceNativeWithD2D::SuspendDraw Suspend l’opération de dessin. |
Remarques
L’interface ISurfaceImageSourceNativeWithD2D fournit l’implémentation native de la classe SurfaceImageSource. Pour obtenir un pointeur vers l’interface ISurfaceImageSourceNativeWithD2D, vous devez convertir un instance SurfaceImageSource en IInspectable ou IUnknown, puis appeler la méthode QueryInterface.
Microsoft::WRL::ComPtr<ISurfaceImageSourceNativeWithD2D> m_sisD2DNative;
// ...
IInspectable* sisInspectable = (IInspectable*) reinterpret_cast<IInspectable*>(surfaceImageSource);
sisInspectable->QueryInterface(__uuidof(ISurfaceImageSourceNative), (void **)&m_sisD2DNative)
L’interface ISurfaceImageSourceNativeWithD2D fournit un dessin Direct2D par lots hautes performances, ce qui permet de dessiner plusieurs objets SurfaceImageSource ou VirtualSurfaceImageSource différents dans le même lot, à condition qu’ils partagent le même appareil Direct2D. Le traitement par lots peut améliorer les performances lors de la mise à jour de plusieurs surfaces en même temps.
L’interface ISurfaceImageSourceNativeWithD2D permet de dessiner sur une SurfaceImageSource ou VirtualSurfaceImageSource à partir d’un ou plusieurs threads d’arrière-plan, ce qui permet un rendu DirectX hautes performances hors du thread d’interface utilisateur.
Appelez uniquement les méthodes SetDevice, BeginDraw et EndDraw sur l’interface ISurfaceImageSourceNativeWithD2D , et non sur les interfaces ISurfaceImageSourceNative ou IVirtualSurfaceImageSourceNative .
Pour prendre en charge le traitement par lot des mises à jour sur plusieurs surfaces afin d’améliorer les performances, vous pouvez passer un ID2D1Device à la méthode SetDevice , au lieu d’un ID3D11Device. La méthode BeginDraw peut ensuite éventuellement retourner un ID2D1DeviceContext partagé, que l’application utilise pour dessiner tout le contenu de cette mise à jour.
Pour dessiner à la surface à partir d’un thread d’arrière-plan, vous devez définir toutes les ressources DirectX, y compris l’appareil Microsoft Direct3D, le contexte de l’appareil Direct3D, l’appareil Direct2D et le contexte d’appareil Direct2D, pour activer la prise en charge du multithread.
Vous pouvez appeler les méthodes BeginDraw, SuspendDraw et ResumeDraw à partir de n’importe quel thread d’arrière-plan pour activer le dessin multithread hautes performances.
Appelez toujours la méthode EndDraw sur le thread d’interface utilisateur afin de synchroniser la mise à jour du contenu DirectX avec le frame de thread d’interface utilisateur XAML actuel. Vous pouvez appeler BeginDraw sur un thread d’arrière-plan, appeler SuspendDraw lorsque vous avez terminé de dessiner sur le thread d’arrière-plan et appeler EndDraw sur le thread d’interface utilisateur.
Utilisez SuspendDraw et ResumeDraw pour suspendre et reprendre le dessin sur n’importe quel thread d’arrière-plan ou d’interface utilisateur.
Gérez l’événement SurfaceContentsLost pour déterminer quand vous devez recréer du contenu qui peut être perdu si le système réinitialise le GPU.
Configuration requise
Client minimal pris en charge | Windows 8.1 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2012 R2 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | windows.ui.xaml.media.dxinterop.h |