D3DImage.SetBackBuffer 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Direct3D 화면을 백 버퍼의 소스로 할당합니다.
오버로드
SetBackBuffer(D3DResourceType, IntPtr) |
Direct3D 화면을 백 버퍼의 소스로 할당합니다. |
SetBackBuffer(D3DResourceType, IntPtr, Boolean) |
Direct3D 화면을 백 버퍼의 소스로 할당합니다. |
SetBackBuffer(D3DResourceType, IntPtr)
Direct3D 화면을 백 버퍼의 소스로 할당합니다.
public:
void SetBackBuffer(System::Windows::Interop::D3DResourceType backBufferType, IntPtr backBuffer);
[System.Security.SecurityCritical]
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer);
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer);
[<System.Security.SecurityCritical>]
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint -> unit
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint -> unit
Public Sub SetBackBuffer (backBufferType As D3DResourceType, backBuffer As IntPtr)
매개 변수
- backBufferType
- D3DResourceType
Direct3D 화면의 유형입니다. 유효한 D3DResourceType이어야 합니다.
- backBuffer
-
IntPtr
nativeint
백 버퍼로 할당할 Direct3D 화면입니다.
- 특성
예외
D3DImage 또는 Lock() 메서드를 호출하여 TryLock(Duration)를 잠그지 않은 경우
backBufferType
은 유효한 D3DResourceType이 아닙니다.
backBuffer
의 생성 매개 변수가 backBufferType
의 요구 사항에 부합되지 않거나 backBuffer
디바이스가 유효하지 않습니다.
예제
다음 코드 예제에서는 메서드를 호출 SetBackBuffer 하여 Direct3D 표면을 할당하는 방법을 보여 줍니다. 자세한 내용은 연습: WPF에서 Direct3D9 콘텐츠 호스팅합니다.
d3dimg.Lock();
// Repeatedly calling SetBackBuffer with the same IntPtr is
// a no-op. There is no performance penalty.
d3dimg.SetBackBuffer(D3DResourceType.IDirect3DSurface9, pSurface);
HRESULT.Check(Render());
d3dimg.AddDirtyRect(new Int32Rect(0, 0, d3dimg.PixelWidth, d3dimg.PixelHeight));
d3dimg.Unlock();
설명
메서드를 SetBackBuffer 호출하여 Direct3D 표면을 백 버퍼에 할당합니다.
참고
성능은 Direct3D 화면의 설정에 따라 크게 달라집니다. 자세한 내용은 Direct3D9 및 WPF 상호 운용성을 위한 성능 고려 사항을 참조하세요.
오버로드를 SetBackBuffer(D3DResourceType, IntPtr) 호출하는 것은 매개 변수가 SetBackBuffer(D3DResourceType, IntPtr, Boolean) 로 설정된 오버로드를 enableSoftwareFallback
호출하는 것과 false
동일합니다. 로 설정된 false
매개 변수를 사용하여 enableSoftwareFallback
를 호출하거나 호출 SetBackBuffer(D3DResourceType, IntPtr)SetBackBuffer(D3DResourceType, IntPtr, Boolean) 하면 렌더링 시스템은 전면 버퍼를 사용할 수 없게 되고 아무것도 표시되지 않으면 백 버퍼에 대한 참조를 해제합니다. 프런트 버퍼가 다시 제공 되 면 렌더링 발생을 IsFrontBufferAvailableChanged WPF 애플리케이션에 알리는 이벤트입니다.
IsFrontBufferAvailableChanged 이벤트에 대한 이벤트 처리기를 만들어 유효한 Direct3D 표면을 사용하여 렌더링을 다시 시작할 수 있습니다. 렌더링을 다시 시작하려면 SetBackBuffer를 호출해야 합니다.
다음 목록에서는 형식에 필요한 백 버퍼 설정을 IDirect3DSurface9
보여줍니다.
D3DFMT_A8R8G8B8
또는D3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
다중 샘플링은 표면에서 IDirect3DSurface9Ex
만 허용됩니다.
추가 정보
적용 대상
SetBackBuffer(D3DResourceType, IntPtr, Boolean)
Direct3D 화면을 백 버퍼의 소스로 할당합니다.
public:
void SetBackBuffer(System::Windows::Interop::D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
[System.Security.SecurityCritical]
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
[<System.Security.SecurityCritical>]
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint * bool -> unit
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint * bool -> unit
Public Sub SetBackBuffer (backBufferType As D3DResourceType, backBuffer As IntPtr, enableSoftwareFallback As Boolean)
매개 변수
- backBufferType
- D3DResourceType
Direct3D 화면의 유형입니다. 유효한 D3DResourceType이어야 합니다.
- backBuffer
-
IntPtr
nativeint
백 버퍼로 할당할 Direct3D 화면입니다.
- enableSoftwareFallback
- Boolean
소프트웨어 렌더링에서 폴백하려면 true
이고, 그렇지 않으면 false
입니다.
- 특성
설명
SetBackBuffer(D3DResourceType, IntPtr) 오버로드를 호출하거나 enableSoftwareFallback
매개 변수가 false
로 설정된 SetBackBuffer(D3DResourceType, IntPtr, Boolean) 오버로드를 호출하면 렌더링 시스템은 전면 버퍼를 사용할 수 없게 되고 아무것도 표시되지 않으면 백 버퍼에 대한 참조를 해제합니다. 프런트 버퍼가 다시 제공 되 면 렌더링 발생을 IsFrontBufferAvailableChanged WPF 애플리케이션에 알리는 이벤트입니다.
IsFrontBufferAvailableChanged 이벤트에 대한 이벤트 처리기를 만들어 유효한 Direct3D 표면을 사용하여 렌더링을 다시 시작할 수 있습니다. 렌더링을 다시 시작하려면 SetBackBuffer를 호출해야 합니다.
로 설정된 true
매개 변수를 사용하여 enableSoftwareFallback
를 호출 SetBackBuffer(D3DResourceType, IntPtr, Boolean) 할 때 렌더링 시스템은 프런트 버퍼를 사용할 수 없게 되면 백 버퍼에 대한 참조를 유지하므로 프런트 버퍼를 다시 사용할 수 있을 때 를 호출 SetBackBuffer 할 필요가 없습니다. 사용자의 디바이스에 사용할 수 없게 되는 상황이 있을 수 있습니다. 이 경우 를 호출 SetBackBuffer 하여 백 버퍼에 대한 WPF의 참조를 해제합니다. 디바이스를 재설정 해야 할 경우 호출 SetBackBuffer 사용 하 여 backBuffer
로 설정 null
, 다음 호출 SetBackBuffer 사용 하 여 다시 backBuffer
유효한 Direct3D 화면을로 설정 합니다.
다음 목록에서는 형식에 필요한 백 버퍼 설정을 IDirect3DSurface9
보여줍니다.
D3DFMT_A8R8G8B8
또는D3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
다중 샘플링은 표면에서 IDirect3DSurface9Ex
만 허용됩니다.
적용 대상
.NET