Interfaz ISurfaceImageSourceNativeWithD2D (windows.ui.xaml.media.dxinterop.h)
Proporciona la implementación de una superficie compartida de Microsoft DirectX que se muestra en surfaceImageSource o VirtualSurfaceImageSource.
Herencia
La interfaz ISurfaceImageSourceNativeWithD2D hereda de la interfaz IUnknown . ISurfaceImageSourceNativeWithD2D también tiene estos tipos de miembros:
Métodos
La interfaz ISurfaceImageSourceNativeWithD2D tiene estos métodos.
ISurfaceImageSourceNativeWithD2D::BeginDraw Inicia una actualización de SurfaceImageSource o VirtualSurfaceImageSource asociada. |
ISurfaceImageSourceNativeWithD2D::EndDraw El método ISurfaceImageSourceNativeWithD2D::EndDraw (windows.ui.xaml.media.dxinterop.h) cierra la operación de dibujo de superficie. |
ISurfaceImageSourceNativeWithD2D::ResumeDraw Reanude la operación de dibujo. |
ISurfaceImageSourceNativeWithD2D::SetDevice Establece la infraestructura de gráficos de Microsoft DirectX (DXGI) o el dispositivo Direct2D, creado con D3D11_CREATE_DEVICE_BGRA_SUPPORT, que dibujará la superficie. |
ISurfaceImageSourceNativeWithD2D::SuspendDraw Suspende la operación de dibujo. |
Comentarios
La interfaz ISurfaceImageSourceNativeWithD2D proporciona la implementación nativa de la clase SurfaceImageSource . Para obtener un puntero a la interfaz ISurfaceImageSourceNativeWithD2D , debes convertir una instancia de SurfaceImageSource en IInspectable o IUnknown y llamar al método QueryInterface .
Microsoft::WRL::ComPtr<ISurfaceImageSourceNativeWithD2D> m_sisD2DNative;
// ...
IInspectable* sisInspectable = (IInspectable*) reinterpret_cast<IInspectable*>(surfaceImageSource);
sisInspectable->QueryInterface(__uuidof(ISurfaceImageSourceNative), (void **)&m_sisD2DNative)
La interfaz ISurfaceImageSourceNativeWithD2D proporciona un dibujo direct2D por lotes de alto rendimiento, que permite dibujar en varios objetos SurfaceImageSource o VirtualSurfaceImageSource en el mismo lote, siempre y cuando compartan el mismo dispositivo Direct2D. El procesamiento por lotes puede mejorar el rendimiento al actualizar varias superficies al mismo tiempo.
La interfaz ISurfaceImageSourceNativeWithD2D permite dibujar en surfaceImageSource o VirtualSurfaceImageSource desde uno o varios subprocesos de fondo, lo que permite la representación directX de alto rendimiento fuera del subproceso de la interfaz de usuario.
Llame solo a los métodos SetDevice, BeginDraw y EndDraw en la interfaz ISurfaceImageSourceNativeWithD2D, no en las interfaces ISurfaceImageSourceNative o IVirtualSurfaceImageSourceNative.
Para admitir las actualizaciones por lotes de varias superficies para mejorar el rendimiento, puede pasar un ID2D1Device al método SetDevice , en lugar de un ID3D11Device. El método BeginDraw puede devolver opcionalmente un ID2D1DeviceContext compartido, que la aplicación usa para dibujar todo el contenido de esa actualización.
Para dibujar en la superficie desde un subproceso en segundo plano, debes establecer cualquier recurso de DirectX, incluido el dispositivo Microsoft Direct3D, el contexto del dispositivo Direct3D, el dispositivo Direct2D y el contexto del dispositivo Direct2D, para habilitar la compatibilidad con multithreading.
Puede llamar a los métodos BeginDraw, SuspendDraw y ResumeDraw desde cualquier subproceso en segundo plano para habilitar el dibujo multiproceso de alto rendimiento.
Llame siempre al método EndDraw en el subproceso de interfaz de usuario para sincronizar la actualización del contenido de DirectX con el marco de subproceso de interfaz de usuario XAML actual. Puede llamar a BeginDraw en un subproceso en segundo plano, llamar a SuspendDraw cuando haya terminado de dibujar en el subproceso en segundo plano y llamar a EndDraw en el subproceso de interfaz de usuario.
Use SuspendDraw y ResumeDraw para suspender y reanudar el dibujo en cualquier subproceso de fondo o interfaz de usuario.
Controla el evento SurfaceContentsLost para determinar cuándo necesitas volver a crear contenido que se puede perder si el sistema restablece la GPU.
Requisitos
Cliente mínimo compatible | Windows 8.1 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2012 R2 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | windows.ui.xaml.media.dxinterop.h |