IDirect3DDevice9::UpdateSurface 메서드(d3d9.h)
한 표면에서 다른 표면으로 픽셀의 사각형 하위 집합을 복사합니다.
구문
HRESULT UpdateSurface(
[in] IDirect3DSurface9 *pSourceSurface,
[in] const RECT *pSourceRect,
[in] IDirect3DSurface9 *pDestinationSurface,
[in] const POINT *pDestPoint
);
매개 변수
[in] pSourceSurface
형식: IDirect3DSurface9*
원본 표면을 나타내는 IDirect3DSurface9 인터페이스에 대한 포인터입니다. 이 매개 변수는 pDestinationSurface와 다른 표면을 가리킵니다.
[in] pSourceRect
형식: const RECT*
원본 표면의 사각형에 대한 포인터입니다. 이 매개 변수에 NULL 을 지정하면 전체 표면이 복사됩니다.
[in] pDestinationSurface
형식: IDirect3DSurface9*
대상 표면을 나타내는 IDirect3DSurface9 인터페이스에 대한 포인터입니다.
[in] pDestPoint
형식: const POINT*
대상 사각형의 왼쪽 위 모서리에 대한 포인터입니다. 이 매개 변수에 NULL 을 지정하면 전체 표면이 복사됩니다.
반환 값
형식: HRESULT
메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값은 D3DERR_INVALIDCALL 중 하나일 수 있습니다.
설명
이 메서드는 DirectX 8의 CopyRects와 비슷합니다.
이 함수에는 다음과 같은 제한이 있습니다.
- 원본 표면은 D3DPOOL_SYSTEMMEM 사용하여 만들어졌어야 합니다.
- 대상 표면은 D3DPOOL_DEFAULT 사용하여 만들어졌어야 합니다.
- 두 표면 모두 잠겨 있거나 뛰어난 디바이스 컨텍스트를 보유할 수 없습니다.
- 두 표면 모두 다중 샘플링으로 만들 수 있습니다. 두 표면 모두에 유효한 플래그는 D3DMULTISAMPLE_NONE.
- 표면 형식은 깊이 스텐실 형식일 수 없습니다.
- 원본 및 dest 사각형은 표면에 맞아야 합니다.
- 늘어나거나 축소할 수 없습니다(사각형의 크기는 같아야 합니다).
- 원본 형식은 dest 형식과 일치해야 합니다.
Dest 형식 | |||||
---|---|---|---|---|---|
질감 | RT 텍스처 | RT | 오프 스크린 플레인 | ||
Src 형식 | 질감 | Yes | 예 | 예* | 예 |
RT 텍스처 | 예 | 아니요 | 예 | No | |
RT | 예 | 예 | 아니요 | No | |
오프 스크린 플레인 | Yes | Yes | Yes | Yes |
- 드라이버가 요청된 복사본을 지원하지 않는 경우 잠금 및 복사를 사용하여 에뮬레이트됩니다.
애플리케이션이 D3DPOOL_DEFAULT 렌더링 대상에서 D3DPOOL_SYSTEMMEM 화면으로 데이터를 복사해야 하는 경우 GetRenderTargetData를 사용할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d9.h(D3D9.h 포함) |
라이브러리 | D3D9.lib |