DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DDevice9 Present   [목차열람] [주소복사] [슬롯비우기]
IDirect3DDevice9::Present 메서드
 
Microsoft DirectX 9.0

IDirect3DDevice9::Present 메서드


장치가 소유하는 백 버퍼의 순서 중(안)에서, 다음의 버퍼의 컨텐츠를 프레젠테이션 한다.

구문

HRESULT Present(      

    CONST RECT *pSourceRect,     CONST RECT *pDestRect,     HWND hDestWindowOverride,     CONST RGNDATA *pDirtyRegion );

파라미터

pSourceRect
[in] 스왑 체인이 D3DSWAPEFFECT_COPY 로 생성 되고 있는 경우를 제외해, NULL 를 지정해야 하는 값의 포인터. pSourceRect 는, 전송원직사각형을 포함한 RECT 구조체의 포인터이다. NULL 의 경우는, 전송원표면 전체가 표시된다. 직사각형이 전송원표면을 넘었을 경우, 직사각형은 전송원표면에 클리핑 된다.
pDestRect
[in] 스왑 체인이 D3DSWAPEFFECT_COPY 로 생성 되고 있는 경우를 제외해, NULL 를 지정해야 하는 값의 포인터. pDestRect 는, 윈도우 클라이언트 좌표내에서의, 목적지 직사각형을 포함한 RECT 구조체의 포인터이다. NULL 의 경우는, 클라이언트 영역 전체가 목적지 직사각형으로 채워진다. 직사각형이 목적지의 클라이언트 영역을 넘었을 경우, 직사각형은 목적지의 클라이언트 영역에 클리핑 된다.
hDestWindowOverride
[in] 클라이언트 영역이 이 프레젠테이션의 대상으로 해 다루어지는 목적지 윈도우의 포인터. 이 파라미터가 NULL 의 경우는,D3DPRESENT_PARAMETERShWndDeviceWindow 멤버가 사용된다.
pDirtyRegion
[in] 이 값은, 스왑 체인이 D3DSWAPEFFECT_COPY 로 생성되지 않은 한, NULL 이어야 한다. 스왑 체인의 더 자세한 정보는, 「표면의 플립」 및 「D3DSWAPEFFECT 」를 참조할것.

이 값이 NULL 가 아닌 경우, 저장 되는 범위는, 백 버퍼 좌표로 표현된다. 범위내의 직사각형은, 갱신의 필요가 있는 픽셀의 최소 세트이다. 범위내의 픽셀만, 또는 적절히 확장된 직사각형 세트만을 복사 해 프레젠테이션을 최적화할 때, 이 메서드는 이러한 직사각형을 고려한다. 이것은, 최적화의 지원에만 사용되는 것이어, 애플리케이션은, 복사 되는 범위의 정확함에 의존해서는 안된다. 처리시에, 전송원직사각형 전체를 복사 하도록(듯이) 선택할 수도 있다.

반환값

성공했을 경우는,D3D_OK 를 돌려준다.

실패했을 경우는, 다음의 몇개의 값을 돌려준다.

D3DERR_DRIVERINTERNALERROR

내부 드라이버 에러. 보통, 이 에러를 받으면 애플리케이션은 셧다운 해야 한다. 더 자세한 정보는, 「드라이버의 내부 에러」를 참조할것.

D3DERR_DEVICELOST장치는, 손실하고 있지만, 현재 리셋 할 수 없다. 따라서, 렌더링은 불가능하다.
D3DERR_INVALIDCALL메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다.


주의

필요에 따라서, 전송원직사각형내의 픽셀을 타겟 윈도우의 클라이언트 영역의 목적지 직사각형에 전송 하기 위해서 확대 처리가 적용된다.

렌더링 타겟이 현재의 렌더링 타겟이 아닌경우 (추가의 스왑 체인을 생성 할 때에 취득한 백 버퍼등)를 제외해,PresentBeginSceneEndScene 의 페어의 사이에 호출하면, 메서드는 실패해 D3DERR_INVALIDCALL 를 돌려준다. 이것은, Microsoft® DirectX® 9.0 의 새로운 동작이다.

참조

IDirect3DDevice9::Reset


© 2002 Microsoft Corporation. All rights reserved.
↑TOP