ISurfaceImageSourceNativeWithD2D 인터페이스(windows.ui.xaml.media.dxinterop.h)
SurfaceImageSource 또는 VirtualSurfaceImageSource에 표시되는 공유 Microsoft DirectX 표면의 구현을 제공합니다.
상속
ISurfaceImageSourceNativeWithD2D 인터페이스는 IUnknown 인터페이스에서 상속됩니다. ISurfaceImageSourceNativeWithD2D 에는 다음과 같은 유형의 멤버도 있습니다.
메서드
ISurfaceImageSourceNativeWithD2D 인터페이스에는 이러한 메서드가 있습니다.
ISurfaceImageSourceNativeWithD2D::BeginDraw 연결된 SurfaceImageSource 또는 VirtualSurfaceImageSource에 대한 업데이트를 시작합니다. |
ISurfaceImageSourceNativeWithD2D::EndDraw ISurfaceImageSourceNativeWithD2D::EndDraw 메서드(windows.ui.xaml.media.dxinterop.h)는 표면 그리기 작업을 닫습니다. |
ISurfaceImageSourceNativeWithD2D::ResumeDraw 그리기 작업을 다시 시작합니다. |
ISurfaceImageSourceNativeWithD2D::SetDevice D3D11_CREATE_DEVICE_BGRA_SUPPORT 사용하여 만든 Microsoft DXGI(DirectX Graphics Infrastructure) 또는 Direct2D 디바이스를 설정하여 표면을 그립니다. |
ISurfaceImageSourceNativeWithD2D::SuspendDraw 그리기 작업을 일시 중단합니다. |
설명
ISurfaceImageSourceNativeWithD2D 인터페이스는 SurfaceImageSource 클래스의 네이티브 구현을 제공합니다. ISurfaceImageSourceNativeWithD2D 인터페이스에 대한 포인터를 얻으려면 SurfaceImageSource instance IInspectable 또는 IUnknown으로 캐스팅하고 QueryInterface 메서드를 호출해야 합니다.
Microsoft::WRL::ComPtr<ISurfaceImageSourceNativeWithD2D> m_sisD2DNative;
// ...
IInspectable* sisInspectable = (IInspectable*) reinterpret_cast<IInspectable*>(surfaceImageSource);
sisInspectable->QueryInterface(__uuidof(ISurfaceImageSourceNative), (void **)&m_sisD2DNative)
ISurfaceImageSourceNativeWithD2D 인터페이스는 동일한 Direct2D 디바이스를 공유하는 한 동일한 배치에서 여러 다른 SurfaceImageSource 또는 VirtualSurfaceImageSource 개체에 그릴 수 있는 고성능 일괄 처리 Direct2D 드로잉을 제공합니다. 일괄 처리는 여러 표면을 동시에 업데이트할 때 성능을 향상시킬 수 있습니다.
ISurfaceImageSourceNativeWithD2D 인터페이스를 사용하면 하나 이상의 백그라운드 스레드에서 SurfaceImageSource 또는 VirtualSurfaceImageSource에 그릴 수 있으므로 고성능 DirectX가 UI 스레드를 렌더링할 수 있습니다.
ISurfaceImageSourceNative 또는 IVirtualSurfaceImageSourceNative 인터페이스가 아닌 ISurfaceImageSourceNativeWithD2D 인터페이스에서 SetDevice, BeginDraw 및 EndDraw 메서드만 호출합니다.
성능을 향상시키기 위해 여러 표면에 대한 일괄 업데이트를 지원하기 위해 ID2D1Device를 ID3D11Device 대신 SetDevice 메서드에 전달할 수 있습니다. 그런 다음 BeginDraw 메서드는 선택적으로 앱이 해당 업데이트에 대한 모든 콘텐츠를 그리는 데 사용하는 공유 ID2D1DeviceContext를 반환할 수 있습니다.
백그라운드 스레드에서 표면으로 그리려면 다중 스레딩 지원을 사용하도록 설정하려면 Microsoft Direct3D 디바이스, Direct3D 디바이스 컨텍스트, Direct2D 디바이스 및 Direct2D 디바이스 컨텍스트를 비롯한 DirectX 리소스를 설정해야 합니다.
모든 백그라운드 스레드에서 BeginDraw, SuspendDraw 및 ResumeDraw 메서드를 호출하여 고성능 다중 스레드 그리기를 사용하도록 설정할 수 있습니다.
DirectX 콘텐츠 업데이트를 현재 XAML UI 스레드 프레임과 동기화하려면 항상 UI 스레드에서 EndDraw 메서드를 호출합니다. 백그라운드 스레드에서 BeginDraw 를 호출하고, 백그라운드 스레드에서 그리기를 마쳤으면 SuspendDraw 를 호출하고, UI 스레드에서 EndDraw 를 호출할 수 있습니다.
SuspendDraw 및 ResumeDraw를 사용하여 백그라운드 또는 UI 스레드에서 그리기를 일시 중단하고 다시 시작합니다.
SurfaceContentsLost 이벤트를 처리하여 시스템이 GPU를 다시 설정하는 경우 손실될 수 있는 콘텐츠를 다시 만들어야 하는 시기를 결정합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 8.1 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 R2 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | windows.ui.xaml.media.dxinterop.h |