Freigeben über


ISurfaceImageSourceNativeWithD2D-Schnittstelle (windows.ui.xaml.media.dxinterop.h)

Stellt die Implementierung einer freigegebenen Microsoft DirectX-Oberfläche bereit, die in einer SurfaceImageSource oder VirtualSurfaceImageSource angezeigt wird.

Vererbung

Die ISurfaceImageSourceNativeWithD2D-Schnittstelle erbt von der IUnknown-Schnittstelle . ISurfaceImageSourceNativeWithD2D verfügt auch über folgende Membertypen:

Methoden

Die ISurfaceImageSourceNativeWithD2D-Schnittstelle verfügt über diese Methoden.

 
ISurfaceImageSourceNativeWithD2D::BeginDraw

Initiiert ein Update für die zugeordnete SurfaceImageSource oder VirtualSurfaceImageSource.
ISurfaceImageSourceNativeWithD2D::EndDraw

Die ISurfaceImageSourceNativeWithD2D::EndDraw-Methode (windows.ui.xaml.media.dxinterop.h) schließt den Surface Draw-Vorgang.
ISurfaceImageSourceNativeWithD2D:ResumeDraw

Setzen Sie den Zeichnungsvorgang fort.
ISurfaceImageSourceNativeWithD2D:SetDevice

Legt das Mit D3D11_CREATE_DEVICE_BGRA_SUPPORT erstellte DxGI-Gerät (Microsoft DirectX Graphics Infrastructure) oder Direct2D-Gerät fest, das die Oberfläche zeichnet.
ISurfaceImageSourceNativeWithD2D:SuspendDraw

Hält den Zeichnungsvorgang an.

Hinweise

Die ISurfaceImageSourceNativeWithD2D-Schnittstelle stellt die native Implementierung der SurfaceImageSource-Klasse bereit. Um einen Zeiger auf die ISurfaceImageSourceNativeWithD2D-Schnittstelle abzurufen, müssen Sie eine SurfaceImageSource-instance in IInspectable oder IUnknown umwandeln und die QueryInterface-Methode aufrufen.


Microsoft::WRL::ComPtr<ISurfaceImageSourceNativeWithD2D>	m_sisD2DNative;
// ...
IInspectable* sisInspectable = (IInspectable*) reinterpret_cast<IInspectable*>(surfaceImageSource);
sisInspectable->QueryInterface(__uuidof(ISurfaceImageSourceNative), (void **)&m_sisD2DNative)
	

Die ISurfaceImageSourceNativeWithD2D-Schnittstelle bietet leistungsstarke Direct2D-Batchzeichnungen, die das Zeichnen auf mehrere verschiedene SurfaceImageSource - oder VirtualSurfaceImageSource-Objekte im gleichen Batch ermöglichen, solange sie dasselbe Direct2D-Gerät verwenden. Batchverarbeitung kann die Leistung verbessern, wenn mehrere Oberflächen gleichzeitig aktualisiert werden.

Die ISurfaceImageSourceNativeWithD2D-Schnittstelle ermöglicht das Zeichnen auf eine SurfaceImageSource oder VirtualSurfaceImageSource aus einem oder mehreren Hintergrundthreads, wodurch ein leistungsstarkes DirectX-Rendering über den UI-Thread ermöglicht wird.

Rufen Sie die Methoden SetDevice, BeginDraw und EndDraw nur auf der ISurfaceImageSourceNativeWithD2D-Schnittstelle auf, nicht auf der ISurfaceImageSourceNative - oder IVirtualSurfaceImageSourceNative-Schnittstelle .

Um das Batchupdates für mehrere Oberflächen zu unterstützen, um die Leistung zu verbessern, können Sie ein ID2D1Device anstelle eines ID3D1Device an die SetDevice-Methode übergeben. Die BeginDraw-Methode kann dann optional einen freigegebenen ID2D1DeviceContext zurückgeben, den die App verwendet, um alle Inhalte für dieses Update zu zeichnen.

Um aus einem Hintergrundthread auf die Oberfläche zu zeichnen, müssen Sie alle DirectX-Ressourcen festlegen, einschließlich des Microsoft Direct3D-Geräts, des Direct3D-Gerätekontexts, des Direct2D-Geräts und des Direct2D-Gerätekontexts, um die Unterstützung für Multithreading zu aktivieren.

Sie können die Methoden BeginDraw, SuspendDraw und ResumeDraw aus einem beliebigen Hintergrundthread aufrufen, um hochleistungsfähiges Multithread zeichnen zu ermöglichen.

Rufen Sie immer die EndDraw-Methode im UI-Thread auf, um das Aktualisieren des DirectX-Inhalts mit dem aktuellen XAML-UI-Threadframe zu synchronisieren. Sie können BeginDraw in einem Hintergrundthread aufrufen, SuspendDraw aufrufen, wenn Sie mit dem Zeichnen für den Hintergrundthread fertig sind, und EndDraw im UI-Thread aufrufen.

Verwenden Sie SuspendDraw und ResumeDraw , um das Zeichnen auf einem beliebigen Hintergrund- oder UI-Thread anzusetzen und fortzusetzen.

Behandeln Sie das SurfaceContentsLost-Ereignis , um zu bestimmen, wann Sie Inhalte neu erstellen müssen, die möglicherweise verloren gehen, wenn das System die GPU zurücksetzt.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8.1 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile windows.ui.xaml.media.dxinterop.h

Weitere Informationen

Interoperabilität von DirectX und XAML

IUnknown

SurfaceContentsLost

SurfaceImageSource

VirtualSurfaceImageSource