Compartilhar via


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

Confira também

Interoperabilidade entre DirectX e XAML

IUnknown

SurfaceContentsLost

SurfaceImageSource

VirtualSurfaceImageSource