다음을 통해 공유


IDirect3DDevice9Ex::P resentEx 메서드(d3d9.h)

스왑 체인의 다음 버퍼를 프런트 버퍼로 교환합니다.

구문

HRESULT PresentEx(
  [in] const RECT    *pSourceRect,
  [in] const RECT    *pDestRect,
  [in] HWND          hDestWindowOverride,
  [in] const RGNDATA *pDirtyRegion,
  [in] DWORD         dwFlags
);

매개 변수

[in] pSourceRect

형식: const RECT*

창 클라이언트 좌표에서 복사할 원본 표면의 영역을 나타내는 RECT 구조체에 대한 포인터입니다. 스왑 체인이 D3DSWAPEFFECT_COPY 플래그를 사용하여 만들어진 경우에만 적용됩니다. NULL이면 전체 원본 표면이 표시됩니다. 사각형이 원본 표면을 초과하면 원본 표면으로 잘립니다.

[in] pDestRect

형식: const RECT*

창 클라이언트 좌표에서 대상 표면의 대상 영역을 나타내는 RECT 구조체에 대한 포인터입니다. 스왑 체인이 D3DSWAPEFFECT_COPY 플래그를 사용하여 만들어진 경우에만 적용됩니다. NULL이면 전체 클라이언트 영역이 채워집니다. 사각형이 대상 클라이언트 영역을 초과하면 대상 클라이언트 영역으로 잘립니다.

[in] hDestWindowOverride

형식: HWND

클라이언트 영역을 이 프레젠테이션의 대상으로 사용하는 대상 창에 대한 포인터입니다. 이 값이 NULL이면 런타임은 프레젠테이션에 D3DPRESENT_PARAMETERShDeviceWindow 멤버를 사용합니다.

참고 D3DSWAPEFFECT_FLIPEX 사용하여 스왑 체인을 만드는 경우 hDestWindowOverrideNULL을 전달해야 합니다.
 

[in] pDirtyRegion

형식: const RGNDATA*

전송해야 하는 가장 작은 픽셀 집합을 나타내는 RGNDATA 구조체에 대한 포인터입니다. D3DSWAPEFFECT_COPY 플래그를 사용하여 스왑 체인을 만들지 않는 한 이 값은 NULL이어야 합니다. 스왑 체인에 대한 자세한 내용은 Surface 대칭 이동(Direct3D 9)을 참조하세요.

이 값이 NULL이 아닌 경우 포함된 영역은 백 버퍼 좌표로 표현됩니다. 메서드는 영역 내의 픽셀만 복사하거나 적절하게 확장된 사각형 집합을 복사하여 프레젠테이션을 최적화할 때 이러한 사각형을 고려합니다. 이는 최적화에만 도움이 되며 애플리케이션은 정확히 복사되는 지역에 의존해서는 안 됩니다. 구현은 전체 원본 사각형을 복사하도록 선택할 수 있습니다.

[in] dwFlags

형식: DWORD

드라이버가 프레젠테이션을 예약할 수 없다고 보고할 때 애플리케이션에서 메서드가 즉시 반환되도록 요청할 수 있습니다. 유효한 값은 0이거나 D3DPRESENT 플래그의 조합입니다.

  • dwFlags = 0이면 이 메서드는 Direct3D 9 이전과 같이 동작합니다. 오류가 반환되지 않고 하드웨어가 해제될 때까지 가 회전합니다.
  • dwFlags = D3DPRESENT_DONOTFLIP 경우 전면 버퍼를 원본 및 대상 표면으로 사용하여 디스플레이 드라이버가 호출됩니다. 드라이버는 프레임 동기화를 예약하지만 표시된 표면을 변경하지 않음으로써 응답합니다. 이 플래그는 전체 화면 모드 또는 창 모드에서 D3DSWAPEFFECT_FLIPEX 사용하는 경우에만 사용할 수 있습니다.
  • dwFlags = D3DPRESENT_DONOTWAIT 하드웨어가 처리 중이거나 수직 동기화 간격을 기다리는 경우 메서드는 D3DERR_WASSTILLDRAWING 반환합니다.
  • dwFlags = D3DPRESENT_FORCEIMMEDIATE 경우 이 Present 호출에 D3DPRESENT_INTERVAL_IMMEDIATE 적용됩니다. 이 플래그는 D3DSWAPEFFECT_FLIPEX 사용하는 경우에만 지정할 수 있습니다. 이 동작은 창 및 전체 화면 모드에서 동일합니다.
  • dwFlags = D3DPRESENT_LINEAR_CONTENT 경우 창이 있는 스왑 체인에 대해 선형 공간에서 sRGB로 감마 보정이 수행됩니다. 이 플래그는 드라이버가 D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 노출하는 경우에만 적용됩니다( 감마(Direct3D 9 참조)).

반환 값

형식: HRESULT

가능한 반환 값에는 S_OK, D3DERR_DEVICELOST, D3DERR_DEVICEHUNG, D3DERR_DEVICEREMOVED 또는 D3DERR_OUTOFVIDEOMEMORY( D3DERR 참조)가 포함됩니다. 분실, 중단 및 제거된 디바이스에 대한 자세한 내용은 분실 디바이스 동작 변경 내용을 참조하세요.

Direct3D 9와 Direct3D 9Ex 간의 차이점:

D3DSWAPEFFECT_FLIPEX Windows 7(또는 현재 운영 체제 이상)에서 실행되는 Direct3D9Ex에서만 사용할 수 있습니다.

설명

IDirect3DDevice9::P resent 메서드와 마찬가지로 PresentEx는 dwflags 매개 변수를 추가합니다.

D3DSWAPEFFECT_FLIPEX 플래그를 사용하여 스왑 체인을 만들 때 pSourceRect, pDestRectpDirtyRegion 값을 NULL로 설정해야 합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d9.h
라이브러리 D3D9.lib

추가 정보

IDirect3DDevice9Ex