Interfaccia ISurfaceImageSourceNativeWithD2D (windows.ui.xaml.media.dxinterop.h)
Fornisce l'implementazione di una superficie Microsoft DirectX condivisa visualizzata in surfaceImageSource o VirtualSurfaceImageSource.
Ereditarietà
L'interfaccia ISurfaceImageSourceNativeWithD2D eredita dall'interfaccia IUnknown . ISurfaceImageSourceNativeWithD2D include anche questi tipi di membri:
Metodi
L'interfaccia ISurfaceImageSourceNativeWithD2D include questi metodi.
ISurfaceImageSourceNativeWithD2D::BeginDraw Avvia un aggiornamento a SurfaceImageSource o VirtualSurfaceImageSource associato. |
ISurfaceImageSourceNativeWithD2D::EndDraw Il metodo ISurfaceImageSourceNativeWithD2D::EndDraw (windows.ui.xaml.media.dxinterop.h) chiude l'operazione di disegno della superficie. |
ISurfaceImageSourceNativeWithD2D::ResumeDraw Riprendere l'operazione di disegno. |
ISurfaceImageSourceNativeWithD2D::SetDevice Imposta il dispositivo DXGI (Microsoft DirectX Graphics Infrastructure) o Direct2D, creato con D3D11_CREATE_DEVICE_BGRA_SUPPORT, che disegnare la superficie. |
ISurfaceImageSourceNativeWithD2D::SuspendDraw Sospende l'operazione di disegno. |
Commenti
L'interfaccia ISurfaceImageSourceNativeWithD2D fornisce l'implementazione nativa della classe SurfaceImageSource . Per ottenere un puntatore all'interfaccia ISurfaceImageSourceNativeWithD2D , devi eseguire il cast di un'istanza di SurfaceImageSource in IInspectable o IUnknown e chiamare il metodo QueryInterface .
Microsoft::WRL::ComPtr<ISurfaceImageSourceNativeWithD2D> m_sisD2DNative;
// ...
IInspectable* sisInspectable = (IInspectable*) reinterpret_cast<IInspectable*>(surfaceImageSource);
sisInspectable->QueryInterface(__uuidof(ISurfaceImageSourceNative), (void **)&m_sisD2DNative)
L'interfaccia ISurfaceImageSourceNativeWithD2D offre un disegno Direct2D a prestazioni elevate, che consente di disegnare su più oggetti SurfaceImageSource o VirtualSurfaceImageSource nello stesso batch, purché condividano lo stesso dispositivo Direct2D. L'invio in batch può migliorare le prestazioni durante l'aggiornamento di più superfici contemporaneamente.
L'interfaccia ISurfaceImageSourceNativeWithD2D consente di disegnare in SurfaceImageSource o VirtualSurfaceImageSource da uno o più thread in background, che consente il rendering DirectX ad alte prestazioni dal thread dell'interfaccia utente.
Chiamare solo i metodi SetDevice, BeginDraw e EndDraw nell'interfaccia ISurfaceImageSourceNativeWithD2D, non nelle interfacce ISurfaceImageSourceNative o IVirtualSurfaceImageSourceNative.
Per supportare l'invio in batch di aggiornamenti a più superfici per migliorare le prestazioni, è possibile passare un ID2D1Device al metodo SetDevice , anziché un oggetto ID3D11Device. Il metodo BeginDraw può quindi restituire facoltativamente un ID2D1DeviceContext condiviso, che l'app usa per disegnare tutto il contenuto per tale aggiornamento.
Per disegnare sulla superficie da un thread in background, è necessario impostare tutte le risorse DirectX, tra cui il dispositivo Microsoft Direct3D, il contesto di dispositivo Direct3D, il dispositivo Direct2D e il contesto di dispositivo Direct2D, per abilitare il supporto per il multithreading.
È possibile chiamare i metodi BeginDraw, SuspendDraw e ResumeDraw da qualsiasi thread di sfondo per abilitare il disegno multithreading ad alte prestazioni.
Chiamare sempre il metodo EndDraw nel thread dell'interfaccia utente per sincronizzare l'aggiornamento del contenuto DirectX con il frame di thread dell'interfaccia utente XAML corrente. È possibile chiamare BeginDraw su un thread in background, chiamare SuspendDraw al termine del disegno sul thread in background e chiamare EndDraw nel thread dell'interfaccia utente.
Usa SuspendDraw e ResumeDraw per sospendere e riprendere il disegno su qualsiasi thread di sfondo o interfaccia utente.
Gestire l'evento SurfaceContentsLost per determinare quando è necessario ricreare il contenuto che potrebbe andare perso se il sistema reimposta la GPU.
Requisiti
Client minimo supportato | Windows 8.1 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2012 R2 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | windows.ui.xaml.media.dxinterop.h |