Interface ISurfaceImageSourceNativeWithD2D (windows.ui.xaml.media.dxinterop.h)
Fornece a implementação de uma superfície compartilhada do Microsoft DirectX que é exibida em um SurfaceImageSource ou VirtualSurfaceImageSource.
Herança
A interface ISurfaceImageSourceNativeWithD2D herda da interface IUnknown . ISurfaceImageSourceNativeWithD2D também tem estes tipos de membros:
Métodos
A interface ISurfaceImageSourceNativeWithD2D tem esses métodos.
ISurfaceImageSourceNativeWithD2D::BeginDraw Inicia uma atualização para o SurfaceImageSource ou VirtualSurfaceImageSource associado. |
ISurfaceImageSourceNativeWithD2D::EndDraw O método ISurfaceImageSourceNativeWithD2D::EndDraw (windows.ui.xaml.media.dxinterop.h) fecha a operação de desenho da superfície. |
ISurfaceImageSourceNativeWithD2D::ResumeDraw Retome a operação de desenho. |
ISurfaceImageSourceNativeWithD2D::SetDevice Define o dispositivo DXGI (Microsoft DirectX Graphics Infrastructure) ou Direct2D, criado com D3D11_CREATE_DEVICE_BGRA_SUPPORT, que desenhará a superfície. |
ISurfaceImageSourceNativeWithD2D::SuspendDraw Suspende a operação de desenho. |
Comentários
A interface ISurfaceImageSourceNativeWithD2D fornece a implementação nativa da classe SurfaceImageSource . Para obter um ponteiro para a interface ISurfaceImageSourceNativeWithD2D , você deve converter uma instância do SurfaceImageSource em IInspectable ou IUnknown e chamar o método QueryInterface .
Microsoft::WRL::ComPtr<ISurfaceImageSourceNativeWithD2D> m_sisD2DNative;
// ...
IInspectable* sisInspectable = (IInspectable*) reinterpret_cast<IInspectable*>(surfaceImageSource);
sisInspectable->QueryInterface(__uuidof(ISurfaceImageSourceNative), (void **)&m_sisD2DNative)
A interface ISurfaceImageSourceNativeWithD2D fornece desenho Direct2D em lote de alto desempenho, que permite desenhar em vários objetos SurfaceImageSource ou VirtualSurfaceImageSource diferentes no mesmo lote, desde que compartilhem o mesmo dispositivo Direct2D. O envio em lote pode melhorar o desempenho ao atualizar várias superfícies ao mesmo tempo.
A interface ISurfaceImageSourceNativeWithD2D permite desenhar em um SurfaceImageSource ou VirtualSurfaceImageSource de um ou mais threads em segundo plano, o que permite a renderização directX de alto desempenho do thread da interface do usuário.
Chame apenas os métodos SetDevice, BeginDraw e EndDraw na interface ISurfaceImageSourceNativeWithD2D , não nas interfaces ISurfaceImageSourceNative ou IVirtualSurfaceImageSourceNative .
Para dar suporte a atualizações de envio em lote para várias superfícies para melhorar o desempenho, você pode passar um ID2D1Device para o método SetDevice , em vez de um ID3D11Device. O método BeginDraw pode, opcionalmente, retornar um ID2D1DeviceContext compartilhado, que o aplicativo usa para desenhar todo o conteúdo dessa atualização.
Para desenhar para a superfície a partir de um thread em segundo plano, você deve definir todos os recursos do DirectX, incluindo o dispositivo Microsoft Direct3D, o contexto do dispositivo Direct3D, o dispositivo Direct2D e o contexto do dispositivo Direct2D, para habilitar o suporte a multithreading.
Você pode chamar os métodos BeginDraw, SuspendDraw e ResumeDraw de qualquer thread em segundo plano para habilitar o desenho multithread de alto desempenho.
Sempre chame o método EndDraw no thread da interface do usuário para sincronizar a atualização do conteúdo do DirectX com o quadro de thread da interface do usuário XAML atual. Você pode chamar BeginDraw em um thread em segundo plano, chamar SuspendDraw quando terminar de desenhar no thread em segundo plano e chamar EndDraw no thread da interface do usuário.
Use SuspendDraw e ResumeDraw para suspender e retomar o desenho em qualquer tela de fundo ou thread de interface do usuário.
Manipule o evento SurfaceContentsLost para determinar quando você precisa recriar o conteúdo que pode ser perdido se o sistema redefinir a GPU.
Requisitos
Cliente mínimo com suporte | Windows 8.1 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2012 R2 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | windows.ui.xaml.media.dxinterop.h |